首先,我没有太多的网络经验或知识,尤其是关于docker容器的知识,所以请保持冷静。 我正在使用Windows的docker运行一台主机,并且需要启动linux容器。这些linux容器通过环境变量传递,容器中的服务需要连接到该服务器的IP地址。我怀疑这部分工作正常,因为服务器注册客户端已与IP 172.17.0.2连接,并在容器中查找ifconfig确认这一点,因为它也显示IP 172.17.0.2。 我怀疑此IP是由某些Docker网络隔离的东西生成的,因为无法从外部访问。
现在是问题所在。 在linux容器中运行的服务可能会向服务器发送有关其存在以及容器本地IP的通知。当服务器尝试向已注册的客户端发送命令时,它将以find
响应找不到主机172.17.0.2
因此,我需要docker容器使用Windows主机的真实IP。
本能地,我转向传递--network host
作为docker run的参数,但是Windows的docker似乎不支持此参数。
通过--ip
传递主机的IP也不起作用,因为内部容器的IP保持在172.17.0.2。
这些帖子似乎与How to connect to docker host from container on Windows 10 (Docker for Windows)相关
Container can not resolve docker.for.win.localhost
,但--dns host.docker.internal or docker.for.win.localhost
导致
我可能会误会如何使用它们?关于解决问题的其他想法?“-dns”标志的无效参数“ host.docker.internal”: host.docker.internal不是一个IP地址