Docker 使用网络代理

如果你也苦于GFW的阻塞,无法正常更新软件,并且在docker需要pull images时候发现无法下载Docker镜像,则可以部署 Squid代理服务 的 Squid父级socks代理 来实现代理翻墙,或者采用非常简便的 SSH Tunneling: 动态端口转发 实现socks5代理 。这里介绍如何配置docker客户端,以便能够通过代理(HTTP或者socks)加速镜像下载。

这个方法也使得容器内部能够不需要单独配置代理,直接通过代理服务器上网。

Docker客户端的Proxy

注意,Docker客户端配置是对创建的容器生效,也就是把代理环境变量配置注入到容器内部。
对于物理主机上的docker服务要实现镜像下载加速,需要配置 Docker服务器Proxy

Docker客户端支持使用代理服务器,主要有两种方式配置:

  • Docker 17.07 和更高版本,可以配置 Docker 端自动传递代理信息给容器
  • Docker 17.06 或 低版本,则需要在容器中设置相应的环境变量

配置Docker客户端

  • 在Docker客户端,创建或配置 ~/.docker/config.json 设置以下json格式配置:

置Docker客户端 ~/.docker/config.json 可以为容器内部注入代理配置

{
 "proxies": {
   "default": {
     "httpProxy": "http://192.168.7.152:3128",
     "httpsProxy": "http://192.168.7.152:3128",
     "noProxy": "*.baidu.com,192.168.0.0/16,10.0.0.0/8"
   }
 }
}
  • 然后创建的新容器,在容器中的环境变量会自动设置代理

可以结合 远程服务器squid提供给本地局域网 配置Docker客户端,这样只需要远程服务器安装部署过一次 Squid代理服务 ,本地局域网Docker就可以简单实现翻墙代理,方便完成很多安装部署工作。

作者:Jeebiz  创建时间:2024-08-02 11:52
最后编辑:Jeebiz  更新时间:2024-08-02 14:21