Docker:处理 Mac 上 Docker 无法直接 ping 通的问题

作者 : 开心源码 本文共1358个字,预计阅读时间需要4分钟 发布时间: 2022-05-13 共249人阅读

环境

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 通的问题

发表回复