分类: Docker,Python | 标签: python,docker,部署教程 | 发布时间: 2025-10-03 07:06:23
本文介绍了通过Docker部署Python的全流程,包括从轩辕镜像查看、下载Python镜像(含多种拉取方式),到以快速部署、挂载本地项目、docker-compose管理三种方式部署容器,还涵盖安装第三方库、构建自定义镜像的进阶实践及常见问题解决办法。
若你的系统尚未安装 Docker,请先一键安装:
一键安装配置脚本(推荐方案): 该脚本支持多种 Linux 发行版,支持一键安装 Docker、Docker Compose 并自动配置轩辕镜像访问支持源。
bash <(wget -qO- https://xuanyuan.cloud/docker.sh)Python 是一门应用广泛的语言,常见于数据分析、AI、Web 开发等场景。通过 Docker 部署 Python,可以做到快速安装、环境隔离、跨平台运行。下面我们基于 轩辕镜像 来完整演示 Python 在 Docker 中的部署方法。
你可以在 轩辕镜像 中找到 Python 镜像页面: 👉 https://xuanyuan.cloud/r/library/python
在镜像页面中,会看到多种拉取方式,下面我们逐一说明。
docker pull docker.xuanyuan.run/library/python:3.12docker pull docker.xuanyuan.run/library/python:3.12 \
&& docker tag docker.xuanyuan.run/library/python:3.12 python:3.12 \
&& docker rmi docker.xuanyuan.run/library/python:3.12这样后续就可以直接用官方标准名 python:3.12。
docker pull xxx.xuanyuan.run/library/python:3.12带重命名的完整命令:
docker pull xxx.xuanyuan.run/library/python:3.12 \
&& docker tag xxx.xuanyuan.run/library/python:3.12 python:3.12 \
&& docker rmi xxx.xuanyuan.run/library/python:3.12如果网络能直连 Docker Hub,可以直接:
docker pull python:3.12docker images输出类似:
REPOSITORY TAG IMAGE ID CREATED SIZE
python 3.12 9a2c9eabc123 2 weeks ago 1.02GB
下面演示三种方式:快速部署 → 挂载项目 → docker-compose 管理。
适合测试、运行交互式 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 Xuanyuan Python!")
Hello from Xuanyuan Python!退出:输入 exit() 或 Ctrl+D。
适合实际项目开发,将宿主机代码挂载到容器内。
第一步:准备目录
mkdir -p /data/python-app
cd /data/python-app第二步:写一个测试程序
echo 'print("Hello from Xuanyuan Python 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 Xuanyuan Python App!
第一步:创建项目目录
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!
运行交互式容器,使用 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在项目中写一个 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默认进入是 /bin/bash,需要手动执行 python。也可以直接:
docker exec -it py-app python- 使用
requirements.txt + pip install - 或者构建自定义镜像(见上文 4.2)
加 -e TZ=Asia/Shanghai:
docker run -it -e TZ=Asia/Shanghai python:3.12以 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 即可。
至此,你已经掌握了 Python 在 Docker 中的部署全流程:
- 拉取镜像(轩辕镜像 / 官方)
- 快速运行 Python 环境
- 挂载项目目录运行代码
- 使用 docker-compose 管理服务
- 构建自定义镜像和运行 Web 应用
对于初学者,可以先尝试「快速部署」和「挂载目录」;对于工程师,推荐使用「docker-compose」或「自定义镜像」来管理依赖和部署。
👉 在实践中遇到问题,可以通过 docker logs 容器名 查看日志,或参考 Python 官方文档。
