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

Mac Docker:主机网络和端口发布,docker,docker-for-mac,Docker,Docker For Mac,我在为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 我不能 是否可以同时使用“-network host”和发布端口,以便可以从我的Mac访问该端口 或者,我可以通过HyperKit VM的IP从我的

我在为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
我不能

是否可以同时使用“-network host”和发布端口,以便可以从我的Mac访问该端口


或者,我可以通过HyperKit VM的IP从我的Mac访问Nginx吗?

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

如果指定
--networkhost
,则容器将添加到Docker主机网络堆栈中。注意:容器将共享主机的网络名称空间,从而共享其所有安全含义

这意味着您不需要添加-p80:80,而是运行…
docker run-d--rm--name nginx--network host nginx:1.10.3

并访问上的容器

以下链接将帮助回答HyperKit问题和当前限制:

macOS上没有docker0桥接器

由于Docker for Mac中实现网络的方式,您可以 在macOS中看不到docker0接口。这个接口实际上是 在HyperKit中


我说的对吗?使用这两种方法中的任何一种,都无法让局域网上的其他系统访问Mac docker容器?这是使用Mac电脑的一个巨大缺点。我确实看到了上面提到的“这个接口实际上在HyperKit中。”但是如果文档作者认为这个链接不值得,它建议现在就不要麻烦去看它(事实上,一些搜索发现了很多“在OSX上还没有准备好”)。“我所说的这两种方法中的任何一种都无法让局域网上的其他系统访问Mac docker容器,对吗?这是使用Mac电脑的一个巨大缺点。”——这也是我想知道的。。。