Docker Swarm是什么?Docker Swarm是一款容器编排工具,能够将多个Docker引擎作为一个统一的系统进行管理。从而实现跨多台计算机部署和管理容器化应用程序。这篇文章将主要介绍Docker Swarm集群如何在虚拟专用服务器上部署。如果网站用的是国内服务器、
美国服务器等物理机均可作为参考。
要创建Docker swarm,需要将一台计算机初始化为Swarm管理器,并将其他计算机连接为Worker节点。然后可以在swarm中部署您的服务,并使用Docker命令行界面(CLI)命令来执行扩展或应用滚动更新等任务。
一、Docker Swarm集群部署条件可以是个人计算机、虚拟机、VPS实例或其他兼容环境。这里使用来自Hostinger的3个VPS主机,一个VPS作为管理器节点,另外两个作为工作节点。Docker需要至少4 G 的RAM才能顺利运行,因此我们的VPS提供1个CPU内核、4 GB RAM和50 GB NVMe磁盘空间就足够了。
建议重命名每个实例以反映其在swarm中的角色。虽然这个步骤是可选的,但使用自定义主机名可以提高可读性,并更容易识别每个节点。
二、Docker Swarm集群部署步骤这里先说明一下,请按照以下步骤创建Docker Swarm并跨多个实例管理服务。由于我们同时使用Manager和Worker节点,因此请注意运行每个步骤的位置。
1、在所有实例上安装Docker
正如上面提到的条件,我们需要一个管理器和两台计算机设备,也就是三台设备。我们需要将三台设备都预装Docker。完成后,通过执行以下命令来验证Docker是否确实已安装:
正确输出应如下所示:

然后检查Docker服务是否已启动并正在运行:
- sudo systemctl status docker
复制代码应该会看到类似active (running) 的状态,确认Docker守护程序工作正常。退出此状态请按Ctrl + C。

2、初始化swarm manager
在所有设备上安装Docker后,将注意力转移到管理器节点,获取Manager节点的IP地址。获得IP地址后,运行以下命令以初始化swarm。将 [manager node's IP] 替换为实际VPS IP:
- docker swarm init --advertise-addr [manager node's IP]
复制代码此命令生成类似于以下内容的输出:

制并保存join命令,并用它来将worker节点连接到群。要确认swarm已成功启动,请运行:
了解有关swarm状态的信息。

最后检查swarm中的节点列表:
会看到节点ID、主机名、状态、可用性和角色等详细信息。

3、添加worker节点
现在需要运行worker1和worker2 节点。转到worker1节点并运行您从管理器复制的join命令:
- docker swarm join --token [join token] [manager node's IP]:2377
复制代码如果看到 “This node joined a swarm as a worker”的提示,说明该节点已成功加入swarm。

在worker2或任何其他节点上重复以上步骤,将它们连接到群。
4、在Docker Swarm部署第一个服务
此步骤在manager节点运行。返回到Manager节点以部署名为hello-world的测试服务。虽然这只是一个测试服务,但可以帮助我们熟悉Docker Swarm中的服务管理。
以下是创建 hello-world 服务的命令:
- docker service create --replicas 1 --name hello-world alpine ping docker.com
复制代码
docker service create:在Docker Swarm中启动服务创建;
–replicas 1:定义要运行的服务副本数。在本例中为1;
–name hello-world:将服务名称设置为hello-world;
Alpine Ping docker.com:使用Alpine映像对docker.com执行ping作作为简单测试。

之后,使用以下命令列出Docker Swarm中运行的服务:
