关于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 @   星海寻梦233  阅读(6965)  评论(2编辑  收藏  举报
相关博文:
阅读排行:
· 分享4款.NET开源、免费、实用的商城系统
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
· 记一次.NET内存居高不下排查解决与启示
点击右上角即可分享
微信分享提示