macos设置docker可以ping通容器

今天在启动项目时候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地址:mac-docker-connector/README-ZH.md at master · wenjunxiao/mac-docker-connector · GitHub

windows系统看链接里面的教程也可以解决

  1. 先安装Mac端的服务mac-docker-connector

    brew tap wenjunxiao/brew
    brew install docker-connector

  2. 首次配置通过以下命令把所有Docker所有bridge子网放入配置文件

增减可以参考链接里的详细配置,一般不需要改,如果环境冲突(比如端口被占用,子网已使用)就需要改
https://github.com/wenjunxiao/mac-docker-connector/blob/master/README-ZH.md#配置说明

复制代码
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"
  1. 启动Mac端的服务

    sudo brew services start docker-connector

  2. 安装Docker端的容器mac-docker-connector

    docker pull wenjunxiao/mac-docker-connector

  3. 启动Docker端的容器,其中网络必须是host,并且添加NET_ADMIN特性

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

  4. 成功

相关推荐
Huathy-雨落江南,浮生若梦19 分钟前
k8s入门教程(集群部署、使用,镜像拉取失败网络问题排查)
网络·容器·kubernetes
罗技12336 分钟前
我用Amazon Q写了一个Docker客户端,并上架了懒猫微服商店
运维·docker·容器
爱宇阳1 小时前
使用 Docker Compose 部署 Jenkins(LTS 版)持续集成环境
ci/cd·docker·jenkins
明月看潮生3 小时前
青少年编程与数学 01-011 系统软件简介 05 macOS操作系统
macos·青少年编程·操作系统·系统软件·编程与数学
背太阳的牧羊人4 小时前
backend 服务尝试连接 qdrant 容器,但失败了,返回 502 Bad Gateway 问题排查
docker·gateway·qdrant
xiaomu_3475 小时前
基于Linux系统docker封装exe
linux·运维·服务器·docker
❀͜͡傀儡师7 小时前
如何使用k8s安装redis呢
redis·容器·kubernetes
Hoking14 小时前
Kafka集群部署(docker容器方式)SASL认证(zookeeper)
docker·zookeeper·kafka
云道轩15 小时前
llm-d:面向Kubernetes的高性能分布式LLM推理框架
分布式·容器·kubernetes
Hello.Reader18 小时前
Git 安装全攻略Linux、macOS、Windows 与源码编译
linux·git·macos