Docker for Mac配置Sock5代理

背景

  • 今天需要用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 .复制代码
  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
    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个小时,ಥ_ಥ
    错误

参考资料

  • Beginner having trouble with docker behind company proxy
  • 用Privoxy转发socks代理,建http代理

版权声明

  • 自由转载-非商用-非衍生-保持署名(创意共享3.0许可证)
  • 本文首发于: czjxy881.coding.me/blog/2017/0…

你可能感兴趣的:(Docker for Mac配置Sock5代理)