Docker for Mac:主机网络和端口发布

时间:2017-03-25 20:53:01

标签: docker docker-for-mac

我正在运行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吗?

1 个答案:

答案 0 :(得分:2)

没有 --network标志,默认情况下,容器会添加到bridge网络;这会在Docker 网桥(通常是veth接口)上创建网络堆栈。

如果指定--network host,则容器会添加到Docker 主机网络堆栈中。请注意,容器将共享主机的网络命名空间,从而影响其所有安全隐患。

这意味着您不需要添加-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中。