如何把一个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 做瘦身。

发表回复