Демон Docker відповідає "404 сторінки не знайдено" після оновлення


11

Нещодавно я оновив свій докер з 1,4 до 1,5 (з пакетом lxc_docker).

Відтоді демон docker надсилає помилку на зразок цієї (для кожної команди):

$ 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 

Але якщо я використовую попередню версію клієнта, я отримую точну відповідь:

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

Здається, це налаштування проксі ( 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

Чи знаєте ви, звідки насправді ця проблема ? І як це чисто вирішити?

Відповіді:


7

Це нова функція 1.5, хлопець з docker (@icecrime on twitter) підтвердив це. документація актуальна: https://github.com/docker/docker/pull/10192/files

Тож вам не доведеться чисто вирішувати це. Це правильний спосіб використання докера за проксі.


Це не особливість, це помилка, і вона була виправлена ​​у версії 1.6.0 - дивіться мою відповідь.
Пьотр Доброгост

Очевидно, що цей тип "функції" не був оцінений користувачами і був зафіксований правильним шляхом у 1.6.0 ( github.com/docker/docker/pull/10739 ), який вийшов учора.
Франсуа САМІН

5

Чи знаєте ви, звідки насправді ця проблема?

Проблема виникає з - за того , що Докер даремно (можна стверджувати , помилково) намагається використовувати проксі - сервер (якщо вказано HTTP_PROXYабо HTTPS_PROXYзмінні оточення) для доступу до локального сокета домену UNIX в /var/run/docker.sock.

І як це чисто вирішити?

Це було виправлено у версії 1.6.0, не намагаючись у цьому випадку використовувати проксі. В результаті немає необхідності додавати /var/run/docker.sockдо NO_PROXYзмінної оточення більше.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.