masalah dengan buruh pelabuhan

32

Saya mencoba belajar tentang "Docker" di ubuntu 15.04.

Ketika saya memberikan perintah apa pun menggunakan buruh pelabuhan seperti "buruh pelabuhan menjalankan gambar", itu mendapatkan kesalahan berikut:

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?

Saya tidak mengerti apa artinya.

rishi kant
sumber
5
Saya mendapatkan pesan kesalahan ini dan kemudian memulai daemon dengan sudo service docker start. Kemudian saya bisa berlari sudo docker run hello-world. Semoga berhasil.
shellter

Jawaban:

31

Ada dua kemungkinan alasan mengapa Anda mendapatkan kesalahan ini:

  1. Daemon Docker tidak berjalan. Anda dapat memeriksa bahwa dengan sudo /etc/init.d/docker status.

  2. Daemon Docker sedang berjalan tetapi dikonfigurasikan untuk tidak mendengarkan /var/run/docker.sock. Anda dapat check in /etc/default/dockerjika ada -Hopsi yang ditentukan di DOCKER_OPTS.

Andreas Veithen
sumber
3
+1. Saya hanya harus menggunakan $ sudo service docker statussejak saya mendapat$ sudo /etc/init.d/docker status * Docker is managed via upstart, try using service docker status
IsaacS
Setelah berjalan sudo /etc/init.d/docker status, saya menyadari bahwa layanan buruh pelabuhan sedang down. Saya berlari sudo /etc/init.d/docker start, lalu saya bisa menjalankan gambar buruh pelabuhan saya.
Halil
Sepertinya / etc / default / docker tidak berguna lagi di systemd (Ubuntu 16.04+). BTW pada systemd cara kanonik untuk memeriksa status daemon akan sudo systemctl status docker.
Pablo A
38

Setelah menginstal Docker Anda diminta untuk menambahkan pengguna Anda ke grup docker. Cukup jalankan perintah yang ditunjukkan:

sudo usermod -aG docker $USER

Anda harus menutup sesi Anda dan masuk lagi agar perubahan diterapkan.

Samoht
sumber
mungkin yang paling sederhana. Saya tidak tahu apakah itu berhasil, meskipun (bekas @ decebal) menjawab.
Yair Daon
Saya tidak mendapatkan prompt ini. Saya menggunakan Raspberry Pi.
IgorGanapolsky
Untuk menambahkan diri Anda ke grup buruh pelabuhan nanti, jalankan sudo usermod -a -G docker <user>. Lihat di sini untuk info lebih lanjut.
Hugh W
3
Tekankan "tutup sesi Anda" - terima kasih!
Dolan Antenucci
Di Ubuntu 18.04 dengan Gnome, saya harus memulai ulang sistem agar ini berfungsi. Hanya logout dan kembali tidak berfungsi: /
Zoltán
15

Cobalah untuk me-reboot os Anda setelah buruh pelabuhan diinstal untuk menerapkan izin grup, jika pengguna Anda bergabung dengan grup buruh pelabuhan.

Memperbarui:

Ketika Docker menginstal di ubuntu 14.04, penginstal merekomendasikan apa yang ditambahkan pengguna Anda ke grup Docker untuk mengakses Layanan Docker.

Melihat

Daemon docker mengikat ke soket Unix, bukan ke port TCP. Secara default soket Unix dimiliki oleh root pengguna dan pengguna lain dapat mengaksesnya dengan sudo. Karena alasan ini, docker daemon selalu berjalan sebagai pengguna root. Untuk menghindari keharusan menggunakan sudo saat Anda menggunakan perintah buruh pelabuhan, buat grup Unix yang disebut buruh pelabuhan dan tambahkan pengguna ke dalamnya. Ketika daemon buruh pelabuhan mulai, itu membuat kepemilikan soket Unix dibaca / ditulis oleh kelompok buruh pelabuhan.

sumber: https://docs.docker.com/installation/ubuntulinux/#create-a-docker-group

MURATSPLAT
sumber
2
Anda harus menjelaskan mengapa ini akan membantu.
guntbert
1
@ guntbert Saya telah memperbarui jawaban saya ..
MURATSPLAT
@MURATSPLAT, qbi, gunbert Terima kasih saya menemukan solusinya
rishi kant
Untuk membuat efek perubahan izin grup. Anda tidak perlu reboot. logout sudah cukup.
Tim Wu
@ TimWu Pada Ubuntu 18.04 dengan Gnome, saya harus memulai ulang sistem - hanya logout dan kembali tidak bekerja: /
Zoltán
10

coba gunakan sudo docker imagesuntuk memeriksa apakah ada wadah yang dipanggil <image>inang Anda.

menjalankan docker run <image>akan memulai sebuah wadah yang disebut <image>di komputer host Anda, jika komputer host Anda tidak memiliki wadah ini, maka buruh pelabuhan akan secara otomatis menarik wadah bernama '' dari hub repositori seperti cara Anda menjalankan docker pull <image>. Kemudian jika masih tidak dapat menemukan gambar yang disebut '' maka itu akan menampilkan pesan kesalahan ini.

Anda dapat mencoba mengganti hello-worlduntuk melihat apakah buruh pelabuhan bekerja di komputer Anda.

sudo docker run hello-world

Juga, Anda harus memeriksa apakah Anda harus menggunakan sudo.

realhu
sumber
2
Jika masalahnya adalah OP tidak menggunakan sudo, maka pesan kesalahannya adalah "izin ditolak" alih-alih "tidak ada file atau direktori".
Andreas Veithen
1
Yap, kamu benar. Saya mencobanya, jika pengguna tidak memiliki izin pesan kesalahannya adalah: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
cobalah untuk memberikan izinsudo usermod -a -G docker ec2-user
AB
4

Saya menemukan artikel ini bermanfaat: https://docs.docker.com/articles/systemd/ ; Saya menjalankannya di beberapa lingkungan dan bekerja, semoga membantu Anda juga

Decebal
sumber
Jawaban hanya tautan tidak dianggap dapat diterima. Silakan menyempurnakan jawaban Anda menjadi lengkap.
Flimzy
2
Sementara ini secara teoritis dapat menjawab pertanyaan, akan lebih baik untuk memasukkan bagian-bagian penting dari jawaban di sini, dan menyediakan tautan untuk referensi.
Mitch
1
Tautan systemd itu tampaknya sudah mati. Berikut tautan lain docs.docker.com/engine/admin/systemd
wsams
2

Saya mendapat pesan serupa ketika mencoba menarik gambar. Saya baru saja melakukan sudo sudan kemudian berhasil menarik gambar.

Omar Ahmed
sumber
2
Selamat Datang di Tanya Ubuntu! Saya sarankan untuk mengedit jawaban ini untuk meluaskannya dengan detail spesifik tentang bagaimana melakukan ini. (Lihat juga Bagaimana cara saya menulis jawaban yang baik? Untuk saran umum tentang jenis jawaban apa yang dianggap paling berharga di Ask Ubuntu.) Namun, perlu diketahui bahwa menjalankan Docker sebagai pengguna super, telah disarankan beberapa kali.
David Foerster
saya mendapat solusi dari masalah saya.
rishi kant