开发者

python项目打包成docker镜像并运行的完整指南

开发者 https://www.devze.com 2025-09-15 09:20 出处:网络 作者: onlygyl
目录1.创建requirements.txt2.创建dockerfile3.创建.dockeri编程客栈gnore文件4.构建Docker镜像5.运行容器6.方法补充众所周知,python是解释型脚本语言,无需编译即可运行,但是同时也强依赖于运行环境,而将运行环境
目录
  • 1.创建requirements.txt
  • 2.创建dockerfile
  • 3.创建.dockeri编程客栈gnore文件
  • 4.构建Docker镜像
  • 5.运行容器
  • 6.方法补充

众所周知,python是解释型脚本语言,无需编译即可运行,但是同时也强依赖于运行环境,而将运行环境和项目程序一同打包到docker镜像中,可以方便快速的移植部署。(以下方法为手动拷贝项目到linux服务器,如果编程需要可以使用git对代码进行管理)

假设你的项目目录结构如下:

python项目打包成docker镜像并运行的完整指南

1.创建requirements.txt

在项目根目录下创建requirements.txt文件,用于记录项目运行所需的所有第三方库及其精确版本。

Logbook==1.7.0.post0
pandas==2.0.3
Pymysql==1.1.1
Requests==2.32.3
Flask==2.0.3
werkzeug==2.0.3

2.创建Dockerfile

在项目根目录创建Dockerfile文件。

# Python基础镜像
FROM docker.m.daocloud.io/library/python:3.8-slim

# 设置工作目录
WORKDIR /

# 复制requirements.txt文件
COPY /requirements.txt .

# 安装依赖(官方源速度较慢,使用阿里源)
RUN pip install --no-cache-dir -r requirements.txt -i https://mirrors.aliyun.com/pypi/simple/

# 复制应用程序代码
COPY ./ .

# 暴露端口(如果你的应用需要)
EXPOSE 5000

# 定义环境变量(可选)
# ENV FLASK_APP=main.py
# ENV FLASK_ENV=production

# 运行命令
CMD ["python", "app.py"]

3.创建.dockerignore文件

防止不必要的文件被复制到镜像中,在根目录下创建.dockphperignore文件

__pycache__
*.pyc
*.pyo
*.pyd
.Python
env
venv
.venv
.git
.DS_Store

4.构建Docker镜像

docker build -t zhgc-tools .

5.运行容器

docker run -d -p 5000:5000 --name zhgc-tools phpzhgc-tools

查看容器运行情况,说明服务正常部署

python项目打包成docker镜像并运行的完整指南

6.方法补充

python 项目打包 docker镜像

1.Dockerfile

这是创建容器的启动和编译的脚本(项目内的文件路径最好用全路径)

	# 将官方 Python 运行时用作父镜像
	FROM python:3.8-alpine
	# 设置时区
	ENV TZ Asia/Shanghai
	RUN apk --update add tzdata && \
	 cp /usr/share/zoneinfo/${TZ} /etc/localtime && \
	 echo ${TZ} > /etc/timezone && \
	 apk del tzdata
	# 工程文件导入到容器中
	ADD ./CloudSimPy-master /code
	# 依赖文件导入
	COPY requirements.txt ./
	# 安装 requirements.txt 中指定的任何所需软件包
	RUN pip3 install -r requirements.txt -i https://pypi.tuna.tsinghua.edu.cn/simple
	# 将工作目录设置为 /myapps
	WORKDIR /code
	# 定义环境变量
	ENV PYTHONPATH /code
	# 在容器启动时运行 app.py
	CMD ["python", "/code/playground/Non_DAG/launch_scripts/state-makespan_list-50.py"]

2.requirements.txt

这是python 项目需要的依赖的版本对应

simpy==3.0.javascript11
tensorflow==1.12.0
numpy=1.15.3
pandas==0.23.4
colorlog

构建镜像

# 名称必须小写
docker build -t flask_Redis_env0 .

python项目打包成docker镜像并运行的完整指南

导出编译好的镜像

经过编译没有错误后,可以将镜像导出本地

# 打一个tag 方便后续load 时候有版本等相关信息
docker tag 7ed7399ab6fc wordhot:v1
# 打包一个,f299f501774c 是对应的 image id
docker save f299f501774c > hangger_server.tar
# 打包多个
docker save -o images.tar postgres:9.6 mongo:3.4

导入镜像

docker load < hangge_server.tar

到此这篇关于python项目打包成docker镜像并运行的完整指南的文章就介绍到这了,更多相关python打包成docker镜像内容请搜索编程客栈(www.devze.com)以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程客栈(www.devze.com)!

0

精彩评论

暂无评论...
验证码 换一张
取 消

关注公众号