У меня есть оверлейная сеть docker swarm с 2 узлами, моим локальным хостом и виртуальной машиной на моем ПК.
docker network list
вывод:
NETWORK ID NAME DRIVER SCOPE
26ca272f0118 bridge bridge local
48f94e0d47b8 docker_gwbridge bridge local
6ffc94e5474c host host local
o4ydpduwyfc9 ingress overlay swarm
3a177ebcdaae none null local
a3807498a383 source_default bridge local
igtysi5waw6s test-overlay-network overlay swarm
docker node list
вывод:
ID HOSTNAME STATUS AVAILABILITY MANAGE STATUS ENGINE VERSION
qex25m1yhjm28ojb18yrd3my3 * node1 Ready Active Leader 19.03.13
64lsy02tvk2h6gqjdhejwvcvp node2 Ready Active Reachable 19.03.13
Выходы одинаковы для обоих хостов. У меня есть 2 контейнера, работающие на локальном хосте, и 2 контейнера, работающие на виртуальной машине. Я пытаюсь пропинговать одного из них от другого.
Команда netstat -tuplen
показывает мне, что следующие порты, необходимые для докера, работают на обоих хостах.
Proto Recv-Q Send-Q Local Address Foreign Address State User Inode PID/Program name
tcp6 0 0 :::2377 :::* LISTEN 0 616456 -
tcp6 0 0 :::7946 :::* LISTEN 0 612282 -
udp 0 0 0.0.0.0:4789 0.0.0.0:* 0 613172 -
udp6 0 0 :::7946 :::* 0 612283
Итак, я запускаю ifconfig
во всех контейнерах и получаю их IP-адреса, а затем пытаюсь пинговать друг друга. Список IP-адресов на интерфейсе eth1:
- 10.0.3.102 - ›localhost
- 10.0.3.105 - ›localhost
- 10.0.3.107 -> VM
- 10.0.3.110 -> VM
Я могу пинговать виртуальную машину с локального хоста, а также контейнеры, работающие на том же хосте. Но не могу пинговать контейнеры с разных хостов. В чем может быть причина?