Docker 拉取失败,请求在等待连接时被取消

Docker pull failed with request canceled while waiting for connection

我正在尝试将图像拉到默认 docker 机器。但我总是得到

docker@default:/etc$ docker run hellow-world
Unable to find image 'hellow-world:latest' locally
docker: Error response from daemon: Get https://registry-1.docker.io/v2/: net/http: request canceled while waiting for connection (Client.Timeout exceeded while awaiting headers).
See 'docker run --help'.
docker@default:/etc$

即使我给 --dns 选项同样的错误

docker@default:/etc$ docker run hellow-world --dns=8.8.8.8
Unable to find image 'hellow-world:latest' locally
docker: Error response from daemon: Get https://registry-1.docker.io/v2/: net/http: request canceled while waiting for connection (Client.Timeout exceeded while awaiting headers).
See 'docker run --help'.
docker@default:/etc$

尝试将 DNS 添加到默认计算机config.json

"EngineOptions": {
    "Dns": [
        "8.8.8.8",
        "8.8.4.4"
    ]
}

resolv.conf 在默认计算机中有以下条目

docker@default:/etc$
docker@default:/etc$ cat /etc/resolv.conf
search <company name>
nameserver 10.0.2.3
docker@default:/etc$

这台机器位于代理后面,我正在使用 kitematic 创建默认机器

Kitematic 由自定义脚本启动,该脚本将设置代理并启动 kitematic

推荐,所有图片都在kitematic开始时显示。但是无法拉取任何图像

创建新机器也给出警告

PS C:\Program Files\Docker Toolbox\kitematic> docker-machine create -d virtualbox --engine-opt dns=8.8.8.8 test
Running pre-create checks...
(test) Unable to get the latest Boot2Docker ISO release version:  Get https://api.github.com/repos/boot2docker/boot2docker/releases/latest: dial tcp 192.30.253.116:443: connectex: A connection attempt failed because the connected party did not properly respond after a period of time, or established connection failed because connected host has failed to respond.
Creating machine...
(test) Unable to get the latest Boot2Docker ISO release version:  Get https://api.github.com/repos/boot2docker/boot2docker/releases/latest: dial tcp 192.30.253.116:443: connectex: A connection attempt failed because the connected party did not properly respond after a period of time, or established connection failed because connected host has failed to respond.

使用 --dns 选项创建的机器也有 /etc/resolv.conf 而不是 8.8.8.8

docker@test:~$
docker@test:~$ cat /etc/resolv.conf
search <company name>
nameserver 10.0.2.3
docker@test:~$

PS:将HTTP_PROXY添加到/var/lib/boot2docker/profile

后问题解决

找到解决方案

要么 将 HTTP_PROXY 添加到 /var/lib/boot2docker/profile

使用 --engine-env HTTP_PROXY=IP:PORT

创建 docker 机器