在具有2个节点的docker swarm模式中,如果我这样做:
node1master# docker service create --name registry --publish 5000:5000 registry:2
然后我无法访问注册表:
node1master# telnet localhost 5000
Trying ::1...
Trying 127.0.0.1...
telnet: Unable to connect to remote host: Connection refused
因为注册表现在正在node2worker
上运行:
node2worker# telnet localhost 5000
Trying ::1...
Connected to localhost.
Escape character is '^]'.
(当然可以安排在node1master
,但在这种情况下它不是
我不明白为什么注册表未连接到ingress
网络。
我认为有意义的是连接到ingress
网络的注册表,只要docker本身通过入口网络路由localhost:5000
的请求。
如何运行注册表,使其在所有节点上都可用localhost:5000
(我猜是使用入口网络),或者作为一个适用于docker守护程序的固定DNS名称。