如何让 docker 容器通过名字看到对方?

Hri*_*lev 4 docker

我有一个 mongo 实例在一个名为的容器中运行,该容器mongo1已公开端口 27017。我可以从主机正常连接。

我有另一个容器正在运行一个想要连接到 mongo 实例的应用程序。

如何连接 2 个容器,以便将主机名mongo1公开给另一个容器并且它可以连接到mongo1:27017

Hri*_*lev 7

发生的事情是默认的 docker 网络不允许name >> DNS映射。

默认桥接网络上的容器只能通过 IP 地址相互访问,除非您使用 --link 选项,这被认为是遗留的。在用户定义的桥接网络上,容器可以通过名称或别名相互解析。

所以我创建了一个新网络:

docker network create -d bridge br0
Run Code Online (Sandbox Code Playgroud)

然后将容器添加到该网络:

docker network connect br0 mongo1
docker network connect br0 wiki
Run Code Online (Sandbox Code Playgroud)

现在他们可以通过他们的名字看到对方。