我正在使用 Ubuntu 16.04.4 LTS,并且我的代理配置在此版本上运行良好:
> docker --version
Docker version 17.12.0-ce, build c97c6d6
我最近这样做了,apt-get upgrade
并且它提取了新版本的docker-ce:
> docker --version
Docker version 18.03.1-ce, build 9ee9f40
现在我得到了以下形式的失败:
> docker run hello-world
Unable to find image 'hello-world:latest' locally
docker: Error response from daemon: Get https://registry-1.docker.io/v2/: proxyconnect tcp: dial tcp: lookup http on 10.198.0.199:53: no such host.
(10.198.0.199是我们公司内部的DNS服务器)
以下是我的内容/etc/systemd/system/docker.service.d/10_docker_proxy.conf
[Service]
Environment=HTTP_PROXY=http://DOMAIN\\username:[email protected]:9091
Environment=HTTPS_PROXY=http://DOMAIN\\username:[email protected]:9091
我尝试使用单引号和双引号括住 HTTP_PROXY 和 HTTPS_PROXY 变量:
Environment="HTTP_PROXY=http://DOMAIN\\username:[email protected]:9091"
Environment="HTTPS_PROXY=http://DOMAIN\\username:[email protected]:9091"
和
Environment='HTTP_PROXY=http://DOMAIN\\username:[email protected]:9091'
Environment='HTTPS_PROXY=http://DOMAIN\\username:[email protected]:9091'
有同样的错误。
它看起来与用户名的部分有关DOMAIN\\
,因为如果我这样做(即不提供密码):
Environment=HTTP_PROXY=http://DOMAIN\\[email protected]:9091
Environment=HTTPS_PROXY=http:/DOMAIN\\[email protected]:9091
我得到了同样的proxyconnect tcp: dial tcp: lookup http on 10.198.0.199:53: no such host
错误,但如果我离开域:
Environment=HTTP_PROXY=http://[email protected]:9091
Environment=HTTPS_PROXY=http:/[email protected]:9091
我明白了
docker: Error response from daemon: Get https://registry-1.docker.io/v2/: authenticationrequired.
URL 解析库需要做些调整吗?
同时,我将恢复到正常运行的 Docker:
sudo apt-get install docker-ce=17.12.0~ce-0~ubuntu
答案1
看来我需要百分比编码“\”字符。这有效:
Environment=HTTP_PROXY=H://DOMAIN%5cusername:[email protected]:9091 Environment=HTTPS_PROXY=H://DOMAIN%5cusername:[email protected]:9091