vấn đề với docker


32

Tôi đang cố gắng tìm hiểu về "Docker" trong ubfox 15.04.

Khi tôi đưa ra bất kỳ lệnh nào bằng cách sử dụng docker như "docker run image", nó sẽ gặp lỗi sau:

FATA[0000] Post http:///var/run/docker.sock/v1.17/containers/create: dial unix /var/run/docker.sock: no such file or directory. Are you trying to connect to a TLS-enabled daemon without TLS?

Tôi không hiểu ý nghĩa của nó.


5
Tôi đã nhận được thông báo lỗi này và sau đó bắt đầu daemon với sudo service docker start. Sau đó tôi đã có thể chạy sudo docker run hello-world. Chúc may mắn.
shellter

Câu trả lời:


31

Có hai lý do có thể khiến bạn gặp lỗi này:

  1. Trình nền Docker không chạy. Bạn có thể kiểm tra xem vớisudo /etc/init.d/docker status .

  2. Trình nền Docker đang chạy nhưng được cấu hình để không nghe /var/run/docker.sock. Bạn có thể kiểm tra /etc/default/dockernếu bất kỳ -Htùy chọn được chỉ định trong DOCKER_OPTS.


3
+1. Tôi chỉ phải sử dụng $ sudo service docker statuskể từ khi có$ sudo /etc/init.d/docker status * Docker is managed via upstart, try using service docker status
IsaacS

Sau khi chạy sudo /etc/init.d/docker status, tôi nhận ra rằng dịch vụ docker đã ngừng hoạt động. Tôi chạy sudo /etc/init.d/docker start, sau đó tôi có thể chạy hình ảnh docker của tôi.
Halil

Có vẻ / etc / default / docker không còn hữu ích trên systemd (Ubuntu 16.04+). BTW trên systemd cách chính tắc để kiểm tra trạng thái daemon sẽ là sudo systemctl status docker.
Pablo A

38

Sau khi cài đặt Docker, bạn được nhắc thêm người dùng của mình vào nhóm docker. Đơn giản chỉ cần chạy lệnh được hiển thị:

sudo usermod -aG docker $USER

Bạn sẽ cần phải đóng phiên của mình và đăng nhập lại để thay đổi có hiệu lực.


có lẽ là đơn giản nhất Tôi không biết nếu nó hoạt động, mặc dù (được sử dụng @ decebal's).
Yair Daon

Tôi đã không nhận được lời nhắc này. Tôi đang trên Raspberry Pi.
IgorGanapolsky

Để thêm bản thân vào nhóm docker sau, hãy chạy sudo usermod -a -G docker <user>. Xem ở đây để biết thêm.
Hugh W

3
Nhấn mạnh vào "đóng phiên của bạn" - cảm ơn!
Dolan Antenucci

Trên Ubuntu 18.04 với Gnome, tôi đã phải khởi động lại hệ thống để nó hoạt động. Chỉ cần đăng xuất và đăng nhập lại không hoạt động: /
Zoltán

15

Hãy thử khởi động lại hệ điều hành của bạn sau khi docker được cài đặt để áp dụng quyền của nhóm, nếu người dùng của bạn tham gia nhóm docker ..

Cập nhật:

Khi Docker cài đặt trên Ubuntu 14.04, trình cài đặt sẽ giới thiệu những gì người dùng của bạn thêm vào nhóm Docker để truy cập Dịch vụ Docker.

Nhìn vào

Trình nền của docker liên kết với một ổ cắm Unix thay vì cổng TCP. Theo mặc định, ổ cắm Unix được sở hữu bởi người dùng root và những người dùng khác có thể truy cập nó bằng sudo. Vì lý do này, docker daemon luôn chạy như người dùng root. Để tránh phải sử dụng sudo khi bạn sử dụng lệnh docker, hãy tạo một nhóm Unix có tên là docker và thêm người dùng vào nó. Khi trình nền của docker khởi động, nó làm cho quyền sở hữu của ổ cắm Unix được đọc / ghi bởi nhóm docker.

nguồn: https://docs.docker.com/installation/ubuntulinux/#create-a-docker-group


2
Bạn nên giải thích tại sao điều này sẽ giúp.
guntbert

1
@guntbert Tôi đã cập nhật câu trả lời của mình ..
MURATSPLAT

@MURATSPLAT, qbi, gunbert Cảm ơn tôi đã tìm ra giải pháp
rishi kant

Để làm cho sự thay đổi quyền của nhóm có hiệu lực. Bạn không cần phải khởi động lại. đăng xuất là đủ.
Tim Wu

@TimWu Trên Ubuntu 18.04 với Gnome, tôi đã phải khởi động lại hệ thống - chỉ cần đăng xuất và quay lại không hoạt động: /
Zoltán

10

Hãy thử sử dụng sudo docker imagesđể kiểm tra nếu có một container được gọi là<image> trong máy chủ của bạn không.

chạy docker run <image>sẽ khởi động một container được gọi <image>trong máy tính chủ của bạn, nếu máy tính chủ của bạn không có container này, thì docker sẽ tự động kéo một container có tên '' từ trung tâm kho lưu trữ giống như cách bạn chạydocker pull <image> . Sau đó, nếu nó vẫn không thể tìm thấy một hình ảnh gọi là '' thì nó sẽ hiển thị thông báo lỗi này.

bạn có thể thử thay thế để hello-worldxem docker có hoạt động trên máy tính của bạn không.

sudo docker run hello-world

Ngoài ra, bạn nên kiểm tra nếu bạn nên sử dụng sudo.


2
Nếu vấn đề là OP không sử dụng sudo, thì thông báo lỗi sẽ là "quyền bị từ chối" thay vì "không có tệp hoặc thư mục như vậy".
Andreas Veithen

1
Đúng, bạn đúng. Tôi đã thử nó, nếu người dùng không có quyền thì thông báo lỗi sẽ là:FATA[0000] Get http:///var/run/docker.sock/v1.18/containers/json: dial unix /var/run/docker.sock: permission denied. Are you trying to connect to a TLS-enabled daemon without TLS?
realhu

2
cố gắng cấp quyềnsudo usermod -a -G docker ec2-user
AB

4

Tôi tìm thấy bài viết này hữu ích: https://docs.docker.com/articles/systemd/ ; Tôi đã chạy nó trên nhiều môi trường và làm việc, hy vọng nó cũng giúp bạn


Câu trả lời chỉ liên kết không được coi là chấp nhận được. Hãy xác nhận câu trả lời của bạn để được hoàn thành.
Flimzy

2
Trong khi về mặt lý thuyết có thể trả lời câu hỏi, tốt hơn là nên bao gồm các phần thiết yếu của câu trả lời ở đây và cung cấp liên kết để tham khảo.
Mitch

1
Liên kết systemd đó dường như đã chết. Đây là một liên kết khác docs.docker.com/engine/admin/systemd
wsams 15/03/2017

2

Tôi nhận được một tin nhắn tương tự trong khi cố gắng kéo một hình ảnh. Tôi chỉ cần làm sudo suvà sau đó có thể kéo hình ảnh thành công.


2
Chào mừng bạn đến hỏi Ubuntu! Tôi khuyên bạn nên chỉnh sửa câu trả lời này để mở rộng nó với các chi tiết cụ thể về cách thực hiện việc này. (Xem thêm Làm thế nào để tôi viết một câu trả lời hay? Để có lời khuyên chung về loại câu trả lời nào được coi là có giá trị nhất trên Hỏi Ubuntu.) Tuy nhiên, hãy lưu ý rằng việc chạy Docker với tư cách là siêu người dùng, đã được đề xuất nhiều lần.
David Foerster

tôi có giải pháp cho vấn đề của tôi
rishi kant
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.