这个问题和Windows上的Docker问题一样,均是因为Docker容器实际是运行在Linux虚拟机下导致的
MacOS下的解决方案
在MacOS下面只需要执行如下的几个命令就可以了
# 依赖:Homebrew Docker Desktop for Mac
# 安装docker-connector
brew install wenjunxiao/brew/docker-connector
# 这是Github的安装教程里面写的,但其实这里是个坑,因为我们使用homebrew安装的,所以真的配置文件位置不在/usr/local/etc,而是在/opt/homebrew/etc,所以用homebrew安装的应该执行下面那一条才对
# docker network ls --filter driver=bridge --format "{{.ID}}" | xargs docker network inspect --format "route {{range .IPAM.Config}}{{.Subnet}}{{end}}" >> /usr/local/etc/docker-connector.conf
# 配置路由
docker network ls --filter driver=bridge --format "{{.ID}}" | xargs docker network inspect --format "route {{range .IPAM.Config}}{{.Subnet}}{{end}}" >> /opt/homebrew/etc/docker-connector.conf
# 启动docker-connector服务
sudo brew services start docker-connector
# 启动一个docker-connector容器,负责转发流量
docker run -it -d --restart always --net host --cap-add NET_ADMIN --name connector wenjunxiao/mac-docker-connector