Daemon Docker menjawab 'halaman 404 tidak ditemukan' setelah pembaruan

11

Saya baru-baru ini memperbarui buruh pelabuhan saya dari 1,4 menjadi 1,5 (dengan paket lxc_docker).

Sejak itu, docker daemon mengirim kesalahan seperti ini (untuk setiap perintah):

$ 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 

Tetapi jika saya menggunakan versi klien sebelumnya, saya mendapatkan jawaban yang bagus:

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

Tampaknya menjadi pengaturan proxy ( HTTP_PROXYdan HTTPS_PROXYvariabel digunakan di server ini), dan saya bisa menyelesaikan masalah dengan mengatur NO_PROXYvariabel:

$ 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

Apakah Anda tahu dari mana masalah ini sebenarnya berasal? Dan bagaimana cara mengatasinya dengan bersih ?

aveuiller
sumber

Jawaban:

7

Ini adalah fitur 1.5 baru, seorang pria dari buruh pelabuhan (@icecrime di twitter) telah mengkonfirmasi itu. dokumentasi ini mutakhir: https://github.com/docker/docker/pull/10192/files

Jadi Anda tidak harus menyelesaikannya dengan bersih. Ini adalah cara yang tepat untuk menggunakan buruh pelabuhan di belakang proxy.

François SAMIN
sumber
Ini bukan fitur, ini bug dan sudah diperbaiki di versi 1.6.0 - lihat jawaban saya.
Piotr Dobrogost
Jelas "fitur" semacam ini belum dihargai oleh pengguna dan telah diperbaiki dengan cara yang benar di 1.6.0 ( github.com/docker/docker/pull/10739 ) yang padam kemarin.
François SAMIN
5

Apakah Anda tahu dari mana masalah ini sebenarnya berasal?

Masalahnya berasal dari kenyataan bahwa buruh pelabuhan tidak perlu (orang dapat berdebat dengan keliru) mencoba menggunakan proxy (jika ditentukan oleh HTTP_PROXYatau HTTPS_PROXYvariabel lingkungan) untuk mengakses soket domain unix lokal di /var/run/docker.sock.

Dan bagaimana cara mengatasinya dengan bersih?

Ini diperbaiki di versi 1.6.0 dengan tidak mencoba menggunakan proxy dalam kasus ini. Akibatnya tidak perlu untuk menambahkan /var/run/docker.sockke NO_PROXYvariabel lingkungan lagi.

Piotr Dobrogost
sumber