Centos下打包python程序为docker镜像

(1)准备py程序test.py文件;

(2)拷贝程序到docker目录

    将test.py文件(工程目录)拷贝到linux系统,如工程名为:microservice,将所有工程文件拷贝到linux下workspace文件夹下(注意:所有代码文件放在microservice/package文件夹下,方便生成requirements.txt文件,microservice为工程名称),后面还需配置Dockerfile文件和requirements.txt即可生成镜像;

(3)配置Dockerfile(无扩展名)

新建Dockerfile文件,内容如下:

#基于的基础镜像

FROM python:3.6

 

#microservice (工程代码文件夹)文件夹添加到容器code文件夹

ADD ./microservice /code

 

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

WORKDIR /code

 

# 安装支持,requirements由以下产生:跳转到package的同级目录执行以下命令:pip freeze > requirements.txt

# 自动生成的requirements往往很大,可以手动删除一些不相关的

RUN pip install -r requirements.txt

 

#启动时指定py_microservice_qxt20190521.py

CMD ["python", "/code/package/py_microservice_qxt20190521.py"]

(4)新建运行环境依赖文件requirements.txt

Cd跳转到package同级目录运行以下命令在当前目录生成requirements.txt

文件:

pip freeze > requirements.txt

注意:自动生成的需要环境可能很大,可以手动删除一些不需要的。

(5)创建镜像

Cd 跳转到microservice 目录(Dockerfile文件的同级目录)

执行命令:docker build -t microservice_img .

其中:microservice_img 为创建的镜像名称,. 表示当前目录(microservice)

(6)查看镜像是否创建成功

执行命令:docker images

docker images -a

(7)在容器中运行镜像

新建一个容器,如test,在新建test容器中运行microservice_img镜像,代码如下:

docker run -it -p 8899:8899 --name test microservice_img

-it:表示交互式终端的容器,非启动后立刻结束的容器

-p 8899 :8899 :前面为8899为docker的端口,映射到Linux虚拟机的8899 端口

--name test:给容器取个名字,嫌麻烦可以省去

microservice_img:容器是用哪个镜像启动的(一个容器,必须依赖一个镜像启动)

 

你可能感兴趣的:(Centos下打包python程序为docker镜像)