前言(默认已安装docker)
使用docker部署python项目的优势:
1、环境一致性:彻底解决“依赖地狱”和环境差异问题
2、极简的依赖管理和隔离性
3、简化部署流程和快速扩展
4、便于持续集成和持续部署
这相对于直接打包成exe,闪光点就包含这几个部分。
一、docker镜像制作
初始docker环境就是极简的带基础库的环境,例如python3.8,是可以直接拿官方docker镜像使用的,所以docker镜像的制作可以分为两种,一种是拿初始镜像做安装拓展,另一种是直接使用Dockerfile全部构建。
1.1、初始镜像拓展
为什么这么做呢?其一是网络问题,若使用Dockerfile构建,国内网络网速普遍较慢。其二是若安装库过多,导致安装步骤复杂,时间相对慢。
(1)、首先使用Dockerfile构建简单镜像(以python3.8为例)
# 第一阶段:选择基础镜像(Python 3.8 官方镜像)
FROM python:3.8-slim
# 第二阶段:设置工作目录(容器内的路径)
WORKDIR /app
# 第三阶段:复制依赖文件并安装
COPY requirements.txt .
RUN pip install --no-cache-dir -r requirements.txt
# 第四阶段:复制应用代码到容器
COPY . .
# 第五阶段:声明容器运行时监听的端口(Flask 默认 5000)
EXPOSE 5000
# 第六阶段:启动命令
CMD ["python", "app.py"]
docker build -t control-app:1.0 .
(2)、运行镜像
docker run -d -p 5000:5000--name container control-app
(3)、安装所需库
pip install -r requirements.txt
(4)、修改保存容器
docker commit control control-app:modified
(5)、提交容器为镜像
docker commit control control-image
1.2、Dockerfile全部构建
这里的话,直接把所有的安装库放入Dockerfile文件里安装,也就是requirements.txt,需要注意的是很大可能导致安装失败,因为docker镜像是最基础的,为了简化体积,一些编译工具都没有安装。
二、导出镜像为 .tar文件
docker save -o control.tar control-image
将镜像导出为tar文件,在其他机器使用。
三、在其他机器导入镜像并启动
docker load -i control.tar #加载镜像
docker run -it -p 5000:5000--name control control-image /bin/bash #启动镜像
结语
注:本博客仅当学习使用,谢谢!!!

5954

被折叠的 条评论
为什么被折叠?



