用途:本技能用于指导在生产环境中部署和管理 Docker,涉及容器编排、零停机发布、监控与迁移等场景。当用户提到生产部署、Docker Swarm、Docker Stack、Kubernetes 迁移、kompose、滚动更新、容器监控等话题时使用。
主要能力:1) Swarm 集群:初始化集群、加入工作节点、部署 stack、服务扩缩容与更新、查看日志。2) 零停机部署:通过滚动更新逐步替换实例,并配置并行度、延迟与回滚策略。3) Kubernetes 迁移:使用 kompose 将 Compose 转换为 K8s 清单,并说明 Compose 与 K8s 在服务、网络、卷、副本、密钥上的映射关系。4) 监控栈:cAdvisor + Prometheus + Grafana 的组合部署。
必要用法:
- 初始化集群:docker swarm init --advertise-addr <MANAGER-IP>
- 加入工作节点:docker swarm join --token <TOKEN> <MANAGER-IP>:2377
- 部署 stack:docker stack deploy -c docker-compose.yml myapp
- 管理服务:docker service ls;docker service scale myapp_web=5;docker service update --image myapp:v2 myapp_web;docker service logs -f myapp_web
- 迁移转换:kompose convert -f docker-compose.yml,随后 kubectl apply -f .
推荐流程:先单机 Compose 部署,再进入 Swarm 集群,接着做滚动更新,然后接入监控,最后迁移到 Kubernetes。
限制与注意事项:仅有单个 Swarm 管理器会导致集群不可响应,建议使用 3 或 5 个管理器并定期备份 /var/lib/docker/swarm/;滚动更新应配置健康检查并设置失败回滚;生产数据库必须使用卷持久化;kompose 输出仅作为起点,需手动补充资源限制、健康检查、init 容器及 ConfigMap/Secret 引用。超出范围的包括应用代码部署与各语言 CI/CD 管道、K8s 集群搭建、数据库高可用。开发调试、单容器应用或从一开始就使用 K8s 的场景不适合本技能。安全方面建议定期轮换 Swarm 加入令牌、使用 Docker Secrets 管理敏感配置、为守护进程启用 TLS、设置资源限制并监控节点健康。部分具体参数、版本要求和价格信息暂未提供。