macos设置docker可以ping通容器

张春  金牌会员 | 2025-3-23 15:56:21 | 显示全部楼层 | 阅读模式
打印 上一主题 下一主题

主题 982|帖子 982|积分 2946

macos设置docker可以ping通容器

项目连接不上seata

今天在启动项目时候seata报错:
io.seata.common.exception.FrameworkException: can not connect to services-server
意思就是连接不上seata server,然后打开注册中心一看

ip为:172.17.0.5,果断ping一下

原因

ping不通的原因是,我seata server是在docker内里部署的,我项目启动去注册中心拉seata server的ip,拉到172.17.0.5,这个ip是docker容器内里的ip,宿主机和容器是隔离的,所以我在宿主机上是不能直接访问172.17.0.5
办理

github地址:https://github.com/wenjunxiao/mac-docker-connector/blob/master/README-ZH.md
windows系统看链接内里的教程也可以办理

  • 先安装Mac端的服务mac-docker-connector
  1. brew tap wenjunxiao/brew
  2. brew install docker-connector
复制代码

  • 首次配置通过以下命令把所有Docker所有bridge子网放入配置文件
增减可以参考链接里的详细配置,一样平常不必要改,如果环境辩论(比如端口被占用,子网已使用)就必要改
https://github.com/wenjunxiao/mac-docker-connector/blob/master/README-ZH.md#配置说明
  1. docker network ls --filter driver=bridge --format "{{.ID}}" | xargs docker network inspect --format "route {{range .IPAM.Config}}{{.Subnet}}{{end}}" >> "$(brew --prefix)/etc/docker-connector.conf"
复制代码

  • 启动Mac端的服务
  1. sudo brew services start docker-connector
复制代码

  • 安装Docker端的容器mac-docker-connector
  1. docker pull wenjunxiao/mac-docker-connector
复制代码

  • 启动Docker端的容器,其中网络必须是host,而且添加NET_ADMIN特性
  1. docker run -it -d --restart always --net host --cap-add NET_ADMIN --name mac-connector wenjunxiao/mac-docker-connector
复制代码

  • 成功

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

张春

金牌会员
这个人很懒什么都没写!
快速回复 返回顶部 返回列表