前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >docker-7:mac使用mac-docker-connector打通宿主机与docker网络

docker-7:mac使用mac-docker-connector打通宿主机与docker网络

作者头像
千里行走
发布2020-10-27 10:14:56
2.6K0
发布2020-10-27 10:14:56
举报
文章被收录于专栏:千里行走

本地开发会用docker部署诸如rocketmq的中间件,但是有一个问题,rocketmq-broker注册到namesrv上的ip是docker-ip,mac本地是不能直接访问的,需要打通docker和mac本地的网络,本文即解决此问题。

之前使用过另外一种方式,但是太麻烦,我现在不用了:

docker-1:本地开发打通宿主机与docker服务网络

https://mp.weixin.qq.com/s/-Qkt5SeDYgYhDNqbQaUWYg

使用docker-connector(vpn概念),官方地址:

https://github.com/wenjunxiao/mac-docker-connector

mac端通过brew安装docker-connector

brew install wenjunxiao/brew/docker-connector

安装完成,按照提示通过命令添加路由,以下命令把所有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

也可以手动修改/usr/local/etc/docker-connector.conf文件中的路由,格式是

route 172.100.0.0/16

Mac端和Docker端都默认使用了192.168.251.1/24的子网。如果Mac端已经被占用了,可在配置文件docker-connector.conf中新增addr xxx.xxx.xxx.1/24的地址(默认注释掉了):

/usr/local/etc/docker-connector.conf中去掉注释:

如果Docker端冲突了,需要修改启动容器的命令追加mac-receiver -addr xxx.xxx.xxx.1/24来指定地址.

路由的子网决定了你能访问那些容器,配置完成,直接启动服务(需要sudo)

sudo brew services start docker-connector

Install docker front of mac-docker-connector:

docker pull wenjunxiao/mac-docker-connector

如果执行失败,先docker login登陆hub.docker再执行。

docker端运行wenjunxiao/mac-docker-connector,需要使用host网络,并且允许`NET_ADMIN':

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

至此,宿主机与docker网络打通。

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2020-10-16,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 千里行走 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
容器服务
腾讯云容器服务(Tencent Kubernetes Engine, TKE)基于原生 kubernetes 提供以容器为核心的、高度可扩展的高性能容器管理服务,覆盖 Serverless、边缘计算、分布式云等多种业务部署场景,业内首创单个集群兼容多种计算节点的容器资源管理模式。同时产品作为云原生 Finops 领先布道者,主导开源项目Crane,全面助力客户实现资源优化、成本控制。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档