關於Mac宿主機無法ping通Docker容器的問題


問題:

  在 Mac 上啟動 docker 容器以后,宿主機 ping 不通容器的ip。

      

原因:

 

Mac和Docker是物理隔離的,詳見這篇博客(推薦!):https://www.haoyizebo.com/posts/fd0b9bd8/

 

解決辦法(上篇博客中的方法四):

1.首先 Mac 端通過 brew 安裝 docker-connector

brew install wenjunxiao/brew/docker-connector

2.手動修改 /usr/local/etc/docker-connector.conf 文件中的路由(也可使用博客中的命令自動配置):

          

 

 注:第一步安裝后,查看的時候就有,因為需要用到 172.18網段,所以將這個取消注釋就行。

 (修改:由於一開始設置的是 172.18.0.0/16,導致公司內網一些網站訪問不了,一查才發現是 172.18.x.x 都被代理,排查了一天才發現問題出在這兒,將配置重新修改為 172.18.0.0/29 ,只代理 172.18.0.1 ~ 172.18.0.7 這幾個地址,因為我只用到了 172.18.0.2、172.18.0.3、172.18.0.4 這3個ip,所以可以這樣設置,要結合自己的實際使用來設置。)

       

 

3.配置完成,直接啟動服務(需要 sudo,路由配置啟動之后仍然可以修改,並且無需重啟服務立即生效),需要輸入本機密碼

sudo brew services start docker-connector

4.使用一下命令在docker 端運行 wenjunxiao/mac-docker-connector

docker run -it -d --restart always --net host --cap-add NET_ADMIN --name connector wenjunxiao/mac-docker-connector

 

5.安裝完成,重試ping 操作

      

 

 由上圖可見,ping通了,如果 ping不通,重啟一下電腦再試一下(前提是 ping的目標地址所在的容器,已經啟動了,可以使用 docker ps查看運行着的容器)。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM