简介
Docker Swarm 是一个强大的容器编排解决方案,使开发者能够将多个 Docker 主机转变为一个统一的、可扩展的基础设施。本全面教程深入介绍了创建、配置和管理 Docker Swarm 集群的方法,涵盖了基本概念、节点类型、服务部署策略以及构建强大的容器化环境的最佳实践。
Docker Swarm 是一个强大的容器编排解决方案,使开发者能够将多个 Docker 主机转变为一个统一的、可扩展的基础设施。本全面教程深入介绍了创建、配置和管理 Docker Swarm 集群的方法,涵盖了基本概念、节点类型、服务部署策略以及构建强大的容器化环境的最佳实践。
Docker Swarm 是用于 Docker 环境的原生集群和容器编排解决方案。它使开发者能够创建和管理 Docker 节点集群,将多个 Docker 主机转变为单个虚拟 Docker 主机。
节点类型 | 描述 | 职责 |
---|---|---|
管理器节点 | 控制集群状态 | 编排、调度 |
工作节点 | 执行容器工作负载 | 运行服务 |
## 在主节点上初始化 Swarm
docker swarm init --advertise-addr 192.168.1.100
## 生成工作节点加入令牌
docker swarm join-token worker
## 将工作节点加入集群
docker swarm join --token < 令牌 > 192.168.1.100:2377
## 创建一个复制的服务
docker service create --replicas 3 --name web nginx
## 扩展服务
docker service scale web=5
## 更新服务
docker service update --image nginx:latest web
## 在主管理器上初始化 Swarm 集群
docker swarm init --advertise-addr 192.168.1.100
## 查看集群加入令牌
docker swarm join-token manager
docker swarm join-token worker
## 将工作节点加入集群
docker swarm join \
--token SWMTKN-1-xxxxxxxxxxxxxxxxxxxxx \
192.168.1.100:2377
参数 | 描述 | 默认值 |
---|---|---|
通告地址 | 节点的网络接口 | 主 IP |
监听端口 | Swarm 通信端口 | 2377 |
节点标签 | 用于节点选择的元数据 | 无 |
## 添加自定义节点标签
docker node update --label-add type=frontend worker1
## 设置节点可用性
docker node update --availability drain worker2
## 创建覆盖网络
docker network create \
--driver overlay \
--subnet 10.0.0.0/24 \
my-network
## 部署带有 3 个副本的 nginx 服务
docker service create \
--name web-service \
--replicas 3 \
--publish 80:80 \
nginx:latest
选项 | 描述 | 示例 |
---|---|---|
--replicas | 容器实例数量 | 3 |
--update-parallelism | 并发更新数 | 2 |
--constraint | 节点放置规则 | node.labels.type==frontend |
## 动态扩展服务
docker service scale web-service=5
## 水平扩展
docker service update \
--replicas-max-per-node 2 \
web-service
## 使用自定义负载均衡创建服务
docker service create \
--name api-service \
--replicas 4 \
--publish mode=host,target=8080,published=80 \
--update-delay 10s \
api-image:latest
## 滚动更新策略
docker service update \
--image nginx:latest \
--update-parallelism 2 \
--update-delay 10s \
web-service
## 列出活动服务
docker service ls
## 检查特定服务
docker service ps web-service
通过掌握 Docker Swarm,开发者和系统管理员能够在分布式系统中有效地管理容器化应用程序。本教程展示了初始化集群、配置节点拓扑、部署服务以及利用服务发现、负载均衡和安全通信等高级特性的关键技术。理解这些基础知识使团队能够构建具有更高运营效率的可扩展、弹性的容器基础设施。