Docker Swarm 简介
Docker Swarm 是 Docker 的集群管理工具,它允许你将多个 Docker 主机(节点)组合成一个虚拟的单一主机。通过这种方式,你可以无缝地扩展你的 Docker 环境到多个物理或虚拟机器上,同时保持一致的管理界面。
支持的工具
Docker Swarm 与 Docker 守护程序使用相同的 API,因此任何与 Docker 守护程序通信的工具都可以与 Swarm 集成,包括但不限于:
- Dokku
- Docker Compose
- Docker Machine
- Jenkins
原理
Swarm 集群由两种类型的节点构成:
- 管理节点(Manager):负责整个集群的管理工作,包括集群配置、服务管理等所有与集群相关的任务。
- 工作节点(Worker Node):负责运行服务并执行任务。
使用
以下是使用 Docker Machine 和 VirtualBox 创建和管理 Swarm 集群的步骤:
1. 创建 Swarm 集群管理节点(Manager)
首先,你需要创建一个 Docker 机器作为管理节点:
docker-machine create -d virtualbox swarm-manager
然后,通过 SSH 连接到管理节点并初始化 Swarm 集群:
docker-machine ssh swarm-manager
docker swarm init --advertise-addr 192.168.99.107 # 使用你的机器实际的 IP 地址
初始化成功后,你会得到一个加入令牌和命令,用于添加工作节点到集群:
docker swarm join --token SWMTKN-1-4oogo9qziq768dma0uh3j0z0m5twlm10iynvz7ixza96k6jh9p-ajkb6w7qd06y1e33yrgko64sk 192.168.99.107:2377
2. 创建 Swarm 集群工作节点(Worker)
创建两台工作节点的 Docker 机器:
docker-machine create -d virtualbox swarm-worker1
docker-machine create -d virtualbox swarm-worker2
连接到每台工作节点并使用之前获取的加入令牌将它们添加到集群:
docker-machine ssh swarm-worker1
docker swarm join --token SWMTKN-1-4oogo9qziq768dma0uh3j0z0m5twlm10iynvz7ixza96k6jh9p-ajkb6w7qd06y1e33yrgko64sk 192.168.99.107:2377
对 swarm-worker2
重复上述步骤。
3. 查看集群信息
回到管理节点,执行 docker info
命令来查看集群信息:
docker-machine ssh swarm-manager
docker info
这将显示集群的详细信息,包括节点、管理器状态、容器数量等。