在SWARM中,无法从辅助节点访问服务

问题描述

我是docker世界的新手。在学习期间,我创建了以下设置:

1。虚拟机-在VMware工作站15 Player上运行的Ubuntu 20。 IP-192.168.0.106。我可以从此VM(例如VM1)访问互联网,并可以从我的物理系统OS(Windows 10)ping该系统

2。虚拟机-在VMware工作站15 Player上运行的Ubuntu 20。 IP-192.168.0.105。我可以从此VM(例如VM2)访问互联网,并可以从我的物理系统OS(Windows 10)ping该系统

  1. 现在,我从VM1中创建了如下群:

    sudo docker swarm init --advertise-addr 192.168.0.106:2377 --listen-addr 192.168.0.106:2377

  2. 然后我将VM2添加到该群集中,如下所示:

    sudo docker swarm join --token SWMTKN-1-4i56y47l6o4aycrmg7un21oegmfmwnllcsxaf4zxd05ggqg0zh-9qp67bejerq9dhl3f0suaauvl 192.168.0.106:2377 --advertise-addr 192.168.0.105:2377 --listen-addr 192.168.0.105:2377

  3. 之后,我检查了群体详细信息:

sudo docker node ls

ID HOSTNAME STATUS AVAILABILITY MANAGER STATUS ENGINE VERSION

ogka7rdjohri9elcbjjcpdlbp * ubuntumaster Ready Active leader 19.03.12

7qu9kiprcz7oowfk2ol31k1mx ubuntuslave Ready Active 19.03.13

  1. 然后按如下方式从VM1部署Nginx服务:

    sudo docker service create -d --name myweb1 --mode global -p9090:80 Nginx:1.19.3

  2. 服务状态:

    sudo docker service ls

ID NAME MODE REPLICAS IMAGE PORTS

e1o9cbm3e0t myweb1 global 2/2 Nginx:1.19.3 *:9090->80/tcp

  1. 服务详细信息:

sudo docker service ps zf6kfw7aqhag

ID NAME IMAGE NODE DESIRED STATE CURRENT STATE ERROR PORTS

egd8oliwngf3 myweb1.ogka7rdjohri9elcbjjcpdlbp Nginx:1.19.3 ubuntumaster Running Running 14 minutes ago

1o4q8dlt94jj myweb1.7qu9kiprcz7oowfk2ol31k1mx Nginx:1.19.3 ubuntuslave Running Running 14 minutes ago

  1. 现在,我可以使用URL:192.168.0.106:9090localhost:9090从VM1访问Nginx。但是我无法使用URL:192.168.0.105:9090localhost:9090从VM2访问Nginx。我的理解是Nginx在两个VM上都可以运行,并且可以在两个VM上访问。

  2. 在两个VM1中,
  3. 我都能看到Nginx容器正在运行。

VM1:

sudo docker container ls

CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES

7a4e13e49dfd Nginx:1.19.3 "/docker-entrypoint.…" 16 minutes ago Up 15 minutes 80/tcp myweb1.ogka7rdjohri9elcbjjcpdlbp.egd8oliwngf35wwpjcieew323

VM2:

sudo docker container ls

CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES

999062110f0 Nginx:1.19.3 "/docker-entrypoint.…" 16 minutes ago Up 16 minutes 80/tcp myweb1.7qu9kiprcz7oowfk2ol31k1mx.1o4q8dlt94jj4uufysnhsbamd

如果我有任何错误,请指导我。

TIA,

Deb

解决方法

问题解决了! ip冲突是个问题。重新启动包括VM和路由器在内的整个系统以解决此问题。