跳到主要内容
极客日志极客日志面向AI+效率的开发者社区
首页博客GitHub 精选镜像工具UI配色美学隐私政策关于联系
搜索内容 / 工具 / 仓库 / 镜像...⌘K搜索
注册
博客列表
PythonAI算法

Docker 部署 Python 实战指南

使用 Docker 部署 Python 环境的完整流程。内容涵盖从拉取官方镜像、运行交互式容器、挂载本地项目目录到使用 docker-compose 进行服务管理的多种方案。此外还包括自定义镜像构建、第三方依赖安装、常见环境问题排查(如时区、持久化)以及 Flask Web 项目的容器化部署示例。旨在帮助开发者实现 Python 应用的快速安装、环境隔离与跨平台运行。

全栈工匠发布于 2026/3/28更新于 2026/5/2632 浏览

Python 是一门应用广泛的语言,常见于数据分析、AI、Web 开发等场景。通过 Docker 部署 Python,可以做到快速安装、环境隔离、跨平台运行。下面我们来完整演示 Python 在 Docker 中的部署方法。

1. 查看 Python 镜像详情

你可以在 Docker Hub 中找到 Python 镜像页面。

在镜像页面中,会看到多种拉取方式,下面我们逐一说明。

2. 下载 Python 镜像

2.1 官方直连方式

如果网络能直连 Docker Hub,可以直接:

docker pull python:3.12

2.2 拉取后改名

如果需要后续使用标准名称,可以执行以下命令:

docker pull python:3.12 \
&& docker tag python:3.12 python:3.12 \
&& docker rmi python:3.12

这样后续就可以直接用官方标准名 python:3.12。

2.3 查看是否拉取成功

docker images

输出类似:

REPOSITORY   TAG       IMAGE ID        CREATED         SIZE
python        3.12     9a2c9eabc123    2 weeks ago     1.02GB

3. 部署 Python 容器

下面演示三种方式:快速部署 → 挂载项目 → docker-compose 管理。

3.1 快速部署(最简方式)

适合测试、运行交互式 Python 环境:

docker run -it --name py-test python:3.12

说明:

  • -it:进入交互式终端
  • --name py-test:容器名称
  • python:3.12:使用 Python 3.12 镜像

进入后会看到 Python REPL:

Python 3.12.5 (main, Sep 14 2024, 10:15:00) >>> print("Hello from Docker!")
Hello from Docker!

退出:输入 exit() 或 Ctrl+D。

3.2 挂载本地项目(推荐方式)

适合实际项目开发,将宿主机代码挂载到容器内。

第一步:准备目录

 -p /data/python-app
 /data/python-app
mkdir
cd

第二步:写一个测试程序

echo 'print("Hello from Docker App!")' > app.py

第三步:启动容器并挂载目录

docker run -it --name py-app \
  -v /data/python-app:/app \
  -w /app \
  python:3.12 python app.py

说明:

  • -v /data/python-app:/app:挂载宿主机目录到容器
  • -w /app:指定容器内工作目录
  • python app.py:执行程序

输出应为:

Hello from Docker App!

3.3 使用 docker-compose 部署(适合企业级项目)

第一步:创建项目目录

mkdir -p /data/py-compose
cd /data/py-compose

第二步:准备应用 写一个 main.py:

print("Python running in Docker with docker-compose!")

第三步:编写 docker-compose.yml

version: '3'
services:
  python-app:
    image: python:3.12
    container_name: python-service
    working_dir: /app
    volumes:
      - ./app:/app
    command: python main.py
    restart: always

目录结构:

/data/py-compose
├─ docker-compose.yml
└─ app
   └─ main.py

第四步:启动服务

docker compose up -d

查看状态

docker compose ps

查看日志

docker compose logs -f

输出:

python-service | Python running in Docker with docker-compose!

4. 进阶实践

4.1 安装第三方库

运行交互式容器,使用 pip 安装:

docker run -it --name py-pandas python:3.12 bash
pip install pandas

或者在项目目录添加 requirements.txt:

flask
requests

然后容器启动时自动安装:

docker run -it -v /data/python-app:/app -w /app python:3.12 pip install -r requirements.txt

4.2 构建自定义 Python 镜像

在项目中写一个 Dockerfile:

FROM python:3.12
WORKDIR /app
COPY requirements.txt .
RUN pip install -r requirements.txt
COPY . .
CMD ["python", "app.py"]

构建镜像:

docker build -t my-python-app .

运行:

docker run -it --name py-custom my-python-app

5. 常见问题

5.1 进入容器后 Python 环境丢失?

默认进入是 /bin/bash,需要手动执行 python。也可以直接:

docker exec -it py-app python

5.2 如何持久化依赖环境?

  • 使用 requirements.txt + pip install
  • 或者构建自定义镜像(见上文 4.2)

5.3 容器内时区不对?

加 -e TZ=Asia/Shanghai:

docker run -it -e TZ=Asia/Shanghai python:3.12

5.4 如何运行 Flask / Django Web 项目?

以 Flask 为例,在 app.py:

from flask import Flask
app = Flask(__name__)
@app.route("/")
def hello():
    return "Hello Flask from Docker!"
if __name__ == "__main__":
    app.run(host="0.0.0.0", port=5000)

运行容器:

docker run -d --name py-flask -p 5000:5000 \
  -v /data/python-app:/app -w /app \
  python:3.12 pip install flask && python app.py

访问 http://服务器 IP:5000 即可。

目录

  1. 1. 查看 Python 镜像详情
  2. 2. 下载 Python 镜像
  3. 2.1 官方直连方式
  4. 2.2 拉取后改名
  5. 2.3 查看是否拉取成功
  6. 3. 部署 Python 容器
  7. 3.1 快速部署(最简方式)
  8. 3.2 挂载本地项目(推荐方式)
  9. 3.3 使用 docker-compose 部署(适合企业级项目)
  10. 4. 进阶实践
  11. 4.1 安装第三方库
  12. 4.2 构建自定义 Python 镜像
  13. 5. 常见问题
  14. 5.1 进入容器后 Python 环境丢失?
  15. 5.2 如何持久化依赖环境?
  16. 5.3 容器内时区不对?
  17. 5.4 如何运行 Flask / Django Web 项目?
  • 💰 8折买阿里云服务器限时8折了解详情
  • Magick API 一键接入全球大模型注册送1000万token查看
  • 🤖 一键搭建Deepseek满血版了解详情
  • 一键打造专属AI 智能体了解详情
极客日志微信公众号二维码

微信扫一扫,关注极客日志

微信公众号「极客日志V2」,在微信中扫描左侧二维码关注。展示文案:极客日志V2 zeeklog

更多推荐文章

查看全部
  • 互联网大厂 Java 与 Android 开发核心面试题整理
  • ClaudeCode 跨平台安装指南:Windows、Linux 与 macOS
  • Windows 下使用 Git 与 Gitee 进行协作开发
  • 选择排序详解:直接、树形与堆排序实战
  • C++ 类与对象进阶:初始化、静态成员与编译器优化
  • tavily_dart 在鸿蒙平台适配及 AI 搜索引擎集成实战
  • LeetCode 新手入门指南:科学刷题与进阶策略
  • LangChain 框架简介、核心模块与文档指南
  • HarmonyOS TaskPool 多线程开发实战与避坑指南
  • 大疆无人机开发实战指南:MSDK/PSDK/上云 API 集成
  • OpenClaw 清理 Skill 实战:基于 Rust+Tauri 构建安全沙箱
  • 2026 年 AI Agent 开发:10 个实战验证的设计模式
  • 2026 年 3 月 23 日 AI 产业要闻:脑机接口落地与算力竞赛
  • Kali Linux 2025 部署与 OpenVAS 安全扫描实战
  • ELMo 模型详解:从架构到预训练与多义词处理
  • 昇腾 NPU 部署 Llama 2 模型的性能测试与优化实践
  • 蓝桥杯 C/C++ 组备考:C++ 基础知识(上)
  • 华为手机鸿蒙系统从 6.0 降级至 4.2 操作指南
  • Python 医疗 AI 常用库及实战案例解析
  • React 19 + Vite + TypeScript 项目初始化与配置实战

相关免费在线工具

  • 加密/解密文本

    使用加密算法(如AES、TripleDES、Rabbit或RC4)加密和解密文本明文。 在线工具,加密/解密文本在线工具,online

  • RSA密钥对生成器

    生成新的随机RSA私钥和公钥pem证书。 在线工具,RSA密钥对生成器在线工具,online

  • Mermaid 预览与可视化编辑

    基于 Mermaid.js 实时预览流程图、时序图等图表,支持源码编辑与即时渲染。 在线工具,Mermaid 预览与可视化编辑在线工具,online

  • 随机西班牙地址生成器

    随机生成西班牙地址(支持马德里、加泰罗尼亚、安达卢西亚、瓦伦西亚筛选),支持数量快捷选择、显示全部与下载。 在线工具,随机西班牙地址生成器在线工具,online

  • Gemini 图片去水印

    基于开源反向 Alpha 混合算法去除 Gemini/Nano Banana 图片水印,支持批量处理与下载。 在线工具,Gemini 图片去水印在线工具,online

  • curl 转代码

    解析常见 curl 参数并生成 fetch、axios、PHP curl 或 Python requests 示例代码。 在线工具,curl 转代码在线工具,online