Mac宿主机无法ping通docker容器

概要

本人使用mac配置docker,使用springboot + jedis依赖想连接docker容器里的redis
集群,遇到报错"Exception in thread “main” redis.clients.jedis.exceptions.JedisConnectionException: Failed to connect to any host resolved for DNS name."请添加图片描述
后经搜索相关问题发现可以从ip下手 结果被告知mac里查看不了docker0桥段对应的网络 因为根本就没显示这个,同时 docker 指定 --net=host命令仅在Linux环境有效 血亏。
接下来需要使用docker- connection进行网桥添加 ,连通宿主机和容器。

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

这里在网上找到一个大佬的git里的包

brew install wenjunxiao/brew/docker-connector

安装好后启动docker-connection

brew install docker-connector

这里如果报错有关brew命令的问题可以使用以下命令修复 本人报错了修复成功!
修复起来有点慢 盲猜是恢复出厂设置hhh

brew update-reset
brew update
brew upgrade

2.启动docker-connector服务,并将其设置为开启自启。当我们将该服务设置为开机自启后,其会生成一个相应的plist文件

sudo brew services start docker-connector

将指定服务设置为开机自启,并运行该服务

sudo brew services list

查看当前用户的所有服务
请添加图片描述

成功之后上面这条命令会显示 docker-connection已经在自启动list里了

接下来根据这个.plist文件找到docker-connection的配置文件以及其路径
我们要在配置文件里添加容器的网络 进行连通操作。
请添加图片描述

查看.plist文件我们可以发现配置文件的路径,接下来vim 它 进行修改。

3.添加对容器桥接网络的路由

现在,我们只需添加对容器所在桥接网络的路由即可。这里我的是Docker的3主3从Redis集群。
使用下述命令可以得到该redis集群的桥接网络的子网为 172.18.0.0/16请添加图片描述
在docker-connector服务的配置文件添加该子网,如下所示。
把默认的"172.17.x.x"注释掉 换成该子网即可。
请添加图片描述

最后用sudo brew services restart命令重启docker-connection该即可,现在我们就可以在宿主机中使用容器IP、容器端口来访问该容器了。
请添加图片描述
成功!

  • 15
    点赞
  • 19
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值