• 作者:老汪软件技巧
  • 发表时间:2024-12-18 11:06
  • 浏览量:

本文简介了 Docker Swarm,Docker 官方的容器集群管理和编排工具,适合快速搭建和管理多主机容器集群。Swarm 提供100% Docker API 兼容性、内置服务发现与负载均衡、高可用架构及滚动更新等功能,适用于寻求简易操作的中小型项目。文中还涵盖了在 CentOS 8 上安装配置 Docker Swarm 的步骤,包括初始化 Swarm、加入节点、部署服务和管理网络等关键操作。

Docker Swarm简介

Docker Swarm 是 Docker 官方推出的容器集群管理和编排工具,旨在简化多台主机上的 Docker 容器的部署、管理和扩展。它将一组 Docker 主机转换成一个虚拟的 Docker 主机,让用户可以像管理单个主机一样轻松地管理整个集群。Swarm 的设计目的是为了提供一种简单的方法来构建和运行分布式应用程序,同时保持与标准 Docker API 的完全兼容性,这意味着所有基于标准 Docker API 构建的工具都可以直接与 Swarm 一起工作。

主要特点使用场景

Docker Swarm 适用于那些需要快速搭建容器集群并且希望操作尽可能简单的场合。对于中小企业或者不需要 Kubernetes 复杂功能的小型项目来说,Swarm 提供了一个轻量级且易用的选择。不过,随着业务的增长和技术的发展,很多组织可能会转向更强大的容器编排平台如 Kubernetes(K8S)。

总之,Docker Swarm 是一个强大但相对简单的容器编排解决方案,特别适合那些寻求快速入门容器化技术而不愿意投入过多时间和资源进行复杂配置的团队。

Docker Swarm架构

image.png

Docker Swarm安装

基于已经安装的 Docker,本文介绍通过简单的命令来初始化和配置 Docker Swarm 集群。在 CentOS 8 上启动和配置 Docker Swarm,并在其中部署和管理服务。在实际使用中,根据具体需求调整配置,以达到最佳效果。

任务实施初始化 Docker Swarm

选择一个节点作为 Swarm 的管理节点(Manager),并初始化 Swarm 集群。

在管理节点上初始化 Swarm:

```
sudo docker swarm init
```
执行上述命令后,Docker 会输出一个加入 Swarm 集群的命令,类似于:
```
docker swarm join --token SWMTKN-1-xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx 192.168.1.1:2377
```
这个命令包含了用于加入 Swarm 的令牌和管理节点的 IP 地址及端口。

加入 Worker 节点

在其他节点上,使用初始化 Swarm 时生成的命令将它们加入到 Swarm 集群中。

在 Worker 节点上执行加入命令:

```
sudo docker swarm join --token SWMTKN-1-xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx 192.168.1.1:2377
```

查看 Swarm 状态

在管理节点上,可以使用以下命令查看集群的状态和节点信息。

查看节点列表:

```
sudo docker node ls
```
这个命令会列出集群中的所有节点,包括它们的角色(Manager 或 Worker)和状态。

部署服务

使用docker service命令可以在 Swarm 集群中部署服务。

创建一个简单的服务:

sudo docker service create --replicas 3 -p 80:80 --name my-web nginx

剑客中心_剑客任务_

这个命令会创建一个名为my-web的服务,使用 Nginx 镜像,并且在集群中运行 3 个副本。服务会将主机的 80 端口映射到容器的 80 端口。

查看服务状态:

sudo docker service ls

查看服务详细信息:

sudo docker service ps my-web

管理 Swarm

在 Swarm 集群中,管理节点负责服务的调度和集群的状态管理。你可以通过以下命令进行一些常见的管理任务。

添加新的 Manager 节点: 在管理节点上运行以下命令获取添加 Manager 的命令:

sudo docker swarm join-token manager

然后在新节点上执行输出的命令。

添加新的 Worker 节点: 在管理节点上运行以下命令获取添加 Worker 的命令:

sudo docker swarm join-token worker

然后在新节点上执行输出的命令。

移除节点: 在管理节点上运行以下命令移除指定节点(假设要移除的节点 ID 为node-id):

sudo docker node rm node-id

更新服务: 可以使用docker service update命令来更新服务配置,例如增加副本数量:sudo docker service update --replicas 5 my-web

配置 Swarm 网络

Docker Swarm 支持多种网络模式,包括覆盖网络(Overlay Network),用于在多个节点之间通信。

创建覆盖网络:

sudo docker network create --driver overlay --attachable my-network

在服务中使用覆盖网络:

sudo docker service create --replicas 3 --network my-network --name my-web nginx

停止 Swarm 集群

如果你想停止 Swarm 集群,可以先移除所有节点,然后在管理节点上运行以下命令:

移除节点: 在管理节点上运行以下命令移除所有节点:

sudo docker node rm $(sudo docker node ls -q)

关闭 Swarm: 在管理节点上运行以下命令关闭 Swarm:

sudo docker swarm leave --force

在 Worker 节点上运行以下命令离开 Swarm:

sudo docker swarm leave


上一条查看详情 +React 19的新能力useMemo有啥用
下一条 查看详情 +没有了