问题描述
我是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该系统
-
现在,我从VM1中创建了如下群:
sudo docker swarm init --advertise-addr 192.168.0.106:2377 --listen-addr 192.168.0.106:2377
-
然后我将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
-
之后,我检查了群体详细信息:
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
-
然后按如下方式从VM1部署Nginx服务:
sudo docker service create -d --name myweb1 --mode global -p9090:80 Nginx:1.19.3
-
服务状态:
sudo docker service ls
ID NAME MODE REPLICAS IMAGE PORTS
e1o9cbm3e0t myweb1 global 2/2 Nginx:1.19.3 *:9090->80/tcp
- 服务详细信息:
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
-
现在,我可以使用URL:
192.168.0.106:9090
和localhost:9090
从VM1访问Nginx。但是我无法使用URL:192.168.0.105:9090
和localhost:9090
从VM2访问Nginx。我的理解是Nginx在两个VM上都可以运行,并且可以在两个VM上访问。
在两个VM1中, -
我都能看到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和路由器在内的整个系统以解决此问题。