我在 docker 论坛上问过类似的问题...
https://forums.docker.com/t/access-service-on-host-machine-from-docker-container/45117
...但是我没有任何喜悦,这应该不难。但是,当我用谷歌搜索时,似乎很难,这对我来说似乎是疯狂的。因此,我将以其他方式提出问题...
正在运行docker 的主机容器的容器
主机B 运行旧服务,暴露在端口1234
容器A 可以访问主机上的旧服务主机B 端口1234 上的B (没有问题)
现在,我决定在主机B 上运行容器A 。疯狂的事情是容器A 不能再访问主机B 提供的旧服务,无论我如何尝试!
必须有一种可靠的方法吗?
容器A 可以在主机A或B主机上运行时,可以ping通主机B ,但是当容器A尝试连接到旧版服务时,我总是会收到错误消息
No route to host
没有防火墙(防火墙已被禁用),并且dns在容器A中可以正常工作,并且无论主机B在哪个主机上运行,都可以将主机B解析为正确的IP。
最佳答案
认为在同一主机上运行时必须将HOST传递给容器。例如,主机B上具有“旧版”数据库的Wordpress。
docker run --name wordpress --add-host=db:172.17.0.74
现在,您可以将Wordpress指向数据库主机:db
关于docker - 从Docker容器访问主机上的服务,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48458862/