Docker for Mac:主机networking和端口发布
我正在运行Mac的Docker。 当我跑步
docker run -d --rm --name nginx -p 80:80 nginx:1.10.3
我可以在Mac上的80端口上访问Nginx。 当我跑步
docker run -d --rm --name nginx --network host -p 80:80 nginx:1.10.3
我不能。
是否有可能使用“ – networking主机”和发布一个端口,以便它可以从我的Mac到达?
或者,我可以通过HyperKit虚拟机的IP从我的Mac访问Nginx吗?
如果没有 --network
标志,容器默认添加到bridge
networking中; 它在Docker 桥 (通常是veth接口)上创build一个networking堆栈。
如果您指定--network host
那么容器将被添加到Docker 主机networking堆栈中。 请注意容器将共享主机的networking名称空间,从而所有的安全影响。
这意味着你不需要添加-p 80:80,而是运行…
docker run -d --rm --name nginx --network host nginx:1.10.3
并访问http://127.0.0.1上的容器
以下链接将有助于回答HyperKit问题和当前限制:
https://docs.docker.com/docker-for-mac/networking/
macOS上没有docker0网桥
由于在Docker for Mac中实现联网的方式,在macOS中看不到docker0接口。 这个接口实际上是在HyperKit中。