从docker容器访问主机上的服务

从docker容器访问主机上的服务,docker,Docker,我在docker论坛上问了一个类似的问题 …但我没有得到任何快乐,这应该不难。然而,当我在谷歌上搜索时,它似乎很难,这对我来说似乎很疯狂。所以我会用另一种方式问这个问题 主机A运行docker容器A 主机B运行旧版服务在端口1234上公开 容器A可以访问主机B上的传统服务端口1234(没有问题) 现在我决定在主机B上运行容器A。疯狂的事情是,容器A无法再访问主机B提供的传统服务,无论我如何尝试 一定有办法做到这一点吗 在主机A或B上运行时,容器A可以ping主机B正常,但当容器A尝试连接到旧版

我在docker论坛上问了一个类似的问题

…但我没有得到任何快乐,这应该不难。然而,当我在谷歌上搜索时,它似乎很难,这对我来说似乎很疯狂。所以我会用另一种方式问这个问题

主机A运行docker容器A

主机B运行旧版服务端口1234上公开

容器A可以访问主机B上的传统服务端口1234(没有问题)

现在我决定在主机B上运行容器A。疯狂的事情是,容器A无法再访问主机B提供的传统服务,无论我如何尝试

一定有办法做到这一点吗

主机A或B上运行时,容器A可以ping主机B正常,但当容器A尝试连接到旧版服务时,我总是会收到错误消息

没有到主机的路由


没有防火墙(它们已被禁用),dns在容器A中工作正常,并将主机B解析为正确的IP,无论它在哪个主机上运行。

认为在同一主机上运行时必须将主机传递给容器。例如,主机B上带有“遗留”DB的Wordpress

docker run --name wordpress --add-host=db:172.17.0.74 

现在,您可以将Wordpress指向DB主机:DB

当容器A在主机B上运行时,您可以从主机A在端口1234主机B上执行
curl
吗?我认为您应该尝试匹配您尝试连接的最终IP地址,因为有时192.168.10.1与127.0.0.1不一样BENOIT-是的,我可以-主机B上的服务是监听所有接口。我可以在外部使用192.168.10.X,或者127.0.0.1(如果在主机B上)不起作用,同样的问题。另外,我现在必须引用主机名“db”,而不是众所周知的主机名。我还必须计算出作为主机的容器中接口的IP。我仍然得到“没有去东道主的路”。现在,我已经用网络模式“host”启动了容器,这是一个bodge,但它可以工作。