无法在代理后拉取Docker镜像

6

我想在代理后面拉取镜像。

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

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

无效。

我所遵循的文档:

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

有什么建议吗?


你遇到了什么错误?请尽可能提供可重现的问题。 - Noam Yizraeli
1个回答

16
你给出了错误的文件参考,configure-the-docker-client中提到的方法是关于如何为容器设置默认代理,而不是为docker daemon设置默认代理。而docker daemon是负责拉取Docker镜像的程序。
正确的步骤如下:
  1. mkdir -p /etc/systemd/system/docker.service.d

  2. new a file /etc/systemd/system/docker.service.d/http-proxy.conf with something like next:

    [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. restart the docker daemon with next:

    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

详情请参考官方文档


1
仍未使用代理... - Jay
https://stackoverflow.com/a/56200292/7508077 - undefined

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接