起源
在安装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容器可以发现成功,至此大功告成
`