Сеть Docker Swarm Overlay - не удается проверить связь с другими хостами

У меня есть оверлейная сеть 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

Я могу пинговать виртуальную машину с локального хоста, а также контейнеры, работающие на том же хосте. Но не могу пинговать контейнеры с разных хостов. В чем может быть причина?


person JollyRoger    schedule 15.10.2020    source источник
comment
Есть много вопросов, похожих на ваш, но связанный дубликат - один из немногих, где OP вернулся, чтобы принять ответ. См. Также stackoverflow.com/q/43933143/596285, stackoverflow.com/q/60456280/596285, stackoverflow.com/q/55133535/596285 < / а>   -  person BMitch    schedule 15.10.2020