Docker Swarm 是 Docker 原生的集群管理工具
2025-05-16
2
参考资料
Docker Swarm 简介
Docker Swarm 是 Docker 原生的集群管理工具,用于将多个 Docker 主机组成一个虚拟的集群,统一管理容器化应用。
特点
原生集成:与 Docker Engine 深度集成,无需额外安装。
简单易用:命令与 Docker CLI 一致,学习成本低。
高可用性:支持多管理节点(Manager)自动容错。
服务发现与负载均衡:内置 DNS 轮询和 VIP 负载均衡。
滚动更新:支持服务灰度发布和回滚。
跨主机网络:通过 overlay 网络实现容器跨主机通信。
最新更新内容及时间
v1.2.9(2023年10月):
修复节点自动恢复的稳定性问题。
优化服务任务调度的性能。
安全补丁更新(CVE-2023-XXXXX)。
镜像下载地址
官方镜像库:
docker pull swarm:latest
官网地址
文档地址
Docker 安装示例
# 在第一个节点初始化 Swarm(替换为实际IP) docker swarm init --advertise-addr <MANAGER_IP> # 添加工作节点(从初始化命令输出的提示中获取令牌) docker swarm join --token <TOKEN> <MANAGER_IP>:2377
docker-compose.yml 示例(Stack 部署)
version: '3.8' services: web: image: nginx:alpine ports: - "80:80" deploy: replicas: 3 update_config: parallelism: 2 delay: 10s restart_policy: condition: on-failure
常用错误及解决
节点无法加入集群:
检查防火墙是否开放
2377/tcp
(管理端口)、7946/tcp+udp
(节点通信)、4789/udp
(overlay 网络)。确保所有节点时间同步(NTP)。
服务卡在
Pending
状态:检查资源是否充足:
docker node inspect <NODE_ID> --pretty
使用
docker service ps <SERVICE_NAME>
查看具体错误。Overlay 网络不通:
确认所有节点已启用 IP 转发:
sysctl net.ipv4.ip_forward=1
Manager 节点不可用:
恢复单 Manager 集群:
docker swarm init --force-new-cluster
多 Manager 集群需保证 ≥3 个节点避免脑裂。
声明:本站所有文章资源内容,如无特殊说明或标注,均为采集网络资源。如若本站内容侵犯了原著者的合法权益,可联系本站删除。