通过docker部署发布python项目的实战步骤
将Python项目通过Docker部署发布,可以实现环境一致性、快速迁移和高效运维。以下是实战部署的完整步骤,结合最佳实践整理而成:
一、项目准备
1.确保本地项目可运行
开发完成并本地测试通过(如 Flask/FastAPI 项目能正常访问)。
项目结构示例:
myproject/
├── app.py
├── requirements.txt
└── Dockerfile
2.生成依赖文件 requirements.txt
# 推荐使用 pipreqs(只导出项目实际依赖) pip install pipreqs pipreqs . --encoding=utf8 --force # 或使用 pip freeze(可能包含多余包) pip freeze > requirements.txt
二、编写Dockerfile
在项目根目录创建 Dockerfile,内容如下(以 Flask 为例):
# 使用轻量级Python镜像 FROM python:3.11-slim # 设置工作目录 WORKDIR /app # 复制依赖文件 COPY requirements.txt . # 安装依赖(使用国内源加速) RUN pip install --no-cache-dir -r requirements.txt -i https://mirrors.aliyun.com/pypi/simple/ # 复制项目代码 COPY . . # 暴露应用端口(与代码中保持一致) EXPOSE 5000 # 启动命令(推荐使用 gunicorn 生产部署) CMD ["gunicorn", "--bind", "0.0.0.0:5000", "app:app"]
说明:
- 使用
slim镜像减少体积。 --no-cache-dir减少镜像大小。- 可替换为
uvicorn(FastAPI)或其他启动器。
三、构建 Docker 镜像
# 构建镜像,指定名称和标签 docker build -t my-python-app:v1.0 . # 查看镜像是否生成 docker images | grep my-python-app
注意命令末尾的 . 表示上下文路径。
四、运行容器
# 启动容器,后台运行,端口映射 docker run -d -p 5000:5000 --name myapp my-python-app:v1.0 # 若需挂载配置或日志目录 # docker run -d -p 5000:5000 -v ./logs:/app/logs --name myapp my-python-app:v1.0 # 查看运行中的容器 docker ps
五、测试访问
浏览器访问:http://localhost:5000 或服务器IP地址。
查看日志:
docker logs myapp
六、优化建议(进阶)
1.使用 .dockerignore 文件
__pycache__ *.pyc .git .env .idea
避免不必要的文件被打包进镜像。
2.多阶段构建(减小镜像体积)
FROM python:3.11-slim as builder COPY requirements.txt . RUN pip install --user -r requirements.txt FROM python:3.11-slim COPY --from=builder /root/.local /root/.local COPY . . ENV PATH=/root/.local/bin:$PATH CMD ["gunicorn", "--bind", "0.0.0.0:5000", "app:app"]
3.使用 Docker Compose 管理多服务
创建 docker-compose.yml:
version: '3'
services:
web:
build: .
ports:
- "5000:5000"
depends_on:
- db
db:
image: mysql:8.0
environment:
MYSQL_ROOT_PASSWORD: example
启动:
docker compose up --build
七、常用命令速查
| 功能 | 命令 |
|---|---|
| 查看镜像 | docker images |
| 查看容器 | docker ps / docker ps -a |
| 删除镜像 | docker rmi 镜像ID |
| 删除容器 | docker rm 容器ID |
| 查看日志 | docker logs 容器名 |
| 进入容器 | docker exec -it 容器名 /bin/bash |
总结
| 步骤 | 关键点 |
|---|---|
| 1. 准备项目 | 本地可运行 + 生成 requirements.txt |
| 2. 编写 Dockerfile | 基础镜像 + 依赖安装 + 启动命令 |
| 3. 构建镜像 | docker build -t name:tag . |
| 4. 运行容器 | docker run -d -p host:container --name |
| 5. 测试验证 | 访问服务 + 查看日志 |
通过以上步骤,即可完成一个标准 Python 项目的 Docker 容器化部署,适用于开发、测试、生产等各类环境。
到此这篇关于通过docker部署发布python项目的实战步骤的文章就介绍到这了,更多相关docker部署发布python项目内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!
相关文章
Docker部署tenine实现后端应用的高可用与负载均衡(推荐)
采用Docker部署Tengine和Keepalived,实现了一种适用于小型应用场景的高可用负载均衡解决方案,本方案需要两台Ubuntu服务器、Docker软件以及三个IP地址,适合需要简易而可靠的负载均衡和高可用性的小型应用部署,感兴趣的朋友跟随小编一起看看吧2024-09-09
docker容器inspect内容NetworkSettings的使用
文章主要介绍了Docker容器的网络设置,包括默认bridge网络和多网络连接的配置,详细解释了顶层字段(如Bridge、SandboxID、HairpinMode等)以及Networks对象的使用方法,推荐使用Networks对象来获取容器的网络信息,因为它提供了更灵活和全面的配置选项2026-02-02
从零搭建到生产环境配置详解Docker部署MongoDB的完整流程
在容器化技术日益普及的今天,使用 Docker 部署 MongoDB 已经成为开发和生产环境的标配方案,本文详细介绍了使用Docker部署MongoDB的全过程,希望可以带大家全面掌握 Docker 部署 MongoDB 的核心技能2026-05-05
开源框架 Matrix-Dendrite 搭建聊天服务器的详细过程
Matrix 是一个开源、可交互、去中心化的实时通信服务框架。使用 Matrix 可以搭建安全的通信服务器,配合支持 Matrix 的客户端可以实现个人、团队间的实时聊天交互,对Matrix Dendrite搭建聊天服务器的过程感兴趣的朋友一起看看吧2022-03-03


最新评论