В настоящее время я пытаюсь выполнить учебное пособие по началу работы с Docker, часть 4 (https://docs.docker.com/get-started/part4/). Я развертываю службу на рое из 2 компьютеров (один менеджер - локальный сервер, один рабочий - машина виртуальной коробки созданас командой "docker-machine"), с 5 репликами, следующим образом:
docker service create --mode=replicated --publish published=4000,target=80 --replicas=5 --name=pyserv dcormar/get-started:part2
Служба развернута на двух машинах:
docker service ps pyserv
ID NAME IMAGE NODE DESIRED STATE CURRENT STATE ERROR PORTS
m3txdzj96t6z pyserv.1 dcormar/get-started:part2 machine1 Running Running 15 minutes ago
dtxozv8m7yfa pyserv.2 dcormar/get-started:part2 dcormar-1 Running Running 15 minutes ago
1m38f2hef4wf pyserv.3 dcormar/get-started:part2 machine1 Running Running 15 minutes ago
dcnimcrlh1pb pyserv.4 dcormar/get-started:part2 dcormar-1 Running Running 15 minutes ago
4t78torxwlns pyserv.5 dcormar/get-started:part2 machine1 Running Running 15 minutes ago
И запросы, независимо откакой сервер я им отправляю, обслуживаются только тогда, когда они перенаправляются в контейнер, размещенный менеджером (локальный сервер):
user@dcormar-1:~$ curl http://192.168.99.1:4000
<h3>Hello World!</h3><b>Hostname:</b> b57821504adb<br/><b>Visits:</b> <i>cannot connect to Redis, counter disabled</i>user@dcormar-1:~$ curl http://192.168.99.1:4000
<h3>Hello World!</h3><b>Hostname:</b> b7654fd27e39<br/><b>Visits:</b> <i>cannot connect to Redis, counter disabled</i>user@dcormar-1:~$ curl http://192.168.99.1:4000
curl: (7) Failed to connect to 192.168.99.1 port 4000: Connection refused
user@dcormar-1:~$ curl http://192.168.99.1:4000
curl: (7) Failed to connect to 192.168.99.1 port 4000: Connection refused
user@dcormar-1:~$ curl http://192.168.99.1:4000
curl: (7) Failed to connect to 192.168.99.1 port 4000: Connection refused
user@dcormar-1:~$ curl http://192.168.99.1:4000
<h3>Hello World!</h3><b>Hostname:</b> b57821504adb<br/><b>Visits:</b> <i>cannot connect to Redis, counter disabled</i>user@dcormar-1:~$ curl http://192.168.99.1:4000
<h3>Hello World!</h3><b>Hostname:</b> b7654fd27e39<br/><b>Visits:</b> <i>cannot connect to Redis, counter disabled</i>user@dcormar-1:~$ curl http://192.168.99.1:4000
curl: (7) Failed to connect to 192.168.99.1 port 4000: Connection refused
При выполнении команды "curl" для 192.168.99.100 все запросы не обслуживаются.
Похоже, что порты открыты на обеих машинах, поэтому у меня заканчиваются идеи для решения этой проблемы.
user@dcormar-1:~$ sudo nmap -sU -p 7946,4789 192.168.99.100
Starting Nmap 7.60 ( https://nmap.org ) at 2018-11-26 13:49 CET
Nmap scan report for 192.168.99.100
Host is up (0.00017s latency).
PORT STATE SERVICE
4789/udp open|filtered unknown
7946/udp open|filtered unknown
MAC Address: 08:00:27:0A:0C:D9 (Oracle VirtualBox virtual NIC)
Nmap done: 1 IP address (1 host up) scanned in 14.58 seconds
user@dcormar-1:~$ sudo nmap -sU -p 7946,4789 192.168.99.1
Starting Nmap 7.60 ( https://nmap.org ) at 2018-11-26 13:49 CET
Nmap scan report for dcormar-1 (192.168.99.1)
Host is up.
PORT STATE SERVICE
4789/udp open|filtered unknown
7946/udp open|filtered unknown
Nmap done: 1 IP address (1 host up) scanned in 3.35 seconds
user@dcormar-1:~$ sudo nmap -sT -p 2376,7946,80,2377,4000 192.168.99.100
Starting Nmap 7.60 ( https://nmap.org ) at 2018-11-26 13:50 CET
Nmap scan report for 192.168.99.100
Host is up (0.00058s latency).
PORT STATE SERVICE
80/tcp closed http
2376/tcp open docker
2377/tcp closed swarm
4000/tcp closed remoteanything
7946/tcp open unknown
MAC Address: 08:00:27:0A:0C:D9 (Oracle VirtualBox virtual NIC)
Nmap done: 1 IP address (1 host up) scanned in 13.31 seconds
user@dcormar-1:~$ sudo nmap -sT -p 2376,7946,80,2377,4000 192.168.99.1
Starting Nmap 7.60 ( https://nmap.org ) at 2018-11-26 13:50 CET
Nmap scan report for dcormar-1 (192.168.99.1)
Host is up (0.00045s latency).
PORT STATE SERVICE
80/tcp closed http
2376/tcp closed docker
2377/tcp open swarm
4000/tcp closed remoteanything
7946/tcp open unknown
Nmap done: 1 IP address (1 host up) scanned in 0.22 seconds
Версия докера: 18.09
Примечание: если я попытаюсь, как в учебном пособии, создать рой с 2-мя машинами, обе из которых являются «виртуальными машинами», то ни один из запросов не будет обработан.