专栏首页千里行走docker-7:mac使用mac-docker-connector打通宿主机与docker网络

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

本地开发会用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网络打通。

本文分享自微信公众号 - 千里行走(a_thousands_of_miles),作者:千里行走

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2020-10-16

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • docker-4:mac使用docker部署开发用rocketmq

    为了开发方便,有时需要在本地部署rocketmq,使用docker是一个高性价比的方式,故有此文。

    千里行走
  • kubernetes-26:升级kubeadm版本—从v1.13.3升级到v1.19.3

    执行下述命令获得版本升级命令:kubeadm upgrade plan v1.19.3

    千里行走
  • docker-6:mac使用docker部署开发用grafana和prometheus

    /Users/hepengyuan/Documents/docker-local/docker-local-prometheus/etc

    千里行走
  • 【漏洞修复】Docker remote api未授权访问复现和修复

    Docker是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的LINUX机器上,也可以实现虚拟化。Dock...

    腾讯云-MSS服务
  • Docker安装与启动

    Docker官方建议在Ubuntu中安装,因为Docker是基于Ubuntu发布的,而且一般Docker出现的问题Ubuntu是最先更新或者打补丁的。在很多版本...

    cwl_java
  • docker的安装

    yum-util 提供yum-config-manager功能,另外两个是devicemapper驱动依赖的

    小小咸鱼YwY
  • 测试开发进阶(四十三)

    史上最全Docker环境安装指南-让安装docker简单到爆:https://www.cnblogs.com/keyou1/p/11511067.html

    zx钟
  • Docker的安装以及加速器的配置

    目前,CentOS 仅发行版本中的内核支持 Docker。Docker 运行在 CentOS-6.5 或更高的版本的 CentOS 上,要求系统为64位、系统内...

    Python编程与实战
  • 这20个Docker Command,有几个是你会的?

    安装完成docker容器服务之后,需要了解如何操作它?在shell命令行下直接输入docker就可以查看帮助信息,如下。

    民工哥
  • Docker容器内部端口映射到外部宿主机端口的方法小结

    Docker允许通过外部访问容器或者容器之间互联的方式来提供网络服务。 容器启动之后,容器中可以运行一些网络应用,通过-p或-P参数来指定端口映射。

    洗尽了浮华

扫码关注云+社区

领取腾讯云代金券