美文网首页Mac优雅使用指南
Docker:解决 Mac 上 Docker 无法直接 ping

Docker:解决 Mac 上 Docker 无法直接 ping

作者: dex0423 | 来源:发表于2019-12-21 01:21 被阅读0次

    环境

    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(https://github.com/wojas/docker-mac-network
    ) 项目,主要方法是使用 OpenVpn 来访问 docker。

    • 安装 Tunnelblick 客户端
    brew cask install tunnelblick
    

    也可到官网手动下载安装,官网地址:https://www.tunnelblick.net/downloads.html

    • 克隆 docker-mac-network 项目
    git clone https://github.com/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.jianshu.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

    联系博主:下为博主微信,欢迎骚扰

    image.png

    相关文章

      网友评论

        本文标题:Docker:解决 Mac 上 Docker 无法直接 ping

        本文链接:https://www.haomeiwen.com/subject/voywnctx.html