暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

利用Dockefile将Python的py文件项目代码打包为Docker镜像

捷创源科技 2022-01-19
2866

Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的Linux或Windows操作系统的机器上,也可以实现虚拟化,容器是完全使用沙箱机制,相互之间不会有任何接口。

一个完整的Docker有以下几个部分组成:

  1. DockerClient客户端

  2. Docker Daemon守护进程

  3. Docker Image镜像

  4. DockerContainer容器 


1.创建python项目



【备注:一定要将项目python环境依赖存至本项目下,默认依赖本机python环境(会造成依赖包过多)】


2.创建main.py文件,完成程序代码

主要功能就是获取"https://www.hao123.com/"网址页面源代码,并存储到"myGetFile.html"文件中

main.py

    #! python
    # -*- coding: utf-8 -*-
    from urllib.request import urlopen
    url = "https://www.hao123.com/"




    if __name__ == '__main__':


    resp = urlopen(url)


    # 把读取到网页的页面源代码写入myGetFile.html文件
    with open("myGetFile.html", mode="w", encoding='utf-8') as f:
    f.write(resp.read().decode('utf-8'))


    f.close() # 关闭文件
    resp.close() # 关闭resp响应


    print("结束")


    3.导出程序依赖

    在项目目录下,打开shell面板


    在打开的终端中,输入

      pip freeze > requirements.txt


      回车,生成requirements.txt文件







      4.打包前准备
      在新建文件夹下面创建docker_test文件夹,同级目录下创建Dockerfile文件,在docker_test文件夹下面添加main.py源代码和requirements.txt文件




      5.创建Dockerfile文件,添加内容

      在Dockerfile文件中输入以下内容:

        # python版本,可根据需求进行修改
        FROM python:3.8-alpine


        RUN mkdir code


        # 将代码和项目依赖添加到code文件夹
        ADD ./docker_test code


        # 设置code文件夹是工作目录
        WORKDIR /code


        RUN pip install -r requirements.txt


        # 镜像运行时执行的命令,这里的配置等于 python main.py
        ENTRYPOINT ["python","main.py"]


        6.打包Docker镜像


        docker build -t imagename Dockerfilepath
        Dockerfilepath:Dockerfile 所在文件夹名称,当前目录为 “.”

        在弹出的终端中输入

          docker build -t mypythontest:1.0 .

          回车。



          打包成功后,利用命令

            docker images


            可以验证mypythontest镜像


            7.运行镜像
            #docker run --name c_name imagename
            #c_name为容器名 imagename为打包的镜像名


              docker run -it --name pythontest mypythontest:1.0

              8.把docker镜像中的文件复制到宿主机上来


              本例,在终端中运行

                docker cp pythontest:/code ./


                看到已生成code文件夹




                生成的网页源代码文件



                文章转载自捷创源科技,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

                评论