Docker容器持续部署的核心是代码变更自动触发构建、测试、镜像打包和容器更新,关键在于新版本快速安全上线;通过Jenkins监听Git提交,执行拉取、测试、构建、推送及更新容器;需采用多阶段构建、固定基础镜像、非root用户运行;生产环境推荐docker-compose或蓝绿部署实现零停机;配套需私有仓库、统一命名、日志收集与健康检查。

Docker 容器持续部署的核心是让代码变更自动触发构建、测试、镜像打包和容器更新,整个过程无需人工干预。关键不在于“让容器一直运行”,而在于“让新版本快速、安全地上线”。
用 Jenkins 实现自动化流水线
Jenkins 是最常用的 CI/CD 工具,它能监听 Git 仓库变动,自动执行整套部署动作:
- 配置 Git Webhook 或轮询,检测代码提交(如 push 到 main 分支)
- 在 Pipeline 中依次执行:拉取代码 → 运行单元测试 → 构建 Docker 镜像(
docker build)→ 推送镜像到私有 Registry(docker push)→ 在目标服务器上拉取新镜像并启动容器 - 推荐使用
docker-compose up -d或docker run --rm+ 脚本方式替换旧容器,避免端口冲突
镜像构建要轻量且可复现
每次部署都基于新镜像,因此 Dockerfile 必须稳定、高效:
- 用多阶段构建(multi-stage),只把运行时需要的文件复制进最终镜像,大幅减小体积
- 依赖文件(如
requirements.txt或pom.xml)单独 COPY 并安装,利用 Docker 构建缓存加速重复构建 - 固定基础镜像标签(如
python:3.11-slim-bullseye),避免因latest变动引发不可预期行为 - 设置非 root 用户运行(
USER appuser),提升安全性
部署时确保服务不中断
生产环境不能停机,需采用滚动或蓝绿策略:
- 简单场景:用脚本先
docker stop old-container,再docker run -d --name new-app ... 新镜像;但会有短暂不可用 - 推荐方式:用
docker-compose管理服务,修改docker-compose.yml中的镜像 tag 后执行docker-compose up -d,Compose 会自动做优雅停止与启动 - 高可用场景:结合 Nginx 或 Traefik 做反向代理,通过健康检查切换流量,实现零停机发布
配套基础设施不能少
持续部署不是单点技术,需要支撑体系:
- 私有镜像仓库(如 Harbor 或自建 registry),用于集中存储和版本化镜像
- 统一的命名规范(如
myapp:v1.2.0或myapp:git-commit-hash),便于追踪和回滚 - 容器日志集中收集(如 Filebeat + Elasticsearch),方便问题排查
- 健康检查接口(如
/health)写入 Dockerfile 的HEALTHCHECK指令,让编排工具能判断容器状态


















