Demon dokera odpowiada „Nie znaleziono strony 404” po aktualizacji

11

Niedawno zaktualizowałem dokera z 1.4 do 1.5 (wraz z pakietem lxc_docker).

Od tego momentu demon dokera wysyła taki błąd (dla każdego polecenia):

$ 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 

Ale jeśli użyję poprzedniej wersji klienta, otrzymam dobrą odpowiedź:

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

Wygląda na to, że są to ustawienia proxy ( HTTP_PROXYi HTTPS_PROXYzmienne są używane na tym serwerze) i mogę rozwiązać problem, ustawiając NO_PROXYzmienną:

$ 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

Czy wiesz, skąd tak naprawdę pochodzi ten problem ? I jak czysto go rozwiązać?

aveuiller
źródło

Odpowiedzi:

7

To nowa funkcja 1.5, potwierdził ją facet z dockera (@icecrime na Twitterze). dokumentacja jest aktualna: https://github.com/docker/docker/pull/10192/files

Więc nie musisz go czysto rozwiązać. Jest to właściwy sposób używania dokera za serwerem proxy.

François SAMIN
źródło
To nie jest funkcja, to błąd, który został naprawiony w wersji 1.6.0 - patrz moja odpowiedź.
Piotr Dobrogost
Oczywiście tego rodzaju „funkcja” nie została doceniona przez użytkowników i została naprawiona we właściwy sposób w wersji 1.6.0 ( github.com/docker/docker/pull/10739 ), która wychodzi wczoraj.
François SAMIN
5

Czy wiesz, skąd tak naprawdę pochodzi ten problem?

Problem wynika z faktu, że doker niepotrzebnie (można argumentować błędnie) próbuje użyć proxy (jeżeli został on określony przez HTTP_PROXYlub HTTPS_PROXYzmiennych środowiskowych) do dostępu lokalnego gniazda UNIX na /var/run/docker.sock.

A jak to rozwiązać?

Zostało to naprawione w wersji 1.6.0 przez nieużywanie proxy w tym przypadku. W rezultacie nie ma już potrzeby dodawania /var/run/docker.sockdo NO_PROXYzmiennej środowiskowej.

Piotr Dobrogost
źródło