似乎 docker 服务发现仅适用于用户定义的网络,而不适用于默认网桥 (docker0),但我在文档中没有找到任何内容。
docker run --rm -d --name c1 alpine sleep 2hdocker run --rm -d --name c2 alpine sleep 2hdocker exec -ti c1 ping c2
它给了我 ping: bad address 'c2'
但是如果我创建一个自定义桥接网络一切正常:docker network create u-bridgedocker run --rm -d --name u1 --net u-bridge alpine sleep 2hdocker run --rm -d --name u2 --net u-bridge alpine sleep 2hdocker exec -ti u1 ping u2
它给了我:PING u2 (172.18.0.3): 56 data bytes (...)
默认桥接网络不应该有服务发现吗?

最佳答案

默认网桥上的容器需要明确为 linked ,这被认为是遗留/弃用的行为。



正如您所演示的那样,应改为使用用户定义的网络。

关于Docker 服务发现不适用于默认网桥,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/46781444/

10-16 17:31