已编辑 16 几小时前 通过 ExtremeHow 编辑团队
Docker编排群模式容器开发与运维群集管理扩展配置命令行应用程序部署
翻译更新 16 几小时前
Docker Swarm 是一个工具,它允许您创建和管理 Docker 节点集群。它提供了一种方法来大规模编排容器,这意味着您可以在多个节点上部署、扩展和管理 Docker 容器。这对于需要高可用性和负载平衡的应用程序至关重要。
在设置 Docker Swarm 之前,您需要在 Linux 机器上安装 Docker。建议至少有三个节点(一个管理节点和两个工作节点)以创建一个有弹性的 Swarm 集群。确保您所有的节点都在同一网络中并且可以相互通信。
首先,确保在所有机器上安装了 Docker。您可以通过在每台机器上运行以下命令来检查 Docker 版本:
docker --version
如果未安装 Docker,您可以遵循官方网站上针对 Linux 的 Docker 安装文档进行安装,适用于您的发行版,如 Ubuntu、CentOS 等。
选择您的 Linux 机器之一作为 Swarm 管理节点。管理节点负责管理集群和编排服务。
在管理节点上,使用以下命令启动集群:
docker swarm init --advertise-addr <MANAGER-IP>
将 <MANAGER-IP>
替换为管理节点的 IP 地址。运行此命令后,Docker 将输出一个命令,以加入工作节点到该 Swarm。确保记下此命令,因为您将很快使用它。
在每个工作节点上,运行 Docker Swarm 在管理节点初始化后提供的加入命令。该命令类似于:
docker swarm join --token SWMTKN-1-xxxxxxxx <MANAGER-IP>:2377
此命令包含特定于您 Swarm 设置的令牌和管理节点的 IP 地址。在每个工作节点上运行此命令。如果成功,终端将输出确认消息,表明节点已加入集群。
要验证工作节点是否已成功加入集群,请返回到您的管理节点。运行以下命令以查看所有节点:
docker node ls
您应该会看到您的集群中的节点列表,包括管理节点和工作节点。此输出显示每个节点的状态及其角色。
现在您已设置好 Docker Swarm,可以在您的集群上部署服务。Docker Swarm 中的服务是一个任务,定义了容器在集群中的运行方式。
以下是部署简单服务的示例:
docker service create --replicas 3 --name hello_world alpine ping docker.com
此命令创建一个名为“hello_world”的服务,运行三个 Alpine Linux 容器副本,执行对 docker.com 的 ping 操作。Docker Swarm 将自动将这些副本分布到各个节点。
要列出集群中运行的所有服务,请在管理节点上使用以下命令:
docker service ls
要获取有关特定服务的更详细信息,包括运行的任务(或容器),请使用:
docker service ps <service_name>
例如,要查看已部署的“hello_world”服务:
docker service ps hello_world
Docker Swarm 的一个优点是能够轻松扩展服务。您可以增加或减少服务副本的数量,如下所示:
docker service scale hello_world=5
此命令将“hello_world”服务的运行副本数量增加到 5。Docker Swarm 将管理这些附加副本所在的节点,确保适当的负载平衡。
您可以在不停止运行服务的情况下更新其设置。例如,您可以更改服务使用的图像版本。
docker service update --image alpine:latest hello_world
这将更新“hello_world”服务以使用 Alpine 图像的最新版本。Docker Swarm 执行滚动更新,使用更新后的图像替换旧任务,而无需停机。
当不再需要某个服务时,可以执行以下命令将其移除:
docker service rm hello_world
此命令从集群中删除指定的服务,并停止所有关联的副本。
如果您决定从集群中移除工作节点,可以在工作节点上使用以下命令退出集群:
docker swarm leave
对于管理节点,如果您想删除或重启它,请使用:
docker swarm leave --force
在 Linux 上设置 Docker Swarm 让您可以高效地管理和扩展多个节点上的容器。本指南引导您启动 Docker Swarm、添加节点、部署服务、扩展服务、更新服务,最终根据需要移除节点和服务。
通过实施 Docker Swarm,您在提供高可用性、负载平衡和简化的容器管理方面迈出了重要一步。您可以进一步探索 Docker Swarm 的功能,如网络配置和安全的节点通信。
这些知识构成了可以用于构建高级部署的坚实基础,并可以与 CI/CD 流水线集成以自动化您的开发和交付过程。
如果你发现文章内容有误, 您可以