У меня есть несколько хостов, на которых работает Docker, я использую Consul в качестве хранилища ключей. Я могу создавать сети наложения, контейнеры могут видеть имя хоста и IP-адреса друг друга,/etc/hosts прекрасно обновляются, когда контейнеры создаются/уничтожаются. Тем не менее, контейнеры, которые находятся на разных хостах, не могут фактически соединяться друг с другом (те, которые находятся на одном и том же хосте).Контейнеры докеров не могут подключаться через оверлейные сети
Я держал расследование журналов и журналов демона Docker содержат эти:
[INFO] serf: EventMemberJoin: vagrant-ubuntu-trusty-64 192.168.57.103
[ERR] memberlist: Conflicting address for vagrant-ubuntu-trusty-64. Mine: 192.168.57.103:7946 Theirs: 192.168.57.102:7946
[ERR] serf: Node name conflicts with another node at 192.168.57.102:7946. Names must be unique! (Resolution enabled: true)
Если демоны Docker идентифицируют себя как-то? Похоже, что Serf запутан, потому что каждый демон просто использует имя хоста в качестве идентификатора.
Не могли бы вы показать, где я могу указать имена хостов. –
Вы должны установить свойство hostname при запуске контейнера ('-h' или' --hostname'). –
Спасибо человеку. Вы спасли день. –