Saya ingin pindah ke Docker, jadi saya baru saja mulai mengacaukannya. Saya telah menginstal Docker pada instalasi VirtualBox Ubuntu 15.10 (Wily Werewolf) dan seperti yang disarankan di sini saya kemudian mencoba menjalankan gambar Docker nginx dasar :
$ docker run --name mynginx1 -P -d nginx
Cannot connect to the Docker daemon. Is the docker daemon running on this host?
Jadi saya memeriksa apakah Docker berjalan:
$ sudo service docker status
● docker.service - Docker Application Container Engine
Loaded: loaded (/lib/systemd/system/docker.service; enabled; vendor preset: enabled)
Active: active (running) since vr 2015-11-06 08:41:48 CET; 15min ago
Docs: https://docs.docker.com
Main PID: 7542 (docker)
CGroup: /system.slice/docker.service
└─7542 /usr/bin/docker daemon -H fd://
nov 06 08:41:47 kramer65-VirtualBox systemd[1]: Starting Docker Application Container Engine...
nov 06 08:41:47 kramer65-VirtualBox docker[7542]: time="2015-11-06T08:41:47.900410966+01:00" level=info msg="API ...ock"
nov 06 08:41:48 kramer65-VirtualBox docker[7542]: time="2015-11-06T08:41:48.033514149+01:00" level=info msg="Fire...lse"
nov 06 08:41:48 kramer65-VirtualBox docker[7542]: time="2015-11-06T08:41:48.141594321+01:00" level=info msg="Defa...ess"
nov 06 08:41:48 kramer65-VirtualBox docker[7542]: time="2015-11-06T08:41:48.416294436+01:00" level=warning msg="Y...it."
nov 06 08:41:48 kramer65-VirtualBox docker[7542]: time="2015-11-06T08:41:48.565507576+01:00" level=info msg="Load...rt."
nov 06 08:41:48 kramer65-VirtualBox docker[7542]: time="2015-11-06T08:41:48.567907022+01:00" level=info msg="Load...ne."
nov 06 08:41:48 kramer65-VirtualBox docker[7542]: time="2015-11-06T08:41:48.567945214+01:00" level=info msg="Daem...ion"
nov 06 08:41:48 kramer65-VirtualBox docker[7542]: time="2015-11-06T08:41:48.567969891+01:00" level=info msg="Dock....9.0
nov 06 08:41:48 kramer65-VirtualBox systemd[1]: Started Docker Application Container Engine.
Hint: Some lines were ellipsized, use -l to show in full.
Ini menunjukkan bahwa daemon Docker sebenarnya sudah berjalan, tetapi untuk memastikan saya baru saja memulai daemon Docker secara manual:
$ sudo docker daemon
INFO[0000] API listen on /var/run/docker.sock
INFO[0000] [graphdriver] using prior storage driver "aufs"
INFO[0000] Firewalld running: false
INFO[0000] Default bridge (docker0) is assigned with an IP address XXX.XX.X.X/XX. Daemon option --bip can be used to set a preferred IP address
WARN[0000] Your kernel does not support swap memory limit.
INFO[0000] Loading containers: start.
INFO[0000] Loading containers: done.
INFO[0000] Daemon has completed initialization
INFO[0000] Docker daemon commit=76d6bc9 execdriver=native-0.2 graphdriver=aufs version=1.9.0
Saya kemudian mencoba menjalankan gambar lagi, tetapi dengan hasil yang sama:
$ docker run --name mynginx1 -P -d nginx
Cannot connect to the Docker daemon. Is the docker daemon running on this host?
Saya mencoba sudo'ing perintah, tetapi tidak berhasil. Apa yang saya lakukan salah di sini?
Jawaban:
Anda perlu menambahkan pengguna Anda saat ini ke grup buruh pelabuhan sebagai berikut:
lalu keluar & masuk lagi ke sistem atau restart sistem. diuji oleh
docker version
untuk info lebih lanjut bagaimana menginstal mesin buruh pelabuhan ikuti dokumentasi buruh pelabuhan
sumber
Cannot connect to the Docker daemon. Is the docker daemon running on this host?
Tambahkan pengguna ke grup buruh pelabuhan
Tambahkan grup buruh pelabuhan jika belum ada:
sudo groupadd docker
Tambahkan pengguna yang terhubung "$ {USER}" ke grup buruh pelabuhan:
sudo gpasswd -a ${USER} docker
Mulai ulang daemon Docker:
sudo service docker restart
Entah lakukan
newgrp docker
atau keluar / masuk untuk mengaktifkan perubahan ke grup.sumber
newgrp docker
lokal untuk shell, bukan sesi login. Ini sama sekali tidak jelas dari halaman manual.Biasanya, perintah berikut melakukan trik:
Ini, alih-alih
docker start
untuk kasus di mana Docker tampaknya sudah berjalan.Jika itu berhasil maka, seperti yang disarankan dan di jawaban lain dan pada masalah GitHub ini , jika Anda belum menambahkan diri Anda di grup buruh pelabuhan lakukan dengan menjalankan:
Dan kemungkinan besar Anda baik untuk pergi.
Adapun orang lain menabrak ini, di beberapa buruh pelabuhan OS tidak mulai tepat setelah Anda menginstalnya dan, sebagai hasilnya, hal yang sama
can't connect to daemon message
muncul. Dalam hal ini Anda dapat terlebih dahulu memverifikasi bahwa Docker memang tidak berjalan dengan memeriksa status layanan buruh pelabuhan Anda dengan mengeksekusi:Jika outputnya terlihat seperti:
docker stop/waiting
bukannyadocker start/running, process 15378
maka itu berarti Docker tidak aktif. Dalam hal ini pastikan Anda memulainya dengan:Dan, seperti sebelumnya, kemungkinan besar Anda akan baik-baik saja.
sumber
note to self: Saya mendapatkan kesalahan dari judul pertanyaan ketika saya lupa menjalankan
docker
perintah dengansudo
:sudo docker run ...
[Ubuntu 15.10]
sumber
Punya masalah yang sama dan apa yang berhasil bagi saya adalah:
Memeriksa kepemilikan /var/run/docker.sock
Jika Anda bukan pemiliknya, maka ubah kepemilikan dengan perintah tersebut
Kemudian Anda dapat melanjutkan dan mencoba menjalankan perintah buruh pelabuhan bebas repot: D
sumber
root
tetapi dalamdocker
grup. Pendekatan yang benar adalah dengan menetapkan pengguna Anda saat ini kedocker
grup, menurut dokumentasi Docker:sudo groupadd docker && sudo usermod -aG docker $USER
Setelah menginstal semuanya dan memulai layanan, coba tutup terminal Anda dan buka lagi, lalu coba tarik gambar Anda
Edit
Saya juga mengalami masalah ini lagi, jika solusi di atas tidak berfungsi, coba solusi ini yaitu perintah di bawah
Pertimbangan
Jika perintah di atas berfungsi, Anda mungkin memiliki masalah dengan buruh pelabuhan jaringan, toh hal ini menyelesaikannya, untuk mengonfirmasi itu, lihat log dengan perintah di bawah
Jika output memiliki sesuatu seperti itu
Anda benar-benar mengalami masalah jaringan, namun saya belum tahu apakah di lain waktu Anda me-restart ( memperbarui , 2 bulan tidak ada masalah lagi) OS Anda akan mendapatkan masalah ini lagi dan jika itu adalah bug atau masalah instalasi
Versi buruh pelabuhan saya
sumber
Setelah menginstal buruh pelabuhan di Ubuntu, saya menjalankan perintah berikut:
Sudahkah Anda mencobanya?
sumber
Saya memiliki masalah yang sama. Berjuang selama dua hari untuk menyelesaikannya.
Itu hanya berfungsi ketika saya melakukannya:
Menurut Tutorial Docker , Anda perlu menambahkan kunci Docker jika belum ditambahkan menggunakan:
$ sudo wget -qO- https://get.docker.com/gpg | sudo apt-key add -
Kemudian pastikan Anda memberikan hak buruh pelabuhan untuk diri sendiri menggunakan:
$ sudo usermod -aG docker $USER
Semoga ini bisa membantu Anda juga.
sumber
sudo usermod -aG docker $USER
masukkan sebagai root (
sudo su
) dan coba ini:Saya punya masalah yang sama di sini, dan perintah buruh pelabuhan hanya bekerja berjalan sebagai root, dan juga dengan ini
DOCKER_HOST
kosongPS: juga berhati-hatilah bahwa cara yang benar dan resmi untuk menginstal pada Ubuntu adalah dengan menggunakan repositori apt mereka (bahkan pada 15.10), tidak dengan hal " wget " itu.
sumber
Untuk OSX :
Setelah membuka buruh pelabuhan dan memulai mesin 'default' melalui Terminal Quickstart ( https://docs.docker.com/engine/installation/mac/ ), Anda mencoba perintah buruh pelabuhan dan mendapatkan pesan "tidak dapat terhubung ke docker daemon" , ternyata Anda memerlukan beberapa variabel env ditetapkan :
eval "$(docker-machine env default)"
Kemudian cobalah dengan
docker run hello-world
untuk melihat apakah semuanya sangat bagus.sumber
Untuk yang sudah mencoba me-restart mesin Anda, membatalkan pengaturan variabel lingkungan DOCKER_HOST seperti yang diceritakan dalam dokumentasi buruh pelabuhan dan sisanya hanya mencoba untuk pergi dengan
Hanya ini yang berhasil bagi saya bahkan setelah me-restart mesin.
sumber
Memberikan akses non-root - dari buruh pelabuhan
Tambahkan grup buruh pelabuhan jika belum ada.
Tambahkan pengguna yang terhubung "$ {USER}" ke grup buruh pelabuhan.
Ubah nama pengguna agar cocok dengan pengguna pilihan Anda.
Anda mungkin harus keluar dan masuk lagi agar ini berlaku.
Mulai kembali daemon Docker.
sumber
Pertanyaan ini saat ini nomor 3 di pencarian Google. Setelah melakukan riset untuk menyelesaikan masalah ini pada sistem Linux saya, saya pikir saya akan menulis jawaban ini. Posting asli menyatakan masalahnya ada di Ubuntu tapi saya juga mengalami masalah menggunakan Fedora. Dengan mengingat hal itu, inilah yang saya lakukan untuk memperbaiki masalahnya.
Pada Fedora 22
Menginstal Docker:
Setelah menginstal Docker:
Seorang pengguna perlu ditambahkan ke grup buruh pelabuhan.
Daemon buruh pelabuhan harus dimulai
Anda dapat mengatur daemon untuk memulai saat boot
Anda dapat memverifikasi layanan buruh pelabuhan sedang berjalan
Dan satu pemeriksaan terakhir terakhir
sumber
dockerroot
. Juga, Anda mungkin ingin menginstalnya dari repositori (alih-alihcurl ... | sh
) sehingga dapat diperbarui nanti:dnf install docker
groupadd docker
dan kemudian menambahkannya ke nama pengguna Andasudo usermod -aG docker your_username
Coba gunakan "sudo" dengan perintah yang Anda jalankan.
sumber
Saya memiliki masalah yang sama saat menjalankan buruh pelabuhan.
Anda dapat menjalankan perintah sebagai pengguna sudo :
sumber
Untuk Ubuntu:
Terjadi dengan saya ketika saya memperbarui buruh pelabuhan.
Anda perlu membuka kedok layanan dan soket lalu restart layanan.
Berikut ini bekerja untuk saya:
Apa yang terjadi di balik layar
systemd juga memiliki kemampuan untuk menandai unit sebagai sepenuhnya tidak dapat dimulai, secara otomatis atau manual, dengan menghubungkannya ke / dev / null. Ini disebut masking unit, dan dimungkinkan dengan perintah mask.
Anda dapat memeriksa daftar layanan bertopeng menggunakan:
Untuk mengaktifkan layanan otomatis / manual, Anda perlu membuka kedoknya menggunakan:
Sekarang layanan akan diaktifkan seperti yang ditunjukkan di bawah ini
sumber
Sebagai buruh pelabuhan mengikat ke soket unix yang dimiliki oleh root saat memulai, menggunakan 'sudo' bersama dengan perintah buruh pelabuhan akan bekerja.
sumber
sumber
Mungkin ini akan membantu seseorang, karena pesan kesalahannya sangat tidak membantu, dan saya telah melalui semua langkah izin standar berkali-kali tetapi tidak berhasil.
Docker sesekali meninggalkan variabel lingkungan hantu di tempat yang memblokir akses, meskipun sistem Anda jika tidak diatur dengan benar. Perintah shell berikut dapat membuatnya diakses kembali, jika Anda telah menjalankannya pada satu titik dan berhenti bekerja sama setelah reboot:
Saya memiliki menginstal buruh pelabuhan yang sebelumnya bekerja, dan setelah me-reboot laptop saya hanya menolak untuk bekerja. Itu benar ditambahkan ke grup buruh pelabuhan pengguna, memiliki izin yang benar pada soket, dll, tapi masih tidak bisa berlari
docker login
,docker run ...
dll ini tetap untukku. Sayangnya saya harus menjalankan ini pada setiap reboot. Ini disebutkan pada beberapa masalah github juga sebagai solusi, meskipun sepertinya bug bahwa ini adalah penghalang yang terus-menerus untuk memperbaiki operasi Docker (catatan: Saya di Arch Linux, bukan OSX, tapi ini masalah yang sama untuk saya).sumber
Diuji di Ubuntu 16.04
sumber
Saya menghadapi kesalahan yang sama pada contoh Amazon EC2. Masalah diperbaiki setelah memulai kembali instance.
sumber
Tambahkan pengguna saat ini ke grup buruh pelabuhan:
sudo usermod -aG docker $(whoami)
sumber
--
versi opsi yang panjang (dimulai dengan ).Untuk Ubuntu 16.04
/lib/systemd/system/docker.service
Perubahan file di dalam :dengan:
/etc/init.d/docker
Perubahan file di dalam :dengan:
dan kemudian restart komputer Anda.
sumber