Saya mendapatkan pesan kesalahan yang mengatakan saya tidak dapat terhubung ke daemon buruh pelabuhan. Saya telah melihat jawaban orang lain yang memiliki masalah serupa tetapi tidak membantu. Saya menjalankan versi Ubuntu 15.10. Saya akan mencoba memberikan semua info yang saya miliki.
root@# docker-compose -f docker-compose-deps.yml up -d
ERROR: Couldn't connect to Docker daemon at http+docker://localunixsocket - is it running?
If it's at a non-standard location, specify the URL with the DOCKER_HOST environment variable.
Versi Docker
root@# sudo docker version
Client:
Version: 1.9.1
API version: 1.21
Go version: go1.4.2
Git commit: a34a1d5
Built: Fri Nov 20 13:20:08 UTC 2015
OS/Arch: linux/amd64
Cannot connect to the Docker daemon. Is the docker daemon running on this host?
Versi Docker-Compose
root@# docker-compose --version
docker-compose version 1.5.2, build 7240ff3
Inilah yang terjadi jika saya mencoba menghentikan atau memulai layanan ...
root@# sudo service docker stop
stop: Unknown instance:
root@# sudo service docker start
docker start/running, process 5375
Jika saya lari ps aux | grep docker
root@# ps aux | grep docker
root 4233 0.0 0.0 13692 2204 pts/15 S+ 10:27 0:00 grep --color=auto docker
Bantuan apa pun akan sangat dihargai. Beri tahu saya jika Anda mungkin memerlukan informasi lagi.
ubuntu
terminal
docker
docker-compose
daveskylark.dll
sumber
sumber
Jawaban:
Saya mengalami kesalahan yang sama, setelah 15 menit debugging. Ternyata yang dibutuhkan hanyalah a
sudo
:) Lihat [Buat grup Docker] di sini https://docs.docker.com/engine/installation/linux/ubuntulinux/ untuk menghilangkan prefiks sudo.sumber
sudo
ini hanya solusi / hack, menurut saya. karena bagian pembuatan grup tidak dijelaskan di sini, hanya tautan yang diberikan, dan konten tautan itu berubah, saya menganggap ini hanya tautan-jawaban, dan sekarang pada dasarnya tidak berguna (untuk bagian perbaikan yang sebenarnya). bisakah Anda menambahkan deskripsi tentang cara menambahkan grup itu?sudo
itu ide yang buruk juga. Lihat dokumen Docker untuk mengelola Docker sebagai pengguna non-root: docs.docker.com/engine/installation/linux/linux-postinstall/…sudo usermod -aG docker $USER
, dan itu akan berhasil setelahnya.Saya memiliki masalah ini dan tidak ingin mengacaukan semuanya dengan menggunakan
sudo
. Saat menyelidiki, saya mencoba mendapatkan beberapa info:Anehnya, saya mengalami kesalahan berikut:
Untuk beberapa alasan saya tidak memiliki cukup hak istimewa, perintah berikut menyelesaikan masalah saya:
Et voila!
sumber
docker.sock
grup non-root,docker
sebagai default. Tapi kita bisa mengubahnya dengan-G
flag selama daemon Docker dimulai. Dalam kasus saya, saya menambahkan grup untuk$USERNAME
, berarti menambahkan grup buruh pelabuhan, lalu reboot mesin saya (ubuntu 16.04, PC). Ini bekerja dengan baik. Dan ini direkomendasikan di docs of docker.Tampaknya masalah Anda disebabkan oleh bug Docker lama, di mana file soket tidak dibuat ulang setelah Docker rusak. Jika ini masalahnya, maka mengganti nama file soket harus memungkinkannya dibuat ulang:
Karena bug ini telah diperbaiki, kebanyakan orang yang mendapatkan kesalahan
Couldn't connect to Docker daemon
mungkin mendapatkannya karena mereka tidak berada dalamdocker
grup dan tidak memiliki izin untuk membaca file itu. Menjalankan dengansudo docker ...
akan memperbaikinya, tetapi bukan solusi yang bagus.Docker dapat dijalankan sebagai pengguna non-root (tanpa
sudo
) yang memiliki izin grup yang sesuai. Dokumen pasca-pemasangan Linux memiliki detailnya. Versi singkatnya:Ini memungkinkan pengguna dalam
docker
grup untuk menjalankandocker
dandocker-compose
tanpa perintahsudo
. Docker sendiri menjalankan root, memungkinkan beberapa serangan, jadi Anda masih perlu berhati-hati dengan container apa yang Anda jalankan. Lihat Dokumentasi Keamanan Docker untuk lebih jelasnya.sumber
Saya memiliki masalah yang sama. Setelah membuat catatan dan menganalisis beberapa hasil debugging, akhirnya, saya memecahkan apa yang bisa menjadi kesalahan yang sama. Mulai layanannya dulu,
service docker start
Jangan lupa untuk memasukkan pengguna Anda ke grup buruh pelabuhan.
sumber
sudo
diperbaiki untuk orang lain -_- Senang mengetahui bahwa memang begini, sehingga saya lupa melakukannya. Sangat sederhana!Anda harus menambahkan pengguna Anda ke grup "buruh pelabuhan" dengan sesuatu seperti:
sumber
Saya mendapat kesalahan ini ketika ada file di
Dockerfile
direktori yang tidak dapat diakses oleh pengguna saat ini.docker
karena itu tidak dapat mengunggah konteks lengkap ke daemon dan memunculkan pesan " Tidak dapat terhubung ke Docker daemon di http + docker: // localunixsocket ".sumber
docker build .
akan menghasilkan masalah izin.Salah satu cara untuk mengatasinya adalah dengan menambahkan pengguna Anda ke
docker
grup terlebih dahulu dengan menjalankan yang berikut iniPENTING: Ingatlah untuk keluar dari sistem Anda (bukan hanya terminal Anda) dan masuk kembali agar ini berlaku!
sumber
Dari keluaran "ps aux | grep docker", sepertinya daemon buruh pelabuhan tidak berjalan. Coba gunakan metode di bawah ini untuk melihat apa yang salah dan mengapa buruh pelabuhan tidak memulai
$ sudo tail -f /var/log/upstart/docker.log
$ sudo buruh pelabuhan -d -D
sumber
Dalam kasus saya, layanan buruh pelabuhan Anda mungkin dihentikan
Perintah untuk memulai layanan buruh pelabuhan:
$ sudo systemctl start docker
Perintah untuk memverifikasi jika dimulai:
$ sudo docker run hello-world
sumber
Alasan lain mengapa kesalahan ini dapat muncul: bagi saya itu adalah definisi jalur gambar yang salah di
docker-compose.yml
:Lookis ok'ish dulu, tapi saya sudah
CONTAINER_REGISTRY_BASE=eu.gcr.io/my-project/
set di env. Rupanya//
jalur gambar menyebabkan kesalahan ini.sumber
coba saja
sudo
. Sepertinya masalah izin!itu berhasil untuk saya.
sumber
Saya menggunakan Ubuntu 16.04 dan menemukan masalah ini juga ketika saya menggunakan docker-compose. Saya memperbaikinya dengan menjalankan perintah ini.
sumber
Apakah ada kemungkinan kecil Anda menghapus mesin default? Tapi, periksa dulu apakah semua file ada (OSX, serupa di sistem lain)
Juga, instal Aplikasi Docker, karena lebih mudah untuk memelihara kontainer:
ans mulai aplikasi Docker dari finder (tunggu hingga layanan sepenuhnya dimulai)
Kemudian, periksa penginstalan dengan:
jika tidak ada mesin dalam daftar, buat satu dan mulai:
Setelah ini, buat, buat, dan semua perintah lainnya harus berfungsi dengan baik.
sumber
dalam kasus saya itu karena izin ubuntu,
periksa izin oleh
jika mereka mencetak izin masalah, maka gunakan
sumber
Bagi saya perbaikannya adalah menginstal versi yang lebih baru (1.24) dari
docker-compose
menggunakan artikel ini .Versi sebelumnya (1.17) diinstal dari
ubuntu
repositori default, tetapi setelah menginstal versi yang lebih baru saya berhasil meluncurkan container. Semoga bisa membantu seseorang.sumber
Saya pikir itu karena hak akses, Anda hanya perlu menulis
sumber
Dalam kasus saya, ada kesalahan yang sama ketika saya mencoba
docker-compose build
dan solusi saya baru saja menambahkansudo
sumber
Saya menemukan ini dan tampaknya memperbaiki masalah saya.
GitHub Fix Docker Daemon Crash
Saya mengubah konten file docker-compose-deps.yml saya seperti yang terlihat di tautan. Lalu aku lari
docker-compose -f docker-compose-deps.yml up -d
. Kemudian saya mengubahnya kembali dan berhasil karena beberapa alasan. Saya tidak perlu melanjutkan langkah-langkah di tautan yang saya berikan, tetapi dua langkah pertama memperbaiki masalah saya.sumber