Docker:处理 Mac 上 Docker 无法直接 ping 通的问题
环境
MacOS 10.12.6 & Docker
问题
在 Mac 上启动 docker 容器以后,宿主机 ping 不通容器的ip。
起因
在宿主机上看不到 docker0,无法访问容器所在的网络,导致宿主机 ping 不通 Docker 给 Container 所分配的 IP 地址。
介绍参见官网:https://docs.docker.com/docker-for-mac/networking/#there-is-no-docker0-bridge-on-macos
如看完官网还是不懂,墙裂推荐这篇文章:https://windmt.com/2019/08/30/docker-for-mac-network/
处理
处理问题的方案,是 github 上的 docker-for-mac( wojas/docker-mac-network
) 项目,主要方法是使用 OpenVpn 来访问 docker。
- 安装 Tunnelblick 用户端
brew cask install tunnelblick
也可到官网手动下载安装,官网地址:https://www.tunnelblick.net/downloads.html
- 克隆 docker-mac-network 项目
git clone wojas/docker-mac-network.git
image.png
- 找到 docker-mac-network/helpers/ 文件夹
find ~ -iname docker-mac-network
- 修改 run.sh 文件
打开 Finder 文件视窗,前往 /docker-mac-network/helpers/ 文件夹,使用 sublime 打开 run.sh 文件。
找到下图红框位置,将 ip 和 子网掩码 修改为 docker 的 ip 和子网页码。
image.png - 执行 docker-compose up
打开 terminal 终端,cd 进入 /docker-mac-network(注意,不是helpers/ 文件夹),启动 docker-compose up。
注意:此时,可能会有 [16058] Failed to execute script docker-compose 报错,请移步我的另一篇文章:https://www.songma.com/p/3dd305a4cb23。
docker-compose up
运行一段时间后,得到下图:
image.png
此时,打开 Finder 文件视窗,前往 /docker-mac-network/ 文件夹,发现多出一个 docker-for-mac.vpn 文件,如下图:
image.png
编辑 docker-for-mac.vpn 文件(该步骤必需完成)
使用 sublime 打开 docker-for-mac.vpn 文件,找到下图红框位置,
增加 comp-lzo yes,保存文件。image.png
启动 docker-for-mac.vpn
双击启动 docker-for-mac.vpn ,系统提醒 Tunnelblick 成功地 安装了一个配置。
点击右上角最左侧 Tunnelblick 图标 >> VPN 介绍 …,点击右下角连接。image.png
查看 terminal 终端,得到下图,表示启动成功。
image.png
测试 ping docker ip
新启动一个 terminal 终端,ping 一下 docker ip 得到下图,表示 ping 得通。image.png
1. 本站所有资源来源于用户上传和网络,如有侵权请邮件联系站长!
2. 分享目的仅供大家学习和交流,您必须在下载后24小时内删除!
3. 不得使用于非法商业用途,不得违反国家法律。否则后果自负!
4. 本站提供的源码、模板、插件等等其他资源,都不包含技术服务请大家谅解!
5. 如有链接无法下载、失效或广告,请联系管理员处理!
6. 本站资源售价只是摆设,本站源码仅提供给会员学习使用!
7. 如遇到加密压缩包,请使用360解压,如遇到无法解压的请联系管理员
开心源码网 » Docker:处理 Mac 上 Docker 无法直接 ping 通的问题