Docker for Mac配置Sock5代理

jxy發表於2017-03-30

背景

  • 今天需要用ES的映象,發現Docker Hub的映象已經廢棄了,換成了docker.elastic.co映象。
  • 於是喜聞樂見得被牆了。。。 error pulling image configuration ... EOF
    Docker for Mac配置Sock5代理
    被牆
  • 嘗試了下SS的全域性代理,發現沒有用

方案

  • 利用Privoxy開個Http代理,將http請求轉發到Sock5,Docker for mac裡配置Http代理。

具體步驟

  1. brew install privoxy
  2. 配置privoxy配置 vi /usr/local/etc/privoxy/config
  3. 增加一行,代表把所有匹配/的請求(也就是所有請求),以sock5協議轉發到127.0.0.1:1080,最後一個.代表不轉發到http代理
    forward-socks5 / 127.0.0.1:1080 .複製程式碼
  4. 將listen-address預設的127.0.0.1改為本機ip
    listen-address  10.15.232.101:8118複製程式碼
  5. brew services start privoxy
  6. Docker for Mac的Proxy代理均配為上面的listen-address
    Docker for Mac配置Sock5代理
    Proxy配置
  7. 至此,大功告成,可以愉快得拉映象了

  • 如果Docker for Mac的代理配成了127.0.0.1:8118那麼就會出現getsockopt: connection refused.的錯誤。原因好像是docker命令實際上是執行在docker machine中的,也就是一個跑在Mac上的虛擬機器中,所以配成127.0.0.1就會嘗試走那臺機器的代理,所以會出錯。因此,需要配置成本機的真實ip,而不能是lookback address。今天被這個坑了2個小時,ಥ_ಥ
    Docker for Mac配置Sock5代理
    錯誤

參考資料

版權宣告

相關文章