Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的镜像中,然后发布到任何流行的 Linux或Windows操作系统的机器上,也可以实现虚拟化。Docker是内核虚拟化,不使用Hypervisor是不完全虚拟化,依赖内核的特性实现资源隔离。本文主要介绍Docker CLI 中 docker swarm join 常用命令。

1、docker swarm join 简介

Docker Swarm 是 Docker 提供的用于创建和管理容器集群的工具。它允许您将多个 Docker 主机组成一个集群,并使用 Swarm 模式部署和管理容器应用程序。

docker swarm join 命令用于将节点加入到 Docker 集群中。节点可以加入集群作为工作节点(worker)或管理节点(manager)。加入集群需要使用正确的令牌,并提供管理节点的地址。

此命令与Swarm orchestrator一起工作。

加入一个节点到集群中。根据您使用--token标志传递的令牌,节点作为管理节点或工作节点加入。如果您传递一个管理器令牌,该节点将作为管理器进行连接。如果你传递了一个工作令牌,这个节点就会作为工作节点加入。

注意:这是一个集群管理命令,必须在 swarm 管理节点上执行。有关管理节点和工作节点的详细信息,请参阅文档中的 Swarm 模式部分。

参考文档:https://docs.docker.com/engine/reference/commandline/swarm_join/

2、docker swarm join 语法

docker swarm join [OPTIONS] HOST:PORT

3、docker swarm join 命令

1)加入一个管理节点到集群

下面的示例演示如何使用管理令牌加入一个管理节点。

docker swarm join --token SWMTKN-1-3pu6hszjas19xyp7ghgosyx9k8atbfcr8p2is99znpy26u2lkl-7p73s1dx5in4tatdymyhg9hu2 192.168.99.121:2377
This node joined a swarm as a manager.
docker node ls
ID                           HOSTNAME  STATUS  AVAILABILITY  MANAGER STATUS
dkp8vy1dq1kxleu9g4u78tlag *  manager2  Ready   Active        Reachable
dvfxp4zseq4s0rih1selh0d20    manager1  Ready   Active        Leader

一个集群最多应该有3-7个管理节点,因为大多数管理节点必须可用才能让集群正常工作。不打算参与管理节点群的节点应该以工作节点的身份加入。管理节点应该是稳定的主机,并拥有静态IP地址。

2)加入一个工作节点到集群

下面的示例演示如何使用工作令牌加入一个工作节点。

docker swarm join --token SWMTKN-1-3pu6hszjas19xyp7ghgosyx9k8atbfcr8p2is99znpy26u2lkl-1awxwuwd3z9j1z3puu7rcgdbx 192.168.99.121:2377
This node joined a swarm as a worker.
docker node ls
ID                           HOSTNAME  STATUS  AVAILABILITY  MANAGER STATUS
7ln70fl22uw2dvjn2ft53m3q5    worker2   Ready   Active
dkp8vy1dq1kxleu9g4u78tlag    worker1   Ready   Active        Reachable
dvfxp4zseq4s0rih1selh0d20 *  manager1  Ready   Active        Leader

3)--listen-addr value

如果节点是管理节点,它将在此地址上监听入站的集群管理流量。默认情况下,它会监听0.0.0.0:2377。也可以指定一个网络接口来监听该接口的地址,例如 --listen-addr eth0:2377

指定端口是可选的。如果值是一个裸露的IP地址或接口名称,则会使用默认端口2377

在加入一个已存在的集群时,通常不需要使用此标志。

4)--advertise-addr value

此标志指定将向集群中的其他成员广告的地址以供API访问。如果未指定,Docker将检查系统是否有一个单一的IP地址,并使用该IP地址与监听端口(参见 --listen-addr)。如果系统具有多个IP地址,则必须指定 --advertise-addr,以便选择正确的地址用于管理节点之间的通信和覆盖网络。

也可以指定一个网络接口来广告该接口的地址,例如 --advertise-addr eth0:2377

指定端口是可选的。如果值是一个裸露的IP地址或接口名称,则会使用默认端口2377。

在加入一个已存在的集群时,通常不需要使用此标志。如果通过负载均衡器加入新节点,应该使用此标志确保节点广告自己的IP地址而不是负载均衡器的IP地址。

5)--data-path-addr

此标志指定全局范围网络驱动程序将向其他节点发布的地址,以便访问在该节点上运行的容器。使用此参数,可以将容器的数据流量与集群的管理流量分离开来。如果未指定,Docker将使用与广告地址相同的IP地址或接口。

6)--token string

加入集群所需的秘密值

7)--availability

此标志指定节点在加入主节点时的可用性。可能的可用性值为active、pause或drain。

这个标志在某些情况下很有用。例如,一个集群可能希望有专门的管理节点,而不是作为工作节点提供服务。

可以通过将 --availability=drain 传递给 docker swarm join 来实现这一点。

4、命令选项

选项

默认值

描述

--advertise-addr

广告地址(格式:

--availability

active

节点的可用性(active, pause, drain)

--data-path-addr

用于数据路径流量的地址或接口(格式:

--listen-addr

0.0.0.0:2377

监听地址(格式:

--token

用于加入集群的令牌

5、子命令

命令

描述

docker swarm ca

显示和轮换根CA

docker swarm init

初始化一个swarm

docker swarm join

作为节点和/或管理者加入一个swarm

docker swarm join-token

管理加入令牌

docker swarm leave

离开swarm

docker swarm unlock

解锁swarm

docker swarm unlock-key

管理解锁密钥

docker swarm update

更新swarm

推荐文档

相关文档

大家感兴趣的内容

随机列表