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

1、docker swarm init 简介

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

docker swarm ca 命令用于初始化Docker Swarm集群,并将当前节点设置为Swarm管理节点。

该命令的目标docker引擎将成为新创建的单节点集群中的一个管理器。。

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

2、docker swarm init 语法

docker swarm init [OPTIONS]

3、docker swarm init 命令

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 会生成两个随机的令牌,一个用于 worker 节点,一个用于 manager 节点。当您将新节点加入到 Swarm 集群时,根据传递给 swarm join 的令牌来确定节点是加入为 worker 节点还是 manager 节点。

创建 Swarm 集群后,您可以使用 swarm join-token 命令来显示或轮换令牌。

1)--autolock

此标志启用管理节点的自动锁定,使用一个加密密钥保护所有管理节点的私钥和数据。只有提供密钥才能访问和激活管理节点。因此,非常重要的是妥善保存此密钥,以便在管理节点重新启动后重新激活。可以通过运行 docker swarm unlock 命令传递密钥来重新激活管理节点。可以通过运行 docker swarm update --autolock=false 来禁用自动锁定。在禁用后,启动管理节点时不再需要加密密钥,管理节点将自动启动而无需用户干预。

2)--cert-expiry

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

3)--dispatcher-heartbeat

此标志设置节点上报健康状态的频率。

4)--external-ca

此标志配置 Swarm 使用外部 CA 发行节点证书。值的格式为 protocol=X,url=Y。protocol 指定发送签名请求到外部 CA 的协议,目前只支持 cfssl。URL 指定签名请求提交的端点。

5)--force-new-cluster

此标志强制将之前属于丢失群集的多个节点之一的现有节点重新启动为单节点 Manager,而无需丢失其数据。

6)--listen-addr

该节点监听传入的 Swarm Manager 流量的地址。默认情况下,监听地址为 0.0.0.0:2377。也可以指定要监听的网络接口以使用该接口的地址,例如 --listen-addr eth0:2377

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

7)--advertise-addr

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

也可以指定要公布的网络接口以使用该接口的地址,例如 --advertise-addr eth0:2377

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

8)--data-path-addr

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

9)--data-path-port

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

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

Swarm 初始化后,使用 docker info 命令验证端口是否已配置:

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

10)--default-addr-pool

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

11)--default-addr-pool-mask-length

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

12)--task-history-limit

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

13)--max-snapshots

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

14)--snapshot-interval

此标志指定在Raft快照之间允许的日志条目数。将此设置为较高的数字将较少触发快照。快照会压缩Raft日志并允许将状态更有效地传输到新的管理节点。但是,频繁进行快照会带来性能成本。

15)--availability

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

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

4、命令选项

选项

默认值

描述

--advertise-addr

广告地址(格式:

--autolock

启用管理器自动锁定(需要解锁密钥才能启动已停止的管理器)

--availability

active

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

--cert-expiry

2160h0m0s

节点证书的有效期(ns|us|ms|s|m|h)

--data-path-addr

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

--data-path-port

API 1.40+

用于数据路径流量的端口号(1024 - 49151)。如果未设置值或设置为0,则使用默认端口(4789)。

--default-addr-pool

API 1.40+

默认地址池(CIDR格式)

--default-addr-pool-mask-length

24

API 1.40+

默认地址池子网掩码长度

--dispatcher-heartbeat

5s

调度程序心跳周期(ns|us|ms|s|m|h)

--external-ca

一个或多个证书签名端点的规范

--force-new-cluster

从当前状态强制创建新集群

--listen-addr

0.0.0.0:2377

监听地址(格式:[:port])

--max-snapshots

要保留的额外Raft快照数量

--snapshot-interval

10000

Raft快照之间的日志条目数

--task-history-limit

5

任务历史记录保留限制

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

推荐文档

相关文档

大家感兴趣的内容

随机列表