一千萬個為什麽

搜索

加入群集節點時的Docker守護進程錯誤 - 找不到本地IP地址 - 未知端口



考慮以下設置:

同一網絡中的三臺主機:

  • 主機A - SLES
  • 主機B - Ubuntu
  • 主機C - Ubuntu

然後,以下工作:

  • 初始化群組
  • 加入B群,讓B成為經理

但以下情況不起作用:

  • 加入群組C,作為工作人員發放來自A
  • 的令牌
  • 加入群組C,作為工作人員使用從B發出的令牌

在這兩種情況下,我們都得到相同的錯誤

Error response from daemon: could not find local IP address: 
dial udp: address udp/2377​: unknown port

老實說,我甚至不知道如何解釋這個消息。

有任何想法嗎?..

UPD。 nmap對端口2377,4789,7946的結果(菲利普在下面的評論中的提示) - 不知道它們有什麽好處,但現在很明顯,主機C出了問題。

Host A (Primary manager)

PORT     STATE  SERVICE
2377/tcp open   unknown
4789/tcp closed unknown
7946/tcp open   unknown

Host B (Secondary manager)

PORT     STATE  SERVICE
2377/tcp open   unknown
4789/tcp closed unknown
7946/tcp open   unknown

Host C (should become a worker)

PORT     STATE  SERVICE
2377/tcp closed unknown
4789/tcp closed unknown
7946/tcp closed unknown

Host D (successfully added as a worker)

PORT     STATE  SERVICE
2377/tcp closed unknown
4789/tcp closed unknown
7946/tcp open   unknown

最後,與主持人B有實際的問題。

  • swarm init => OK; port 2377 is open
  • swarm leave => port is closed again
  • swarm join => error "port not found"

轉載註明原文: 加入群集節點時的Docker守護進程錯誤 - 找不到本地IP地址 - 未知端口

一共有 1 個回答:

你能否在所有主機之間嘗試上面的命令?

內部主持人A:

nc -zv HOST_B_IP_ADDRESS 2377,4789,7946
nc -zv HOST_C_IP_ADDRESS 2377,4789,7946

內部主持人B:

nc -zv HOST_A_IP_ADDRESS 2377,4789,7946
nc -zv HOST_C_IP_ADDRESS 2377,4789,7946

內部主持人C:

nc -zv HOST_A_IP_ADDRESS 2377,4789,7946
nc -zv HOST_B_IP_ADDRESS 2377,4789,7946

正如 https: //docs.docker.com/engine/swarm/swarm-tutorial/#open-protocols-and-ports-between-the-hosts ,一些端口必須在主機之間可用,這樣Docker Swarm才能正常工作。

報告的錯誤聽起來像一個端口相關的問題。 這些主機中的其中一臺可能還有其他應用程序已經在使用Docker所需的其中一個端口?也許是防火墻配置?