无法在代理后面拉取 docker 镜像

emi*_*zki 7 proxy pull image docker

我正在尝试在代理后面拉取图像。

  1. 我已经设置了 docker 配置文件~/.docker/config.json::
{
 "proxies":
 {
   "default":
   {
     "httpProxy": "...",
     "httpsProxy": "..."
   }
 }
}
Run Code Online (Sandbox Code Playgroud)
  1. 将 $DOCKER_CONFIG 设置为[asbolute_path]/my_home/.docker

  2. 重新启动 docker 守护进程:sudo systemctl restart docker

不工作。

我遵循的文档:

https://docs.docker.com/network/proxy/#configure-the-docker-client

有小费吗 ?

atl*_*ine 19

你引用了一个错误的文档,里面提到的方法configure-the-docker-client都是关于如何为容器设置默认代理,而不是为容器设置默认代理docker daemon,而docker daemon负责拉取docker镜像的程序。

正确的步骤如下:

  1. mkdir -p /etc/systemd/system/docker.service.d

  2. 新建一个文件/etc/systemd/system/docker.service.d/http-proxy.conf,如下所示:

    [Service]
    Environment="HTTP_PROXY=http://proxy.example.com:80"
    Environment="HTTPS_PROXY=https://proxy.example.com:443"
    Environment="NO_PROXY=localhost,127.0.0.1,docker-registry.example.com,.corp"
    
    Run Code Online (Sandbox Code Playgroud)
  3. 使用下一步重新启动 docker 守护进程:

    systemctl daemon-reload
    systemctl restart docker
    
    Run Code Online (Sandbox Code Playgroud)

注意:以上内容需要使用 sudo/root 执行。

检查docker info是否成功后您应该看到以下内容:

$ docker info | grep Proxy
 HTTP Proxy: http://proxy.example.com:80
 HTTPS Proxy: https://proxy.example.com:443
 No Proxy: localhost,127.0.0.1,docker-registry.example.com,.corp
Run Code Online (Sandbox Code Playgroud)

详情参考官方文档