我正在运行Docker for Mac。我跑的时候
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
我不能。
是否可以同时使用" - 网络主机"并发布一个端口,以便可以从我的Mac上访问它?
或者,我可以通过HyperKit VM的IP从我的Mac访问Nginx吗?
答案 0 :(得分:2)
没有 --network
标志,默认情况下,容器会添加到bridge
网络;这会在Docker 网桥(通常是veth接口)上创建网络堆栈。
如果指定--network host
,则容器会添加到Docker 主机网络堆栈中。请注意,容器将共享主机的网络命名空间,从而影响其所有安全隐患。
这意味着您不需要添加-p 80:80,而是运行...
docker run -d --rm --name nginx --network host nginx:1.10.3
以下链接将有助于回答HyperKit问题和当前限制:
https://docs.docker.com/docker-for-mac/networking/
macOS上没有docker0桥接
由于在Docker for Mac中实现网络的方式,您 在macOS中看不到docker0接口。实际上这个界面 在HyperKit中。