(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:容器是用哪个镜像启动的(一个容器,必须依赖一个镜像启动)