Tidak dapat terhubung ke daemon Docker di unix: /var/run/docker.sock. Apakah daemon buruh pelabuhan berjalan?

172

Saya telah menerapkan setiap solusi yang tersedia di internet tetapi saya masih tidak dapat menjalankan Docker.

Saya ingin menggunakan Scrapy Splash di server saya.

Berikut adalah historyperintah yang saya jalankan.

docker run -p 8050:8050 scrapinghub/splash
sudo docker run -p 8050:8050 scrapinghub/splash
sudo usermod -aG docker $(whoami)
sudo docker run -p 8050:8050 scrapinghub/splash
newgrp docker
sudo docker run -p 8050:8050 scrapinghub/splash
reboot
sudo docker run -p 8050:8050 scrapinghub/splash
docker run -p 8050:8050 scrapinghub/splash

Anda dapat melihat saya mencoba me-restart server saya juga, tetapi tidak membantu.

lihat output dari ps -aux | grep docker

root@mani:/var/www/html# ps aux | grep docker
root      8524  0.0  0.8 127904 13964 ?        Ssl  17:21   0:00 /usr/bin/dockerd --raw-logs
root      8534  0.0  0.3  90588  5012 ?        Ssl  17:21   0:00 docker-containerd -l unix:///var/run/docker/libcontainerd/docker-containerd.sock --metrics-interval=0 --start-timeout 2m --state-dir /var/run/docker/libcontainerd/containerd --shim docker-containerd-shim --runtime docker-runc
root      8543  0.0  0.0   8812   764 pts/1    S+   17:21   0:00 grep --color=auto docker
root     16356  0.0  0.0  17200   964 pts/1    S    17:14   0:00 newgrp docker
root     20080  0.0  0.0  17200   964 pts/1    S    17:06   0:00 newgrp docker
root     30221  0.0  0.0  17200   964 pts/1    S    17:09   0:00 newgrp docker
Umair Ayub
sumber
Jika Anda menjalankan ps aux | grep docker, apakah Anda melihat proses daemon berjalan?
Rome_Leader
Kemungkinan rangkap: stackoverflow.com/questions/21871479/…
BMitch
@Rome_Leader melihat output dalam pertanyaan saya ...
Umair Ayub
3
coba ini: sudo service docker restart
Haythem ROUIS
2
Anda dapat melihat status Anda buruh pelabuhan menggunakan ini: sudo service docker statusperiksa apakah aktif
Haythem ROUIS

Jawaban:

161

Anda dapat mencoba ini:

systemctl start docker

Ini bekerja dengan baik untukku.

PS: setelah jika ada perintah yang tidak dapat Anda lakukan tanpa sudo, coba ini:

gpasswd -a $USER docker
H.Gmz
sumber
10
Menjalankan perintah pertama, saya mendapat kesalahan: Failed to start docker.service: Unit docker.service is masked.Jadi, saya harus menjalankan yang berikut: systemctl unmask docker.service systemctl unmask docker.socket systemctl start docker.service
Chris Phan
50

Anda bisa mendapatkan kesalahan ini jika buruh pelabuhan tidak dimatikan dengan bersih. Jawaban berikut adalah untuk paket snap docker.

Jalankan snap logs dockerdan cari yang berikut ini:

Error starting daemon: pid file found, ensure docker is not running or delete /var/snap/docker/179/run/docker.pid

Menghapus file itu dan memulai kembali docker berfungsi untuk saya.

rm /var/snap/docker/<your-version-number>/run/docker.pid
snap stop docker
snap start docker

Pastikan untuk mengganti <your-version-number>‍dengan nomor versi yang sesuai.

niklas
sumber
Bagaimana saya bisa mencegah hal ini terjadi? Setiap kali saya menyalakan PC saya, saya harus menghapus docker.pid!
Hamidreza
47

Lari saja

sudo dockerd

dockerd adalah layanan daemon untuk kontainer buruh pelabuhan, karena tidak berjalan di latar belakang kami tidak dapat mengambil tindakan apa pun yang terkait dengan layanan ini, yang perlu dimulai kembali.

Yash Pokar
sumber
10
Ini adalah satu-satunya perintah yang berfungsi untuk saya. Saya pikir itu konyol bahwa kita harus melompati begitu banyak simpai untuk membuat Docker berdiri dan berlari.
Homunculus Reticulli
3
Ini memberi saya kesalahanError starting daemon: Devices cgroup isn't mounted
Vineet 'DEVIN' Dev
@fepegar Mungkin Anda tidak memiliki buruh pelabuhan yang terpasang dengan benar
Yash Pokar
@YashPokar memang, saya akhirnya menginstal ulang dan sekarang semuanya berfungsi seperti yang diharapkan. Terima kasih.
fepegar
Hanya perintah yang berfungsi untuk saya di dalam wadah buruh pelabuhan untuk memulai wadah buruh pelabuhan. Membutuhkannya untuk codebuild, untuk membuat lingkungan saya sendiri saat membangun. :-)
Kami adalah Borg
21

Pertama, coba dengan sudo , karena pengguna saat ini mungkin tidak memiliki izin akses untuk berkomunikasi dengan buruh pelabuhan yaitu /var/run/docker.sock

Jika masih tidak berfungsi, maka, setelah instalasi, cukup hentikan daemon docker sebagai,

$ sudo service docker stop

Dan, jalankan perintah berikut untuk memulai daemon di latar belakang,

$ sudo nohup docker daemon -H tcp://0.0.0.0:2375 -H unix:///var/run/docker.sock

Untuk membuat bekerja dengan Docker lebih mudah, Anda harus menambahkan nama pengguna Anda ke grup pengguna Docker. Menambahkan pengguna ke grup dapat dilakukan dengan perintah di bawah ini

$ sudo usermod -aG docker $USER

Juga, langkah ini disebutkan di dokumentasi resmi tentang langkah-langkah Pasca-instalasi buruh pelabuhan untuk Linux ( https://docs.docker.com/engine/installation/linux/linux-postinstall/ )

Pengguna Ubuntu 16.04 dapat mengikuti langkah-langkah ini,

Di dalam file /lib/systemd/system/docker.service berubah: ExecStart = / usr / bin / dockerd fd: // dengan ExecStart = / usr / bin / dockerd -H tcp: //0.0.0.0: 2375

Di dalam file /etc/init.d/docker ubah:

DOCKER_OPTS = dengan DOCKER_OPTS = "- H **** tcp: //0.0.0.0: 2375 "

dan kemudian restart mesin Anda. Dan, mulailah bermain dengan buruh pelabuhan.

mohan08p
sumber
1
running sudo nohup docker daemon -H http://tcp://0.0.0.0:2375 () -H http://unix:///var/run/docker.sockmemberi bash: syntax error near unexpected token ('`
Umair Ayub
1
Saya menjalankan redhat linux
Umair Ayub
ohh maaf. Karakter ekstra (), diperbarui. Versi RHEL yang mana? Cukup periksa nilai apa yang Anda dapatkan dengan $ DOCKER_HOST?
mohan08p
$ sudo systemctl memungkinkan buruh pelabuhan untuk memulai layanan buruh pelabuhan saat boot.
mohan08p
Saya sekarang mencoba menginstal Docker di CentOS Linux release 7.3.1611 (Core)... Tapi sekarang kesalahannya adalah Your Linux kernel version 2.6.32-042stab116.2 is not supported for running docker. Please upgrade your kernel to 3.10.0 or newer.... bisakah saya memperbarui kernel menggunakan yum update kernel... ???? pertanyaannya adalah, apakah akan menghapus semua yang ada di server saya? ini adalah server langsung dengan situs web yang berjalan di atasnya, saya tidak ingin mengacaukannya.
Umair Ayub
9

Ini biasanya terjadi jika Anda belum menghentikan buruh pelabuhan.

Untuk menyelesaikan

service docker stop
cd /var/run/docker/libcontainerd
rm -rf containerd/*
rm -f docker-containerd.pid
service docker start

lalu "buruh pelabuhan jalankan ...." untuk mengunduh gambar Anda dan memulai wadah seperti biasa

Anigbo yang tidak bersalah
sumber
8

Saya baru saja mencapai ini setelah melakukan instalasi baru DOCKER dari dokumen utama. Masalahnya bagi saya adalah segera setelah instalasi, layanan tidak berjalan.

Perintah-perintah ini akan membantu Anda untuk memastikan buruh pelabuhan sudah siap dan menjalankan untuk menjalankan perintah Anda untuk menemukannya:

$ sudo service --status-all 
$ sudo service docker start
$ sudo service docker start
Paul McDaniel
sumber
7

Saya menjalankan root dan mencoba di bawah, ini berhasil:

service docker start

export DOCKER_HOST="tcp://0.0.0.0:2375"
pengguna11500628
sumber
3
Jika ini berfungsi pada host Anda, maka Anda secara efektif tidak memiliki kata sandi root. Siapa pun yang memiliki akses ke port itu dapat menjalankan perintah sebagai root pada host Anda.
BMitch
6

Saya punya masalah ini setelah menutup buruh pelabuhan akan menarik wadah docker pull mongo. Pada awalnya saya mendapatkan kesalahan aneh jadi saya membersihkan buruh pelabuhan sudo apt-get purge docker.iodan menginstal ulang sudo apt-get install docker.io... semua ini tidak melakukan apa-apa. Aku bahkan tidak bisa menjalankan wadah hello-world. Perbaikan yang benar bagi saya setidaknya adalah:

systemctl unmask docker.service
systemctl unmask docker.socket
systemctl start docker.service

Setelah ini saya bisa menarik mongo dan menjalankan hello world.

Bersulang!

Jonathan Saylor
sumber
Saya harus melakukannya dengan Sudo di Ubuntu 18,04
Basanth
4

inilah solusi yang bekerja untuk saya di Linux

systemctl start docker.

Mohammad Heydari
sumber
2

gunakan ini di ekspor ubuntu DOCKER_HOST = tcp: // localhost: 2375

Yash Keshri
sumber
Jika ini berfungsi pada sistem Anda, maka Anda secara efektif tidak memiliki kata sandi root. Siapa pun yang memiliki akses ke port tersebut dapat menjalankan perintah sebagai root pada host.
BMitch
2

export DOCKER_HOST = tcp: // localhost: 2375 sangat cocok untuk siapa saja yang tidak memiliki akses sudo dan pengguna tidak memiliki akses ke unix: ///var/run/docker.sock

Mantas Marma
sumber
Ini juga berguna untuk siapa saja yang biasanya tidak memiliki akses root tetapi ingin dengan mudah menjadi root pada host Anda. Siapa pun yang memiliki akses ke port itu dapat menjalankan perintah sebagai root.
BMitch
@BMitch peduli untuk menjelaskan?
Fran Marzoa
@FranMarzoa dari pengguna lain yang tidak Anda percayai, atau bahkan host lain, Anda dapat menjalankan docker runperintah apa pun dengan pengguna root di dalam wadah, diistimewakan, dengan ruang nama host pada pid dan jaringan, dan memasang sistem file root ok pada kotak.
BMitch
2

Saya mencoba menjalankan buruh pelabuhan (baru saja diinstal) dalam instance AWS ketika pesan muncul. Saya hanya menulissudo service docker start dan bekerja dengan baik untuk saya.

Juga lihat AWS dengan Docker

dmarquina
sumber
2

masukkan deskripsi gambar di sini

Saya hanya lupa menjalankan Docker Desktop di mac saya, setelah menjalankan Docker Desktop, Anda akan baik-baik saja.

Ping Woo
sumber
2

Pengecualian ini terjadi ketika layanan buruh pelabuhan tidak berjalan atau pengguna yang masuk tidak memiliki izin untuk mengakses buruh pelabuhan dan umumnya datang di RedHat

Menggunakan perintah di bawah ini harus menyelesaikan masalah

mulai layanan buruh pelabuhan sudo

masukkan deskripsi gambar di sini

Sumit Arora
sumber
2

Ini bekerja untuk saya:

sudo systemctl unmask docker
sudo systemctl start docker
Md. Rakibul Islam
sumber
bekerja untukku. Terima kasih.
ncesar
1

Saya memiliki masalah yang sama untuk menjalankan gitlab CI node: lts image:

  • Saya baru saja me-restart daemon buruh pelabuhan dan me-restart wadah, itu berhasil untuk saya.
akshaymittal143
sumber
1

Ini bekerja untuk saya, Ini mungkin hanya bekerja untuk Anda jika Anda menggunakan Ubuntu 16 atau 18 (14 mungkin juga berfungsi). Mudah dicoba:

Buka Perangkat Lunak Ubuntu, ketikkan Docker. Copot pemasangan docker (108 mb) jika sudah diinstal di sana. Instal docker Sekarang jalankan perintah dan lihat apakah ada kesalahan yang sama

Kesalahan:

masukkan deskripsi gambar di sini

Setelah melakukan langkah-langkah di atas. masukkan deskripsi gambar di sini

Seperti yang Anda lihat, itu berhasil :)

Ashish Gupta
sumber
1

Saya menghadapi masalah yang sama di Linux ketika saya menginstal buruh pelabuhan menggunakan yum (yum install docker).

Penyelesaian: unduh biner buruh pelabuhan dari situs resmi: buruh pelabuhan pasang , buka paket dan ikuti langkah-langkah instalasi.

Denys
sumber
1

Tidak ada jawaban saat ini yang berfungsi untuk versi kesalahan saya ini. Saya menggunakan versi desktop Ubuntu 18. Dua perintah berikut memperbaiki masalah ini.

sudo snap connect docker:home :home

sudo snap start docker

Eric
sumber
0

Bagi saya solusinya adalah memastikan saya telah menginstal paket Docker yang benar. Sebagai contoh, untuk Ubuntu paket yang didepresiasi adalah:

  • buruh pelabuhan
  • mesin buruh pelabuhan
  • docker.io
  • mengandungerd
  • guncangan

Untuk instalasi, periksa https://docs.docker.com . Petunjuk disediakan untuk Ubuntu , CentOS , Debian dan Fedora pada saat penulisan.

RIKH
sumber
Anda melewatkan beberapa langkah: ikuti tautan ini untuk menandatangani repo. medium.com/@sebagomez/…
Robert
@ Robert, di atas saya juga merujuk ke docs.docker resmi untuk mendapatkan kunci PGP. Ini lebih aman daripada pengguna menyalinnya dari situs atau media ini.
RikH
Saya mencoba langkah-langkah ubuntu dan itu tidak berfungsi. Butuh proses penandatanganan dan tautan yang saya berikan.
Robert
@ Robert, terima kasih saya telah menghapus instruksi saya yang tidak lengkap dan sebagai gantinya hanya merujuk pada dokumentasi resmi.
RikH
0

Pastikan informasi di jalur ini /etc/docker/daemon.json

{
  "registry-mirror": [
    "https://registry.docker-cn.com"
  ],
  "insecure-registries": [
    "192.168.199.100:5000"
  ]
}

menghapus

"insecure-registries": [
    "192.168.199.100:5000"
]

dan berjalan dengan baik masukkan deskripsi gambar di sini

chao chen
sumber
0

Ini bisa terkait dengan tidak ada ruang disk yang tersisa di hard drive. Pastikan Anda memiliki ruang yang tersisa di perangkat, Docker tidak dapat memulai jika tidak ada ruang yang tersisa.

K - Toksisitas dalam SO meningkat.
sumber
0

Menggunakan docker start <your_container_name>

Kemudian hubungkan ke database dengan menggunakan mssql -u <yourUsername> -p <yourPassword>

Jika Anda mendapatkan kesalahan di langkah pertama maka buruh pelabuhan sedang berjalan dan pergi dengan langkah kedua.

Catatan: Saya menggunakan Mac sebagai OS utama saya dan ini mungkin jawaban yang sama untuk OS berbasis Unix. Jika tidak! Maaf sebelumnya

Pavankumar AN
sumber
0

Saya juga menerima pesan kesalahan di bawah ini, setelah menginstal buruh pelabuhan dan menjalankan: buruh pelabuhan menjalankan hello-world

Tidak dapat terhubung ke daemon Docker di unix: /var/run/docker.sock. Apakah daemon buruh pelabuhan berjalan?

Inilah solusinya, apa yang berhasil untuk saya. Lingkungan - Windows 10 (Jangan lupa untuk mengaktifkan di windows: Pengaturan> Pembaruan dan Keamanan> Mode Pengembang) - Ubuntu 18.04 LTS - Docker Desktop versi 2.3.0.2 (45183) - Aktifkan di Docker Desktop: Eksposisi daemon di tcp: // localhost: 2375 tanpa TLS - Docker Desktop juga harus berjalan (terhubung ke Docker Hub ... masuk saja)

Setelah menginstal ubuntu, perbarui repositori

sudo apt-get pembaruan

Untuk menggunakan repositori melalui HTTPS

sudo apt-get install \ apt-transport-https \ ca-sertifikat \ curl \ gnupg-agent \ software-properties-common

Tambahkan kunci GPG Docker resmi:

curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -

Pastikan Anda sekarang memiliki kunci dengan sidik jari

sudo apt-key fingerprint 0EBFCD88

Perbarui repositori

sudo apt-get pembaruan

Perbarui repositori buruh pelabuhan

sudo add-apt-repository \ "deb [arch = amd64] https://download.docker.com/linux/ubuntu \ $ (lsb_release -cs) \ stable"

Perbarui repositori lagi

sudo apt-get pembaruan

Perintah untuk menginstal buruh pelabuhan dalam versi: 5: 18.09.9 ~ 3-0 ~ ubuntu-bionic

sudo apt-get install docker-ce = 5: 18.09.9 ~ 3-0 ~ ubuntu-bionic docker-ce-cli = 5: 18.09.9 ~ 3-0 ~ ubuntu-bionic containerd.io

Perintah untuk mengatur DOCKER_HOST

export DOCKER_HOST = "tcp: //0.0.0.0: 2375"

Catatan: tulis perintah di atas di profil Anda untuk memulai dengan ubunto ex: echo "export DOCKER_HOST = 'tcp: //0.0.0.0: 2375'" >> ~ / .bashrc

Tambahkan pengguna ke grup buruh pelabuhan

sudo usermod -aG buruh pelabuhan $ USER

Mulai ulang ubuntu

(Tutup dan buka kembali jendela ubuntu)

Menguji instalasi (JANGAN menggunakan lebih banyak sudo sebelum perintah buruh pelabuhan (itu akan memberikan kesalahan), "root" pengguna sudah termasuk dalam kelompok buruh pelabuhan)

buruh pelabuhan menjalankan hello-world

Pesan di bawah ini harus ditampilkan

Halo dari Docker! Pesan ini menunjukkan bahwa instalasi Anda tampaknya berfungsi dengan benar.

Catatan: jika gagal, jalankan perintah lagi: export DOCKER_HOST = "tcp: //0.0.0.0: 2375"

export DOCKER_HOST = "tcp: //0.0.0.0: 2375"

Referensi: https://docs.docker.com/engine/install/ubuntu/ Sesi: INSTALL DOCKER ENGINE

Untuk versi lain dari buruh pelabuhan yang dapat diinstal dengan ubuntu, lihat repositori menggunakan perintah di bawah ini:

apt-cache madison docker-ce

Kemudian instal versi buruh pelabuhan yang diinginkan:

sudo apt-get install docker-ce = docker-ce-cli = berisierd.io

ukaliko
sumber
0

Untuk semua orang yang mengalami masalah dengan Docker pada saat instalasi.

Kesalahan yang menunjukkan kegagalan dalam layanan buruh pelabuhan, lakukan perintah di bawah ini.

$ sudo apt update

$ sudo apt install apt-transport-https ca-certificates curl gnupg2 software-properties-common

$ curl -fsSL https://download.docker.com/linux/debian/gpg | sudo apt-key add -

$ sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/debian $(lsb_release -cs) stable"

$ sudo apt update

$ apt-cache policy docker-ce

$ sudo apt install docker-ce
Hisyam Javed
sumber
-1

Masalah ini dapat diselesaikan secara permanen dengan menjalankan 1. systemctl mengaktifkan buruh pelabuhan 2. layanan buruh pelabuhan mulai

JV Reddy
sumber
Sepertinya saya perlu memulai layanan buruh pelabuhan dengan service start dockersetiap kali saya reboot komputer.
Pran Kumar Sarkar
@PranKumarSarkar Tidak jika Anda menjalankan "sudo systemctl enable docker"
GabrielBB