系列:容器部署基础
- Docker 安装与使用教程:从零部署第一个容器服务
- Dockerfile 入门:构建自己的应用镜像
- Docker Compose 使用指南:管理多容器服务
- Docker 数据卷与备份:数据库容器怎么保护数据
- Docker 网络与端口映射:容器之间怎么通信
- Docker 日志和排障:logs、exec、inspect、stats
- 用 Docker 部署一个 Python Web 项目
- Nginx 反向代理入门:静态文件、HTTPS 和 Web 服务转发
- HTTPS 和证书部署指南:Let’s Encrypt、Cloudflare、Nginx 怎么配
- Docker 生产环境部署注意事项:镜像、日志、数据卷和健康检查
学 Docker 不能只会 docker run。只要你要部署自己的应用,就绕不开 Dockerfile。它描述的是“如何把应用打成镜像”。
最小 Dockerfile
先从最小版本开始更容易理解。下面这个例子适合普通 Python 脚本或很小的 Web 服务,重点是看清每一行发生在构建阶段还是运行阶段。
FROM python:3.12-slim
WORKDIR /appCOPY requirements.txt .RUN pip install --no-cache-dir -r requirements.txtCOPY . .
CMD ["python", "main.py"]构建:
docker build -t my-app .docker run --rm my-app如果构建失败,先看依赖安装那一步;如果运行失败,再看 CMD 指向的入口文件是否存在。
指令说明
FROM 基础镜像WORKDIR 工作目录COPY 复制文件RUN 构建时执行命令CMD 容器启动时默认命令RUN 发生在构建镜像时,CMD 发生在容器启动时。
层缓存
依赖文件先复制,源码后复制,是为了利用缓存:
COPY requirements.txt .RUN pip install -r requirements.txtCOPY . .只改业务代码时,不需要重新安装依赖。
常见问题
不要把 .env、.git、node_modules 复制进镜像。写 .dockerignore:
.git.envnode_modules__pycache__Docker 基础可以先看 Docker 安装与使用教程:从零部署第一个容器服务。
总结
Dockerfile 的重点是可复现。基础镜像、依赖安装、源码复制、启动命令写清楚,应用就能在不同机器上用同样方式运行。下一步可以看 Docker Compose 使用指南:管理多容器服务。