Docker入门实战:把一个Python Web应用装进容器的完整流程

举报
yd_227985793 发表于 2026/10/23 18:47:30 2026/10/23
【摘要】 从一个最小的 Flask 项目出发,完整走一遍容器化流程:编写 Dockerfile、构建镜像、启动容器与常用命令速查,并整理了 0.0.0.0 绑定、构建缓存等新手常踩的坑,适合 Docker 入门参考。

很多刚接触后端开发的同学都遇到过这样的场景:代码在自己电脑上跑得好好的,一部署到服务器就报错——Python 版本不一致、依赖装不上、系统库缺失。Docker 的价值就在这里:它把应用和整个运行环境一起打包成镜像,搬到任何一台装了 Docker 的机器上都能原样跑起来。下面用一个最小的 Flask 项目,把容器化的完整流程走一遍。

一、准备项目

先建一个最简单的项目结构:

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

app.py 只需要一个 Hello World:

from flask import Flask
app = Flask(__name__)

@app.route("/")
def index():
    return "Hello, Docker!"

if __name__ == "__main__":
    app.run(host="0.0.0.0", port=5000)

requirements.txt 里写上 flask==3.0.0。注意 host 一定要写 0.0.0.0,如果用默认的 127.0.0.1,容器外就访问不到服务了,这是新手最容易踩的坑。

二、编写 Dockerfile

FROM python:3.11-slim
WORKDIR /app
COPY requirements.txt .
RUN pip install --no-cache-dir -r requirements.txt
COPY . .
EXPOSE 5000
CMD ["python", "app.py"]

几个要点:优先用 slim 这类精简基础镜像,拉取快、体积小;先复制 requirements.txt 再装依赖,可以利用构建缓存——只要依赖清单不变,改业务代码重新构建时就不会重装依赖;最后再 COPY 全部源码。

三、构建镜像并运行

docker build -t flask-demo:v1 .
docker run -d -p 8000:5000 --name demo flask-demo:v1

-d 表示后台运行,-p 8000:5000 把宿主机的 8000 端口映射到容器的 5000 端口。浏览器访问 http://服务器IP:8000,看到 Hello, Docker! 就说明跑通了。

四、常用命令速查

docker ps                 # 查看运行中的容器
docker logs -f demo        # 跟踪容器日志
docker exec -it demo bash  # 进入容器内部排查
docker stop demo           # 停止容器
docker rm demo             # 删除容器
docker images              # 查看本地镜像列表

五、小结

整个流程其实就是“写 Dockerfile → build → run”三步。等应用多了起来,再引入 docker-compose 把多个服务编排到一起也不迟。容器化入门并不难,难的是把镜像做小、做得规范,这些可以在真正用到时再逐步优化。

【声明】本内容来自华为云开发者社区博主,不代表华为云及华为云开发者社区的观点和立场。转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息,否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0)

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。