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

Can't pull docker image behind a proxy

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

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

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

不工作。

我遵循的文档:

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

有什么建议吗?

您引用了错误的文档,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"
    
  3. 重新启动 docker 守护进程:

    systemctl daemon-reload
    systemctl restart docker
    

注意:上面的事情需要用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

详情参考official document.