Docker 容器无法向 Mac 上的主机公开端口

Docker containers having trouble exposing ports to host on Mac

我试图从我的服务器是 运行 我的 Mac 主机的 Docker 容器公开一个端口,以便主机上的浏览器可以访问它。

我可以使用 run -it -p <port>:<port> ... 命令来公开一个端口。这当然适用于 Linux 主机(我之前一直在这样做,没有问题)。但从未在我的 Mac 上工作过。通过 "never worked",我的意思是即使 docker ps 命令确实显示了像这样 0.0.0.0:32769->8080/tcp 的映射,但容器端的任何端口都不会暴露。但是什么也联系不上。

所以我想知道是否需要进行任何额外配置才能实现它。我使用的是 macOS Sierra 10.12 和 Docker 版本 1.11.1,build 5604cbe。

如有任何意见,我们将不胜感激!谢谢!

如果您使用 Docker 工具箱,您需要确保获得正确的 Docker 机器 IP 地址。

docker run -d -p 8080:80 --name webserver nginx

使用 docker-machine ip 找到正确的 IP。你可能会得到 192.168.99.100.

然后您可以在 http://192.168.99.100:8080/ 打开网络浏览器查看它,无需代理。

如果您将 Docker 用于 Mac,请阅读此 docs