本文教你从开发到部署,用 Docker 将 Python Flask 应用容器化,引入反向代理 Nginx,实现 HTTPS 支持、环境隔离与持续部署准备,是现代开发者必备的实战技能。
一、为什么要用 Docker 部署 Python 应用?
markdown复制编辑flask_docker_app/
├── app/
│ ├── __init__.py│ ├── main.py│ └── requirements.txt├── Dockerfile├── docker-compose.yml└── nginx/ ├── Dockerfile
└── nginx.conf
app/main.py
:
python复制编辑from flask import Flask, jsonify
app = Flask(__name__)
@app.route("/")
defhome():
return jsonify({"message": "Hello from Flask in Docker!"})
if __name__ == "__main__":
app.run(host="0.0.0.0", port=5000)
app/requirements.txt
:
ini复制编辑Flask==2.1.1
dockerfile复制编辑FROM python:3.10-slim
WORKDIR /usr/src/app
COPY requirements.txt ./
RUN pip install --no-cache-dir -r requirements.txt
COPY main.py ./
CMD ["python", "main.py"]
镜像体积小、构建速度快。
docker-compose.yml
:
yaml复制编辑version:'3.8'services:web:build:./appcontainer_name:flask_appports:-"5000:5000"nginx:build:./nginxcontainer_name:nginx_proxyports:-"80:80"depends_on:-web
nginx复制编辑events {}
http {
server {
listen80;
location / {
proxy_pass http://flask_app:5000;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
}
}
}
反向代理让 Flask 更像专属服务器。
bash复制编辑docker-compose up --build
访问 http://localhost/
,即可看到 JSON 返回内容。
listen 443 ssl;
;.env
,安全配置数据库密码;通过本文你学到了:
作者: 小菜菜编程, 来源:面包板社区
链接: https://mbb.eet-china.com/blog/uid-me-4114532.html
版权声明:本文为博主原创,未经本人允许,禁止转载!
eeNick 2025-6-16 08:55