[英]How to access a docker container running on MacOSX from another host?
[英]How to access a port on the host machine when running docker container on MacOS with --network=host?
我已经设置了几个相互交互的容器。 主应用程序容器在--network = host
上运行,因为它查询在主机网络上公开的不同端口上运行的几个 mySQL 容器。
我正在尝试访问主机上的应用程序,但出现错误:
curl: (7) 无法连接到 0.0.0.0 端口 36081: 连接被拒绝
我正在研究安装在 MacOS 上的 Docker。
我已经阅读了几个问题,这些问题表明 MacOS 上的 docker 在 VM 上运行。 但是从主机访问应用程序的解决方法是什么? 有什么办法可以获取上述VM的IP吗?
您不能在 Mac 上使用--network=host
通过主机端口进行连接,但使用-p
选项绑定到主机端口有效。
https://docs.docker.com/docker-for-mac/networking/#/there-is-no-docker0-bridge-on-osx
我想从 MAC 连接到容器
端口转发适用于本地主机; --publish、-p 或 -P 都有效。 从 Linux 公开的端口被转发到主机。
我们目前的建议是发布一个端口,或者从另一个容器连接。 如果容器位于覆盖网络而不是桥接网络上,即使在 Linux 上,这也是您需要做的,因为这些没有路由。
对于您的用例,
您需要创建一个 docker 网络并将数据库和应用程序容器附加到该网络。 然后容器将能够通过他们的名字相互交谈。 您还可以发布应用程序容器端口,以便您可以从您的主机访问它。
https://docs.docker.com/network/bridge/
您可以使用 docker-compose,而不是手动创建网络、将容器附加到网络等。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.