基本上,我试图通过同一台机器上的 Windows 容器访问 Linux 容器。从我目前所读到的内容来看,最简单的方法是通过主机和注册端口来执行此操作,但我没有成功。
我在 Windows 10 上运行 Docker Desktop
我有一个正在运行的 Linux 容器(Elasticsearch),我可以通过 localhost:9200 和 nat IP 192.168.224.1:9200 在我的 Windows 机器上访问它
我现在正在运行 4.8-windowsservercore-ltsc2019,但我无法从那里访问 192.168.224.1:9200。我可以 ping nat 192.168.224.1,但当我 curl 192.168.223.1:9200 时失败,并出现超时。
Linux 容器是在其自己的桥接网络上与一堆其他服务一起创建的。
我显然缺少了一些东西来允许我的 Windows 容器访问我的 Linux 容器。
答案1
您需要将两个容器添加到同一个网络,然后就可以让一个容器使用容器名称访问另一个容器。您可以重复使用现有的桥接网络。
docker network create myNetwork
docker network connect myNetwork web1
docker network connect myNetwork web2
至于 192.168.224.1,它是 NAT 网关的 IP 地址,而不是容器在其网络中使用的地址。