Docker daemon trả lời 'Không tìm thấy trang 404' sau khi cập nhật


11

Gần đây tôi đã cập nhật docker của mình từ 1,4 lên 1,5 (với gói lxc_docker).

Kể từ đó, docker daemon sẽ gửi một lỗi như thế này (cho mỗi lệnh):

$ 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 

Nhưng nếu tôi sử dụng phiên bản trước của khách hàng, tôi sẽ nhận được câu trả lời tốt:

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

Có vẻ như là cài đặt proxy ( HTTP_PROXYHTTPS_PROXYcác biến được sử dụng trên máy chủ này) và tôi có thể giải quyết vấn đề bằng cách đặt NO_PROXYbiến:

$ 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

Bạn có biết vấn đề này thực sự đến từ đâu không? Và làm thế nào để giải quyết nó một cách sạch sẽ ?

Câu trả lời:


7

Đó là một tính năng 1.5 mới, một anh chàng từ docker (@icecrime trên twitter) đã xác nhận nó. tài liệu được cập nhật: https://github.com/docker/docker/pull/10192/files

Vì vậy, bạn không cần phải giải quyết nó một cách sạch sẽ. Đây là cách đúng để sử dụng docker phía sau proxy.


Đây không phải là một tính năng, đó là một lỗi và nó đã được sửa trong phiên bản 1.6.0 - xem câu trả lời của tôi.
Piotr Dobrogost

Rõ ràng loại "tính năng" này đã không được người dùng đánh giá cao và đã được sửa theo đúng cách trong 1.6.0 ( github.com/docker/docker/pull/10739 ) ra mắt ngày hôm qua.
François SAMIN

5

Bạn có biết vấn đề này thực sự đến từ đâu không?

Vấn đề xuất phát từ việc docker không cần thiết (người ta có thể tranh luận một cách sai lầm) cố gắng sử dụng proxy (nếu được chỉ định bởi HTTP_PROXYhoặc HTTPS_PROXYbiến môi trường) để truy cập vào ổ cắm miền unix cục bộ tại /var/run/docker.sock.

Và làm thế nào để giải quyết nó một cách sạch sẽ?

Điều này đã được sửa trong phiên bản 1.6.0 bằng cách không cố gắng sử dụng proxy trong trường hợp này. Kết quả là không cần phải thêm /var/run/docker.sockvào NO_PROXYbiến môi trường nữa.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.