Skip to content

docker swarm 教程

【云原生】阿里云服务器部署 Docker Swarm集群 https://developer.aliyun.com/article/985756#slide-0

这里是一个详细的教程,介绍如何在连接同一 Wi-Fi 的 Windows 和 Mac 计算机上设置 Docker Swarm。Docker Swarm 是 Docker 的原生集群管理工具,它可以帮助你管理一组 Docker 主机作为一个虚拟主机,使得你可以非常方便地部署微服务。

Windows 和 Mac 步骤

第一步:安装 Docker Desktop

首先确保你的 Windows 和 Mac 计算机上都安装了 Docker Desktop。你可以从Docker 官网下载最新版的 Docker Desktop 并安装。

第二步:初始化 Docker Swarm

选择一个节点作为管理节点。通常选择硬件配置较高的机器或网络稳定性更好的机器作为管理节点。

在 Mac 上初始化 Swarm:

  1. 打开终端。
  2. 运行以下命令以创建一个新的 Swarm,其中<YOUR-IP>是该 Mac 在局域网中的 IP 地址:
    bash
    docker swarm init --advertise-addr <YOUR-IP>
    这个命令会输出一些信息,包括加入 Swarm 的命令。

记录加入 Swarm 的命令:

你将看到类似这样的输出:

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

    docker swarm join --token <SWARM-TOKEN> <YOUR-IP>:2377

保留这个命令,我们稍后在 Windows 机器上使用。

第三步:将 Windows 机器加入 Swarm

在 Windows 上加入 Swarm:

  1. 打开命令提示符或 PowerShell。
  2. 使用你在 Mac 上得到的命令来加入 Swarm:
    powershell
    docker swarm join --token <SWARM-TOKEN> <MAC-IP>:2377
    确保替换<SWARM-TOKEN><MAC-IP>为实际的 token 和 Mac 的 IP 地址。

第四步:验证 Swarm 集群

查看 Swarm 节点

在 Mac(管理节点)上运行以下命令来查看所有的 Swarm 节点:

bash
docker node ls

你应该能看到你的 Mac 和 Windows 机器都列为 Swarm 的一部分。

第五步:部署服务到 Swarm

现在你可以开始在 Swarm 上部署服务了。

示例:部署一个简单的 Nginx 服务

在 Mac 上运行:

bash
docker service create --name my-web --publish 8080:80 --replicas 2 nginx

这个命令会在 Swarm 集群上创建一个名为my-web的服务,部署两个副本,每个副本都是一个 Nginx 容器,外部可以通过 8080 端口访问。

第六步:查看服务状态

运行以下命令查看服务的状态:

bash
docker service ls

第七步:访问你的服务

在浏览器中输入http://<任一节点的IP>:8080,你应该能看到 Nginx 的欢迎页面。

这样,你就成功在你的局域网内的 Windows 和 Mac 计算机上设置了一个简单的 Docker Swarm 集群!你可以继续探索更多 Swarm 的功能,比如扩展服务、更新服务配置等。

查看 ip

在 Docker Swarm 中初始化 Swarm 时使用--advertise-addr参数指定的 IP 地址应该是节点在网络中的可达地址。如果你不确定要使用哪个 IP 地址,你可以通过以下方法查找你的系统的 IP 地址:

在 Mac 上查看 IP 地址

  1. 打开终端。
  2. 输入以下命令之一来查看你的网络配置信息:
    • 使用ifconfig命令:
      bash
      ifconfig
      这会列出所有网络接口的详细信息。查找与你连接的网络相关的部分(通常是en0en1对于以太网或 Wi-Fi),然后找到inet字段,它后面跟着的就是你的 IP 地址。
    • 使用ipconfig getifaddr en0(对于 Wi-Fi 通常是en0,如果是以太网可能是en1或其他):
      bash
      ipconfig getifaddr en0
      这将直接返回你的 Wi-Fi 接口的 IP 地址。

在 Windows 上查看 IP 地址

  1. 打开命令提示符(CMD)或 PowerShell。
  2. 输入以下命令:
    • 使用ipconfig命令:
      powershell
      ipconfig
      这将列出所有网络接口的配置。找到与你连接的网络相关的部分(通常标记为“无线局域网适配器 WLAN”或“以太网适配器 以太网”),查找IPv4 地址。该地址就是你的 IP 地址。

示例:初始化 Docker Swarm

假设你在 Mac 上的 IP 地址是192.168.1.100,你可以这样初始化 Swarm:

bash
docker swarm init --advertise-addr 192.168.1.100

确保替换192.168.1.100为你自己的实际 IP 地址。

这样设置可以确保 Docker Swarm 使用正确的网络接口,并且其他节点能够正确连接到 Swarm 管理节点。如果你在局域网中,通常应该使用局域网内的私有 IP 地址(如 192.168.x.x,10.x.x.x)。

Windows 查看 ipconfig

powershell
PS C:\Users\Administrator\Documents\vite-docs> ipconfig

Windows IP 配置


未知适配器 Meta:

   连接特定的 DNS 后缀 . . . . . . . :
   本地链接 IPv6 地址. . . . . . . . : fe80::ac30:1ae6:f91f:95e%54
   IPv4 地址 . . . . . . . . . . . . : 198.18.0.1
   子网掩码  . . . . . . . . . . . . : 255.255.255.252
   默认网关. . . . . . . . . . . . . : 0.0.0.0

以太网适配器 以太网:

   连接特定的 DNS 后缀 . . . . . . . :
   本地链接 IPv6 地址. . . . . . . . : fe80::b7c5:180c:13f9:f92f%20
   IPv4 地址 . . . . . . . . . . . . : 192.168.2.3
   子网掩码  . . . . . . . . . . . . : 255.255.255.0
   默认网关. . . . . . . . . . . . . : 192.168.2.1

无线局域网适配器 WLAN:

   媒体状态  . . . . . . . . . . . . : 媒体已断开连接
   连接特定的 DNS 后缀 . . . . . . . :

无线局域网适配器 本地连接* 1:

   媒体状态  . . . . . . . . . . . . : 媒体已断开连接
   连接特定的 DNS 后缀 . . . . . . . :

无线局域网适配器 本地连接* 2:

   媒体状态  . . . . . . . . . . . . : 媒体已断开连接
   连接特定的 DNS 后缀 . . . . . . . :

以太网适配器 蓝牙网络连接:

   媒体状态  . . . . . . . . . . . . : 媒体已断开连接
   连接特定的 DNS 后缀 . . . . . . . :

以太网适配器 vEthernet (Default Switch):

   连接特定的 DNS 后缀 . . . . . . . :
   本地链接 IPv6 地址. . . . . . . . : fe80::eeae:8f48:b96b:a6d5%25
   IPv4 地址 . . . . . . . . . . . . : 172.19.48.1
   子网掩码  . . . . . . . . . . . . : 255.255.240.0
   默认网关. . . . . . . . . . . . . :

以太网适配器 vEthernet (WSL (Hyper-V firewall)):

   连接特定的 DNS 后缀 . . . . . . . :
   本地链接 IPv6 地址. . . . . . . . : fe80::2099:85ab:107f:c82c%41
   IPv4 地址 . . . . . . . . . . . . : 172.30.64.1
   子网掩码  . . . . . . . . . . . . : 255.255.240.0
   默认网关. . . . . . . . . . . . . :
PS C:\Users\Administrator\Documents\vite-docs>

根据你提供的ipconfig输出结果,你可以使用192.168.2.3这个 IPv4 地址来初始化 Docker Swarm。这是你的以太网适配器所分配的本地网络地址,适合用来在局域网内通讯和部署服务。

步骤:

1. 初始化 Docker Swarm

在你的 Windows 计算机上,打开 PowerShell 或命令提示符,然后使用以下命令来初始化 Docker Swarm。确保使用你从ipconfig结果中得到的 IP 地址:

powershell
docker swarm init --advertise-addr 192.168.2.3

这条命令会设置当前机器作为 Swarm 的管理节点。命令执行后,你将得到一条加入 Swarm 的命令,用于将其他 Docker 节点加入到这个 Swarm 集群中。

2. 记录加入 Swarm 的命令

初始化 Swarm 后,系统会显示一条如何将其他节点加入到 Swarm 的指令。这条指令包含一个 Swarm join token 和你刚才使用的 IP 地址。例如:

plaintext
docker swarm join --token SWMTKN-1-xxxxxxxxxxxx 192.168.2.3:2377

确保记录这条命令,因为你需要在其他计算机上使用它来加入 Swarm 集群。

3. 在其他节点上使用加入命令

在其他希望加入 Swarm 的 Docker 主机上,运行你记录的加入命令。这些节点可以是任何运行 Docker 且可以网络访问管理节点(192.168.2.3)的机器。

完成这些步骤后,你的 Docker Swarm 集群就配置完毕了。你可以通过运行docker node ls命令在管理节点上查看集群的成员和状态。这将帮助你验证是否所有的节点都已成功加入 Swarm。