起源

在安装azkaban时候发现无法在宿主主机上调用https://ip:8443这个uri,确认docker中的服务启动,继续尝试ping容器发现无法ping通。慢慢就发现了新大陆。下边就开启追溯原因和探索解决方案:

mac下的宿主无法ping通docker容器原因在于docker在OSX的实现方式,是首先创建一个linux的虚拟机,在将docker放入到虚拟机中实现,而对于linux虚拟机,与OSX之间的通信,目前版本采用/var/run/docker.sock这种socket文件来通信,在OSX宿机中自然ping不通docker容器。

解决方案

思路:通过设置代理进行解决,具体思路如下,说有个东西可以解决这个问题,利用这个docker-mac-network进行解决。

实施方案

  • 安装这个东西的客户端 (https://tunnelblick.net/downloads.html),
    安装后长这个样子在这里插入图片描述
  • 克隆上边说的那个项目(docker-mac-network.)
git clone `https://github.com/wojas/docker-mac-network.git
  • 更改helps目录下的run.sh文件,清空后复制下边内容,不会清空我教你
  `echo "" >run.sh

复制下边内容,注意修改你的容器主机ip和子网掩码

链接:https://pan.baidu.com/s/1ddM8WTDjOPrYlMRhiGkEBA  密码:1ivl
  • 执行下边命令启动docker-compose,首次执行需要等好一会奥
docker-compose up
  • 执行完毕之后会发现在根目录下多了个文件:.o-*v&-p±n 为扩展名的
    在这里插入图片描述
  • vim 这个文件,在倒数第二行加入
comp-lzo yes

保存之后将该文件拖入客户端里即可,然后点击右下角的连接按钮。
在这里插入图片描述

测试

  • 宿主主机ping docker容器可以发现成功,至此大功告成在这里插入图片描述

`

Logo

华为开发者空间,是为全球开发者打造的专属开发空间,汇聚了华为优质开发资源及工具,致力于让每一位开发者拥有一台云主机,基于华为根生态开发、创新。

更多推荐