Я запускаю диспетчер роя докеров в проигрывателе VM Workstation 15 с NAT (VM: Ubuntu 19.10, Host: Windows 10). Я запустил docker swarm init --advertise-addr 223.181.240.48:2377
на своем менеджере vm. Теперь я скопировал токен и использовал его на другой моей виртуальной машине, которая работает на другом узле и в другой сети с NAT. он возвращает следующую ошибку:
Ответ об ошибке от демона: истекло время ожидания до присоединения к узлу. Попытка присоединиться к рою будет продолжаться в фоновом режиме. Используйте команду «docker info», чтобы увидеть текущий статус роя вашего узла.
Затем я попытался найти ошибку в Google и узнал, что проблема может возникнуть из-за брандмауэра, и мне, возможно, придется разблокировать порт. Кроме того, поскольку я использую NAT, мне нужно либо использовать автоматический мост, либо переадресацию порта. Сначала я попытался используя невесту (в настройках виртуальной машины я изменил сеть на мост), но когда я попробовал «мой IP», результаты были одинаковыми как на хост-машине, так и на виртуальной машине (223.181.240.48). Итак, я попробовал переадресацию портов с помощью NAT, я пошел в C:/ProgramData/VMware/vmnetnat.conf и добавил следующую строку
[incomingtcp]
2377:192.168.172.2:2377
192.168.172.2 - это адрес сетевого шлюза моей виртуальной машины. Затем я снова запустил команду docker swarm, скопированную на другую мою виртуальную машину. Теперь я получил следующую ошибку:
Ответ об ошибке от демона: ошибка rpc: код = Недоступно desc = все SubConns находятся в TransientFailure, последняя ошибка подключения: ошибка подключения: desc = «транспорт: ошибка при наборе номера tcp 233.181.240.48:2377: подключение: соединение отклонено»
Затем я попробовал sudo ufw разрешить 2377/tcp разблокировать порт в vm. Затем повторил всю процедуру еще раз. Теперь я снова получаю ошибку тайм-аута. Я что-то пропустил в середине? или что-то не так сделал? И в чем разница между ip, который я получаю через поиск Google «мой ip», и ipv4, который я получаю в настройках проводного соединения (dhcp включен).