Docker入门实战:把一个Python Web应用装进容器的完整流程
很多刚接触后端开发的同学都遇到过这样的场景:代码在自己电脑上跑得好好的,一部署到服务器就报错——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 把多个服务编排到一起也不迟。容器化入门并不难,难的是把镜像做小、做得规范,这些可以在真正用到时再逐步优化。
- 点赞
- 收藏
- 关注作者
评论(0)