Skip to content

Lab 03 - 构建你的第一个 Docker 镜像

目标

  • 编写 Dockerfile
  • 构建自定义镜像
  • 运行并测试容器
  • 理解镜像分层

步骤

1. 查看项目文件

bash
ls -la
cat app.py          # Flask 应用
cat requirements.txt # Python 依赖
cat Dockerfile       # 构建指令

2. 构建镜像

bash
docker build -t my-flask-app:v1 .

观察构建过程,注意每一步对应 Dockerfile 中的一条指令。

3. 查看镜像

bash
docker images my-flask-app
docker image history my-flask-app:v1

4. 运行容器

bash
docker run -d --name flask-lab -p 5000:5000 my-flask-app:v1

5. 测试

bash
# 使用 curl 测试
curl http://localhost:5000
curl http://localhost:5000/health

# 或在浏览器打开 http://localhost:5000

6. 查看容器信息

bash
docker logs flask-lab
docker inspect flask-lab
docker stats flask-lab --no-stream

7. 体验缓存机制

修改 app.py 中的 message 内容,重新构建:

bash
docker build -t my-flask-app:v2 .

注意观察哪些步骤使用了缓存(CACHED),哪些重新执行了。

8. 清理

bash
docker stop flask-lab
docker rm flask-lab
docker rmi my-flask-app:v1 my-flask-app:v2

思考题

  1. 为什么 COPY requirements.txt .COPY . . 要分成两步?
  2. --no-cache-dir 参数有什么作用?
  3. 如果你只修改了 app.py,重新构建时哪些层会使用缓存?

下一步

Phase 02 - Docker 进阶:网络模型