2021-01-22 使用 Docker 打包 Python 项目

2,156 阅读2分钟

使用 Docker 打包 Python 项目

1. 获取 Python 的镜像文件

项目的封装可以建立在已有镜像的基础上,在 Ubuntu 中可通过

docker pull python:3.6.8-slim-stretch # 这里选取了3.6版本

获取 Python 镜像

2. 配置 Dockerfile 文件

在 Python 项目的根目录新建 Dockerfile 文件,Dockerfile 名字必须是这个,否则报错,在 Dockerfile 文件中写入下面内容:

FROM python:3.6.8-slim-stretch  

WORKDIR /usr/src/app

COPY requirements.txt ./
RUN pip install --no-cache-dir -r requirements.txt

COPY . .
ENTRYPOINT ["python"]
CMD ["./run.py"]

3. 创建镜像

创建镜像的命令为:

docker build -t python-project:1.0 .

需要注意的是最后面的 “.” 不能省略 , “.”代表当前目录

4. 运行镜像

运行镜像的命令为:

docker run --rm -p 5000:5000 --name pyproject python-project:1.0

这行命令中的几个参数的含义分别如下

  • –rm:表示关闭命令行窗口时,运行该镜像的进程会同时关闭;
  • -p:用来设置端口映射,即把电脑主机的端口映射到 docker 容器中的端口,如何封装的是一个 web 服务,那么必须要设定端口映射;
  • –name:用来为运行的镜像设置别名,方便后面的调用

此外,可能会经常用到的参数还有:

  • -e:为镜像添加环境变量
  • -d:使 web 在后台持续运行

5. 常用命令总结

docker build -t pflask:1.0 .   创建镜像

docker images | grep python    查看镜像

docker run --rm -p 5000:5000 pflask:1.0   运行镜像

docker run --rm -p 5000:5000 -e env1=evn1 pflask:1.0  加入环境变量

docker run -d pflask:1.0   运行docker并守护进程

docker ps -a            查看当前正在运行的所有镜像

docker stop IMAGE_ID    根据 IMAGE_ID 停止镜像进程

docker rm -f IMAGE_ID   根据 IMAGE_ID 删除镜像进程

docker rmi IMAGE_ID     根据 IMAGE_ID 删除镜像

docker logs -f tname    根据助记符查看日志

ss -anp | grep 5000     从所有端口中过滤出 5000

curl -v "http://192.168.195.100:5000"   测试连接

cat hello.py     查看文件

a256sum hello.py   散列算法

Dockerfile内容
	FROM python:3.6.8-slim-stretch
	WORKDIR /usr/src/app
	COPY requirements.txt ./
	RUN pip install --no-cache-dir -r requirements.txt
	COPY . .
	ENTRYPOINT ["python"]
	CMD ["/run.py"]

 

参看资料:

1、blog.csdn.net/weixin_4290…

2、www.cnblogs.com/dhName/p/12…

3、www.cnblogs.com/sammy1989/p…

4、www.cnblogs.com/shoufu/p/12…