Docker WSL2 上的容器未添加到桥接网络

Docker containers on WSL2 don't get added to the bridge network

问题:我的容器(所有这些都是网络服务器)无法通过容器名称相互通信(DNS 查找失败)。我可以通过创建一个新网络并将每个创建的容器添加到该网络来让它们进行通信,但我宁愿不必手动执行此操作。

详细信息:根据the docs,所有新容器都应自动添加到bridge网络中,并且能够通过container_name:port。但是,在 WSL2 上,即使存在 bridge 网络,容器似乎也没有添加到其中,因为它们无法通过名称相互通信。

我尝试过的解决方法

有没有办法让新容器自动加入桥接网络(或我自己的网络)而不使用docker-compose

docker run --network="bridge" <mycontainer>

你可以用

检查里面到底发生了什么
docker inspect <containerID>

我会使用这些测试选项来隔离问题

1- 检查桥接网络本身在 WSL 系统中是否正常工作,因为 WSL 是新的有一些问题。 2- 检查容器,如果是,则表示 docker 正在正确创建容器 3-尝试解析IP以检查它是否正在解析,如果是那么它可能纯粹是DNS问题 4- 根据第 3 点将检查 DNS pod 是否正常运行。

如果可能,您能否分享确切的错误和 DNS pod 状态。

原来我的 docker 容器被添加到默认桥接网络中。但是,它们无法相互通信 is an intended design. 默认 bridge 网络上的容器无法通过主机名相互通信;他们必须使用 IP 进行通信。