Это ошибка соединения, с которой вы столкнулись. Скорее всего, другая машина не может подключиться к диспетчеру, поскольку она не находится в той же сети. Решение: чтобы исправить это, две машины должны иметь возможность общаться друг с другом. Если машины находятся в облаке, например Azure или AWS, создайте виртуальную сеть и добавьте в нее две машины.
Ошибка отладки соединения:
Чтобы убедиться, что машины не могут общаться друг с другом, попробуйте пропинговать диспетчер с другой машины. Скорее всего, он потерпит неудачу в вашей текущей установке
$ ping 192.168.XXX.XXX
Если это удастся, проверьте, открыт ли порт 2377 и прослушивает ли менеджер. Запустите ниже с другой машины:
$ nc -vz 192.168.XXX.XXX 2377
Еще один инструмент, который может помочь при отладке, - запустить netstat
на менеджере:
$ netstat -tuplen
(Not all processes could be identified, non-owned process info
will not be shown, you would have to be root to see it all.)
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address Foreign Address State User Inode PID/Program name
tcp 0 0 127.0.0.53:53 0.0.0.0:* LISTEN 101 51772227 -
tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 0 25361290 -
tcp6 0 0 :::2377 :::* LISTEN 0 1423965 -
tcp6 0 0 :::7946 :::* LISTEN 0 1423980 -
Убедитесь, что вы видите :::2377
и :::7946
и что их состояние установлено на LISTEN
, так как эти порты требуются Docker Swarm [ 1 ]