docker swarm初始化

描述

初始化一群

API 1.24+  客户端和守护程序API都必须至少为 1.24, 才能使用此命令。docker version在客户端上使用命令检查客户端和守护程序API版本。

Swarm此命令与Swarm协调器一起使用。

用法

$ docker swarm init [OPTIONS]

扩展说明

初始化一群。该命令所针对的docker引擎将成为新创建的单节点集群中的管理员。

有关此命令的示例用法,请参阅下面的示例部分

选项

名称,简写 默认 描述
--advertise-addr 广告地址(格式:<ip | interface> [:port])
--autolock 启用管理员自动锁定(需要解锁密钥才能启动已停止的管理员)
--availability active 节点的可用性(“活动” |“暂停” |“漏极”)
--cert-expiry 2160h0m0s 节点证书的有效期(ns | us | ms | s | m | h)
--data-path-addr API 1.31+
用于数据路径通信的地址或接口(格式:<ip | interface>)
--data-path-port API 1.40+
用于数据路径通信的端口号(1024-49151)。如果未设置任何值或将其设置为0,则使用默认端口(4789)。
--default-addr-pool API 1.39+
CIDR格式的默认地址池
--default-addr-pool-mask-length 24 API 1.39+
默认地址池子网掩码长度
--dispatcher-heartbeat 5s 调度程序心跳周期(ns | us | ms | s | m | h)
--external-ca 一个或多个证书签名端点的规范
--force-new-cluster 从当前状态强制创建新集群
--listen-addr 0.0.0.0:2377 监听地址(格式:<ip | interface> [:port])
--max-snapshots API 1.25+
可保留的其他Raft快照数量
--snapshot-interval 10000 API 1.25+
Raft快照之间的日志条目数
--task-history-limit 5 任务历史记录保留限制

例子

$ docker swarm init --advertise-addr 192.168.99.121
Swarm initialized: current node (bvz81updecsj6wjz393c09vti) is now a manager.

To add a worker to this swarm, run the following command:

    docker swarm join \
    --token SWMTKN-1-3pu6hszjas19xyp7ghgosyx9k8atbfcr8p2is99znpy26u2lkl-1awxwuwd3z9j1z3puu7rcgdbx \
    172.17.0.2:2377

To add a manager to this swarm, run 'docker swarm join-token manager' and follow the instructions.

docker swarm init生成两个随机令牌,一个工作人员令牌和一个管理人员令牌。当您将新节点加入集群时,该节点将根据传递给集群加入的令牌作为工作节点或管理者节点加入

创建群集后,您可以使用swarm join-token显示或旋转 令牌

--autolock

此标志启用使用加密密钥自动锁定管理器的功能。所有管理器存储的私钥和数据都将受到输出中打印的加密密钥的保护,没有这些密钥将无法访问。因此,存储此密钥非常重要,以便在重新启动后激活管理器。可以将密钥传递docker swarm unlock给以重新激活管理器。可以通过运行禁用自动锁定 docker swarm update --autolock=false。禁用它之后,不再需要加密密钥来启动管理器,并且它将在无需用户干预的情况下自行启动。

--cert-expiry

该标志设置节点证书的有效期。

--dispatcher-heartbeat

此标志设置节点被告知用作报告其运行状况的周期的频率。

--external-ca

此标志将群集设置为使用外部CA颁发节点证书。该值采用形式protocol=X,url=Y。的值用于protocol指定应使用哪种协议将签名请求发送到外部CA。当前,唯一支持的值是cfssl。URL指定应在其中提交签名请求的端点。

--force-new-cluster

该标志强制作为仲裁的一部分的现有节点作为单节点管理器重新启动,而不会丢失其数据。

--listen-addr

该节点侦听此地址上的入站群管理器流量。默认值为监听0.0.0.0:2377。还可以指定一个网络接口以监听该接口的地址。例如--listen-addr eth0:2377

指定端口是可选的。如果该值为裸IP地址或接口名称,则将使用默认端口2377。

--advertise-addr

该标志指定将向群的其他成员通告以进行API访问和覆盖网络的地址。如果未指定,则Docker将检查系统是否具有单个IP地址,并将该IP地址与侦听端口一起使用(请参阅参考资料--listen-addr)。如果系统具有多个IP地址,则--advertise-addr必须指定该地址, 以便为管理者之间的通信和覆盖网络选择正确的地址。

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

指定端口是可选的。如果该值为裸IP地址或接口名称,则将使用默认端口2377。

--data-path-addr

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

--data-path-port

该标志允许您配置用于数据路径通信的UDP端口号。提供的端口号必须在1024-49151范围内。如果未设置此标志或将其设置为0,则使用默认端口号4789。只能在初始化群集时配置数据路径端口,并且该数据路径端口适用于加入群集的所有节点。以下示例初始化一个新的Swarm,并将数据路径端口配置为UDP端口7777;

docker swarm init --data-path-port=7777

初始化集群后,使用以下docker info命令来验证端口是否已配置:

docker info
...
ClusterID: 9vs5ygs0gguyyec4iqf2314c0
Managers: 1
Nodes: 1
Data Path Port: 7777
...

--default-addr-pool

此标志为全局作用域网络指定默认子网池。格式示例为--default-addr-pool 30.30.0.0/16 --default-addr-pool 40.40.0.0/16

--default-addr-pool-mask-length

该标志指定default-addr-pool的默认子网池掩码长度。格式示例为--default-addr-pool-mask-length 24

--task-history-limit

此标志设置任务历史记录保留限制。

--max-snapshots

该标志设置除当前Raft快照之外还保留的旧Raft快照的数量。默认情况下,不保留任何旧快照。此选项可用于调试或存储群集状态的旧快照以用于灾难恢复。

--snapshot-interval

此标志指定在Raft快照之间允许多少个日志条目。将其设置为更高的数量将减少触发快照的频率。快照压缩了Raft日志,并允许将状态更有效地转移给新的管理者。但是,频繁拍摄快照会降低性能。

--availability

该标志指定节点加入主服务器时节点的可用性。可能的可用性值activepausedrain

该标志在某些情况下很有用。例如,集群可能希望拥有不充当工作程序节点的专用管理器节点。这可以通过传递--availability=drain给来实现docker swarm init

上级命令

命令 描述
码头工人 管理群
命令 描述
docker swarm ca 显示并旋转根CA
docker swarm初始化 初始化一群
docker swarm加入 加入一群人作为节点和/或管理者
docker swarm连接令牌 管理加入令牌
码头群离开 离开群
码头群解锁 解锁群
泊坞窗群解锁密钥 管理解锁密钥
docker swarm更新 更新群