Docker daemon responde 'página 404 no encontrada' después de la actualización

11

Recientemente actualicé mi docker de 1.4 a 1.5 (con el paquete lxc_docker).

Desde entonces, Docker Daemon envía un error como este (para cada comando):

$ 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 

Pero si uso la versión anterior del cliente, obtengo la respuesta correcta:

$ /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

Parece ser una configuración de proxy ( HTTP_PROXYy las HTTPS_PROXYvariables se utilizan en este servidor), y puedo resolver el problema configurando la NO_PROXYvariable:

$ 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

¿Sabes de dónde viene realmente este problema ? ¿Y cómo resolverlo limpiamente ?

aveuiller
fuente

Respuestas:

7

Es una nueva característica 1.5, un tipo de Docker (@icecrime en twitter) lo ha confirmado. la documentación está actualizada: https://github.com/docker/docker/pull/10192/files

Para que no tenga que resolverlo limpiamente. Esta es la forma correcta de usar Docker detrás de un proxy.

François SAMIN
fuente
No es una característica, es un error y se corrigió en la versión 1.6.0, vea mi respuesta.
Piotr Dobrogost
Obviamente, este tipo de "característica" no ha sido apreciada por los usuarios y se ha corregido correctamente en 1.6.0 ( github.com/docker/docker/pull/10739 ) que salió ayer.
François SAMIN
5

¿Sabes de dónde viene realmente este problema?

El problema viene del hecho de que la ventana acoplable innecesariamente (se podría argumentar erróneamente) intenta utilizar proxy (si así lo especifica HTTP_PROXYo HTTPS_PROXYvariables de entorno) para el acceso local de socket de dominio Unix al /var/run/docker.sock.

¿Y cómo resolverlo limpiamente?

Esto se solucionó en la versión 1.6.0 al no intentar usar proxy en este caso. Como resultado, ya no es necesario agregar /var/run/docker.socka NO_PROXYla variable de entorno.

Piotr Dobrogost
fuente