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。
我试图从我的服务器是 运行 我的 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。