关于Mac宿主机无法ping通Docker容器的问题

问题:

  在 Mac 上启动 docker 容器以后,宿主机 ping 不通容器的ip。

      

原因:

 

Mac和Docker是物理隔离的,详见这篇博客(推荐!):https://www.haoyizebo.com/posts/fd0b9bd8/

 

解决办法(上篇博客中的方法四):

1.首先 Mac 端通过 brew 安装 docker-connector

brew install wenjunxiao/brew/docker-connector

2.手动修改 /usr/local/etc/docker-connector.conf 文件中的路由(也可使用博客中的命令自动配置):

          

 

 注:第一步安装后,查看的时候就有,因为需要用到 172.18网段,所以将这个取消注释就行。

 (修改:由于一开始设置的是 172.18.0.0/16,导致公司内网一些网站访问不了,一查才发现是 172.18.x.x 都被代理,排查了一天才发现问题出在这儿,将配置重新修改为 172.18.0.0/29 ,只代理 172.18.0.1 ~ 172.18.0.7 这几个地址,因为我只用到了 172.18.0.2、172.18.0.3、172.18.0.4 这3个ip,所以可以这样设置,要结合自己的实际使用来设置。)

       

 

3.配置完成,直接启动服务(需要 sudo,路由配置启动之后仍然可以修改,并且无需重启服务立即生效),需要输入本机密码

sudo brew services start docker-connector

4.使用一下命令在docker 端运行 wenjunxiao/mac-docker-connector

docker run -it -d --restart always --net host --cap-add NET_ADMIN --name connector wenjunxiao/mac-docker-connector

 

5.安装完成,重试ping 操作

      

 

 由上图可见,ping通了,如果 ping不通,重启一下电脑再试一下(前提是 ping的目标地址所在的容器,已经启动了,可以使用 docker ps查看运行着的容器)。

 

posted @ 2022-01-21 16:28  星海寻梦233  阅读(6439)  评论(2编辑  收藏  举报