如何把一个python应用部署到docker容器里?

要把一个 Python 应用部署到 Docker 容器中,整体流程是:

编写 Python 程序 → 编写 Dockerfile → 构建镜像 → 启动容器运行

下面是完整、实用的步骤和示例:


✅ 示例场景:Flask 应用部署到 Docker

假设你有一个简单的 Flask 应用目录如下:

myapp/
├── app.py
├── requirements.txt
└── Dockerfile

① 编写你的 Python 应用(app.py)

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

② 写依赖文件(requirements.txt)

flask==2.3.2

③ 编写 Dockerfile

# 使用官方 Python 运行时作为父镜像
FROM python:3.10-slim
# 设置工作目录
WORKDIR /app
# 复制依赖文件并安装
COPY requirements.txt .
RUN pip install -r requirements.txt
# 复制源代码
COPY . .
# 暴露端口(Flask默认5000)
EXPOSE 5000
# 启动命令
CMD ["python", "app.py"]

④ 构建 Docker 镜像

在 myapp 目录下执行:

docker build -t my-python-app .

⑤ 启动容器

docker run -d -p 5000:5000 --name python-container my-python-app

打开浏览器访问 http://localhost:5000,你应该能看到 Hello, Docker!。


✅ 高级选项(可选)

🔸 使用 docker-compose 管理

docker-compose.yml:

version: '3'
services:
web:
build: .
ports:
- "5000:5000"
volumes:
- .:/app

然后运行:

docker-compose up --build

🔸 进入容器调试

docker exec -it python-container /bin/bash

🔸 停止 & 删除容器

docker stop python-container
docker rm python-container

🧠 小贴士

  • Python 项目里如有数据库或缓存服务(如 MySQL、Redis),可通过 Docker Compose 联合部署。
  • Flask 中 host='0.0.0.0' 是必须的,否则容器外部无法访问。
  • 镜像体积太大时,可以基于 python:3.10-alpine 做瘦身。

发表评论