Docker 守护进程在更新后回答“404 页面未找到”

ave*_*ler 11 http-proxy docker

我最近将我的 docker 从 1.4 更新到 1.5(使用包lxc_docker)。

从那以后,docker daemon 发送这样的错误(对于每个命令):

$ docker version 
Client version: 1.5.0
Client API version: 1.17
Go version (client): go1.4.1
Git commit (client): a8a31ef
OS/Arch (client): linux/amd64
FATA[0000] Error response from daemon: 404 page not found 
Run Code Online (Sandbox Code Playgroud)

但是如果我使用以前版本的客户端,我会得到很好的答案:

$ /usr/bin/docker-old version 
Client version: 1.4.0
Client API version: 1.16
Go version (client): go1.3.3
Git commit (client): 4595d4f
OS/Arch (client): linux/amd64
Server version: 1.5.0
Server API version: 1.17
Go version (server): go1.4.1
Git commit (server): a8a31ef
Run Code Online (Sandbox Code Playgroud)

好像是代理设置(HTTP_PROXY而且HTTPS_PROXY这个服务器上用到了变量),我可以通过设置变量来解决问题NO_PROXY

$ export NO_PROXY="/var/run/docker.sock"
$ docker version  
Client version: 1.5.0
Client API version: 1.17
Go version (client): go1.4.1
Git commit (client): a8a31ef
OS/Arch (client): linux/amd64
Server version: 1.5.0
Server API version: 1.17
Go version (server): go1.4.1
Git commit (server): a8a31ef
Run Code Online (Sandbox Code Playgroud)

你知道这个问题的真正来源吗?以及如何干净地解决它?

小智 7

这是一个新的 1.5 功能,来自 docker(推特上的@icecrime)的一个人已经证实了这一点。文档是最新的:https : //github.com/docker/docker/pull/10192/files

所以你不必干净地解决它。这是在代理后面使用 docker 的正确方法。


Pio*_*ost 5

你知道这个问题的真正来源吗?

这个问题是一个事实,即泊坞窗不必要的(一个可能错误地认为)尝试使用代理服务器(如果指定HTTP_PROXYHTTPS_PROXY环境变量)来访问本地的Unix域套接字/var/run/docker.sock

以及如何干净地解决它?

这是固定的通过并不想在这种情况下,使用代理在1.6.0版本。因此,不再需要添加/var/run/docker.sockNO_PROXY环境变量中。