DockerforMac配置Sock5代理

jxy發表於2018-08-10
  • 今天需要用ES的映象,發現Docker Hub的映象已經廢棄了,換成了docker.elastic.co映象。
  • 於是喜聞樂見得被牆了。。。 error pulling image configuration ... EOF
    被牆
  • 嘗試了下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 .
  1. 將listen-address預設的127.0.0.1改為本機ip
listen-address  10.15.232.101:8118
  1. brew services start privoxy
  2. Docker for Mac的Proxy代理均配為上面的listen-address
    Proxy配置
  3. 至此,大功告成,可以愉快得拉映象了

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

參考資料

版權宣告


相關文章