解决 Mac 中的 Docker 宿主机与容器不能通信问题

原因:

Docker的通信默认是网桥,宿主机和容器不在同一个网桥里,Mac的网桥里少了Docker0网段,外部部署的网络之所以能通是因为访问服务时,网段进行了网络的Nat的自动转换。

step1

安装 docker-connector

brew install wenjunxiao/brew/docker-connector

step2

docker 的所有 bridge 网络都添加到路由中

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

step3

手动修改 /usr/local/etc/docker-connector.conf 文件中的路由

route 172.17.0.0/16

step4

启动服务

sudo brew services start docker-connector

step5

运行 mac-docker-connector 容器

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

  • 这个包应该是不在了,pull 时默认最新的。
  • Docker

    Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的操作系统上。容器完全使用沙箱机制,几乎没有性能开销,可以很容易地在机器和数据中心中运行。

    492 引用 • 925 回帖 • 1 关注

相关帖子

欢迎来到这里!

我们正在构建一个小众社区,大家在这里相互信任,以平等 • 自由 • 奔放的价值观进行分享交流。最终,希望大家能够找到与自己志同道合的伙伴,共同成长。

注册 关于
请输入回帖内容 ...