Der Docker-Daemon antwortet nach dem Update mit "404-Seite nicht gefunden"

11

Ich habe kürzlich meinen Docker von 1.4 auf 1.5 aktualisiert (mit dem Paket lxc_docker).

Seitdem sendet der Docker-Daemon einen Fehler wie diesen (für jeden Befehl):

$ 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 

Aber wenn ich die vorherige Version des Clients verwende, bekomme ich die gute Antwort:

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

Es scheint sich um Proxy-Einstellungen zu handeln ( HTTP_PROXYund HTTPS_PROXYVariablen werden auf diesem Server verwendet), und ich kann das Problem lösen , indem ich die NO_PROXYVariable einstelle :

$ 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

Wissen Sie, woher dieses Problem wirklich kommt? Und wie kann man es sauber lösen?

aveuiller
quelle

Antworten:

7

Es ist eine neue 1.5-Funktion, die von Docker (@icecrime auf Twitter) bestätigt wurde. Die Dokumentation ist aktuell: https://github.com/docker/docker/pull/10192/files

Sie müssen es also nicht sauber lösen. Dies ist der richtige Weg, um Docker hinter einem Proxy zu verwenden.

François SAMIN
quelle
Es ist keine Funktion, es ist ein Fehler und es wurde in Version 1.6.0 behoben - siehe meine Antwort.
Piotr Dobrogost
Offensichtlich wurde diese Art von "Feature" von den Benutzern nicht geschätzt und in 1.6.0 ( github.com/docker/docker/pull/10739 ), das gestern veröffentlicht wurde, auf den richtigen Weg gebracht .
François SAMIN
5

Wissen Sie, woher dieses Problem wirklich kommt?

Das Problem kommt von der Tatsache, dass Docker unnötig (man könnte fälschlicherweise argumentieren) versucht, Proxy (falls durch HTTP_PROXYoder HTTPS_PROXYUmgebungsvariablen angegeben ) zu verwenden, um auf den lokalen Unix-Domain-Socket unter zuzugreifen /var/run/docker.sock.

Und wie kann man es sauber lösen?

Dies wurde fixiert in Version 1.6.0 von nicht versuchen , Proxy in diesem Fall zu verwenden. Als Ergebnis gibt es keine Notwendigkeit hinzufügen , /var/run/docker.sockum NO_PROXYUmgebungsvariable mehr.

Piotr Dobrogost
quelle