Mac 下Docker无法访问外网与宿主机(解决办法和原因)
产生原因
在找到原因之前,需要先了解,docker的网络配置
docker的网络配置
docker的网络配置分为四种, host,overlay,macvlan,bridge
-
host模式
与宿主机共享网络,也就是在网络这块不会与宿主机隔离,而是共享宿主机的网络配置,并且容器不会分配自己的ip地址
需要注意的是,因为容器是与宿主机共享网络,并且容器不存在自己的ip, 端口映射不生效,
-p
,--publish
,-P
,和--publish-all
都将被忽略,并产生一个警告WARNING: Published ports are discarded when using host network mode
使用方法:
在创建容器时添加如下配置
--net host
-
overlay模式
这个模式,楼主目前还没理解透,就不在这说,避免误导。我的理解是类似一个分布式集群网络。
有兴趣的同学可以研究: https://docs.docker.com/netwo