无法在Docker容器之间进行通信

我们运行两个docker集装箱,每个集装箱都有networking作为主机,我们可以和外部的集装箱进行通信,但是我们无法在集装箱之间进行通信。

有没有一种方法来configurationdockernetworking,使容器可以在自己之间以及外部世界之间进行通信。

当你configuration一个Docker容器来使用“主机”networking时,你完全删除了dockernetworking堆栈,包括容器到容器networking和内置的dns发现。 您在容器networking中看到的所有内容都与您在主机上看到的内容完全相同。 因此,在本地主机上监听的另一个容器在主机上可以从127.0.0.1上看到,也可以从其他容器上看到。

在大多数情况下,这不是推荐Docker容器的推荐方法。 您通常为一组容器创builddockernetworking,在该dockernetworking上启动这些容器,然后通过容器名称引用其他容器。

find了我的问题的解决scheme,我能够使用docker0networking(默认networking)容器之间进行通信,并映射到外部世界容器的select端口我正在使用-p映射从容器端口映射到主机端口。

因为@BMitchbuild议一个单独的networking来连接只需要容器通信的容器比使用docker0好,因为没有任何显式networkingconfiguration的所有容器都连接到docker0。