我刚刚在他们的网页上安装了Docker-Toolbox

我从Docker快速入门终端开始,如下所示

                        ##         .
                  ## ## ##        ==
               ## ## ## ## ##    ===
           /"""""""""""""""""\___/ ===
      ~~~ {~~ ~~~~ ~~~ ~~~~ ~~~ ~ /  ===- ~~~
           \______ o           __/
             \    \         __/
              \____\_______/


docker is configured to use the default machine with IP 192.168.99.100
For help getting started, check out the docs at https://docs.docker.com

bash-3.2$ 

但当我尝试执行docker拉hello-world时,这是我看到的

bash-3.2$ docker run hello-world
Unable to find image 'hello-world:latest' locally
Pulling repository docker.io/library/hello-world
Network timed out while trying to connect to https://index.docker.io/v1/repositories/library/hello-world/images. You may want to check your internet connection or if you are behind a proxy.
bash-3.2$ 

怎么了?


当前回答

我在Windows 10上安装的Docker没有工具箱,所以需要启用Hyper-V的版本。

对于Docker 1.12版本,我必须进入任务栏,右键单击Docker图标,选择设置->网络,并将DNS服务器设置为固定,即使用谷歌的DNS服务器8.8.8.8。

一旦这个设置被改变,它终于起作用了。

其他回答

另一种情况:如果您的docker网络适配器是禁用的,它将失败与此错误。适配器被命名为“vEthernet (DockerNAT)”或类似的名称。显然,这个适配器以某种方式参与了正常的docker pull行为。让它回来解决问题。

我有同样的问题与boot2docker和修复它重新启动它:

boot2docker restart

更简单的解决方案是在/etc/default/docker文件中添加以下条目

出口http_proxy = " http://HOST "

并重新启动docker服务

服务docker重启

参考https://docs.docker.com/network/proxy/ 对我来说,没有http://或https://前缀的代理设置是有效的。 例句: 代理:港口

或以/为后缀,以http://或https://为前缀 e。: http://PROXY:PORT/

我在Windows 10上安装的Docker没有工具箱,所以需要启用Hyper-V的版本。

对于Docker 1.12版本,我必须进入任务栏,右键单击Docker图标,选择设置->网络,并将DNS服务器设置为固定,即使用谷歌的DNS服务器8.8.8.8。

一旦这个设置被改变,它终于起作用了。