关于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查看运行着的容器)。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 分享4款.NET开源、免费、实用的商城系统
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
· 记一次.NET内存居高不下排查解决与启示