Compose: EROR: Tidak dapat terhubung ke Docker daemon di http + docker: // localunixsocket - apakah sudah berjalan?

Dibuat pada 24 Nov 2016  ·  204Komentar  ·  Sumber: docker/compose

Saya tahu bahwa ada masalah lain dengan jenis yang sama tetapi masalah lain ditutup dan saya mencoba semua solusi yang diusulkan tetapi tidak berpengaruh.

masih tidak bekerja:

matteo<strong i="8">@ubuntuDockerMB</strong>:~/wordpress-docker$ sudo docker -v
Docker version 1.12.3, build 6b644ec
matteo<strong i="9">@ubuntuDockerMB</strong>:~/wordpress-docker$ sudo docker-compose up
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.
matteo<strong i="10">@ubuntuDockerMB</strong>:~/wordpress-docker$ sudo service docker start
start: Job is already running: docker
matteo<strong i="11">@ubuntuDockerMB</strong>:~/wordpress-docker$ echo $DOCKER_HOST

matteo<strong i="12">@ubuntuDockerMB</strong>:~/wordpress-docker$ DOCKER_HOST=127.0.0.1
matteo<strong i="13">@ubuntuDockerMB</strong>:~/wordpress-docker$ echo $DOCKER_HOST
127.0.0.1
matteo<strong i="14">@ubuntuDockerMB</strong>:~/wordpress-docker$ sudo docker-compose up
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.
matteo<strong i="15">@ubuntuDockerMB</strong>:~/wordpress-docker$ unset DOCKER_HOST
matteo<strong i="16">@ubuntuDockerMB</strong>:~/wordpress-docker$ sudo docker-compose up
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.
matteo<strong i="17">@ubuntuDockerMB</strong>:~/wordpress-docker$ groups matteo
matteo : matteo adm cdrom sudo dip plugdev sambashare lpadmin docker

  • Saya bagian dari kelompok buruh pelabuhan

  • Saya juga menggunakan sudo

  • Prosesnya sudah selesai

  • Variabel DOCKER_HOST tidak disetel atau 127.0.0.1

  • Menghubungkan kembali pengguna

  • Mulai ulang server

Saya pikir saya sudah mencoba semua kemungkinan konfigurasi, benar?


Spesifikasi:

  • OS: Ubuntu 14.04.04 di Virtualbox di Windows 10 Home.

  • Docker versi 1.12.3, build 6b644ec


Terima kasih!

kinquestion

Komentar yang paling membantu

Sudahkah Anda mencoba tanpa sudo ? Anda seharusnya tidak membutuhkannya dan itu bisa mengacaukan kasus Anda. Juga, apa yang Anda lihat saat menjalankan docker info ?

Semua 204 komentar

Sudahkah Anda mencoba tanpa sudo ? Anda seharusnya tidak membutuhkannya dan itu bisa mengacaukan kasus Anda. Juga, apa yang Anda lihat saat menjalankan docker info ?

Coba jalankan dockerd atau sudo dockerd jika diperlukan terlebih dahulu untuk memulai daemon. Jika Anda memulai dockerd dengan sudo Anda mungkin ingin menjalankan docker-compose up dengan sudo juga. kalau tidak, tidak apa-apa.

@ shin- Halo! Saya sudah melakukannya dengan sudo dan juga menggunakan root ( sudo su ).

matteo<strong i="7">@ubuntuDockerMB</strong>:~/wordpress-docker$ sudo docker-compose up
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.

inilah operasi yang dilakukan sebagai root

root<strong i="11">@ubuntuDockerMB</strong>:/home/matteo/wordpress-docker# docker-compose up
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.
root<strong i="12">@ubuntuDockerMB</strong>:/home/matteo/wordpress-docker#

ini adalah hasil dari docker info

root<strong i="17">@ubuntuDockerMB</strong>:/home/matteo/wordpress-docker# docker info
An error occurred trying to connect: Get http://%2Fvar%2Frun%2Fdocker.sock/v1.24/info: read unix @->/var/run/docker.sock: read: connection reset by peer

@jodohgratis

dockerd tidak berfungsi tetapi sudo service docker start berfungsi seperti yang diharapkan

matteo<strong i="25">@ubuntuDockerMB</strong>:~/wordpress-docker$ sudo dockerd
INFO[0000] libcontainerd: new containerd process, pid: 4039
WARN[0000] containerd: low RLIMIT_NOFILE changing to max  current=1024 max=4096
INFO[0001] [graphdriver] using prior storage driver "aufs"
FATA[0001] Error starting daemon: layer does not exist

PS:

@ shin- & @harshajayaweeraXHJ Maaf terlambat

Anda perlu mengekspor variabel agar tersedia dalam proses anak:

$ export DOCKER_HOST=127.0.0.1

Meskipun ini tidak sepenuhnya menyelesaikan masalah Anda ...

Saya mengalami kesalahan ini karena saya dengan bodohnya mengabaikan prasyarat ubuntu.

terima kasih @jamethy , saya telah melakukannya dengan benar dan saya mengerti

matteo<strong i="7">@ubuntuDockerMB</strong>:~/wordpress-docker-tut$ docker-compose up -d
Traceback (most recent call last):
  File "<string>", line 3, in <module>
  File "compose/cli/main.py", line 65, in main
  File "compose/cli/main.py", line 114, in perform_command
  File "compose/cli/command.py", line 36, in project_from_options
  File "compose/cli/command.py", line 111, in get_project
  File "compose/cli/command.py", line 83, in get_client
  File "compose/cli/docker_client.py", line 74, in docker_client
  File "site-packages/docker/client.py", line 59, in __init__
  File "site-packages/docker/utils/utils.py", line 438, in parse_host
docker.errors.DockerException: Bind address needs a port: 127.0.0.1
docker-compose returned -1

Mengalami masalah yang sama sekarang, juga mencoba menginstal Wordpress di bawah buruh pelabuhan. Sudah mencoba segalanya, tetapi masih tidak bisa terhubung. Docker daemon tidak berjalan ... Saya akan coba lagi

bagi saya masalahnya tetap di sana:

Bind address needs a port: 127.0.0.1

tapi nomor ini harus dibuat oleh buruh pelabuhan itu sendiri

Saya memiliki masalah yang sama dengan poster asli, dan telah mencoba semua hal yang disarankan di atas.

Tampaknya kadang buruh pelabuhan "mati" dan tidak berjalan, dan di lain waktu itu tetap berjalan. Saya perhatikan ini ketika mencoba menjalankan perintah docker info dan mendapatkan kesalahan tentang buruh pelabuhan tidak berjalan. Dengan menggunakan service docker start maka izinkan saya untuk menjalankan perintah info. Inilah yang saya dapatkan:

Containers: 1
Running: 0
Paused: 0
Stopped: 1
Images: 1
Server Version: 1.12.5
Storage Driver: aufs
Root Dir: /var/lib/docker/aufs
Backing Filesystem: extfs
Dirs: 3
Dirperm1 Supported: true
Logging Driver: json-file
Cgroup Driver: cgroupfs
Plugins:
Volume: local
Network: host bridge overlay null
Swarm: inactive
Runtimes: runc
Default Runtime: runc
Security Options: apparmor seccomp
Kernel Version: 4.4.0-45-generic
Operating System: Ubuntu 16.04.1 LTS
OSType: linux
Architecture: x86_64
CPUs: 24
Total Memory: 31.42 GiB
Name: ayn
ID: 7TGC:G5WQ:6IYF:XWMH:XF3N:VXU7:SLZB:IHRN:T4FL:D35I:5JUA:H4S5
Docker Root Dir: /var/lib/docker
Debug Mode (client): false
Debug Mode (server): false
Registry: https://index.docker.io/v1/
WARNING: No swap limit support
Insecure Registries:
127.0.0.0/8

@ matteo-bombelli Kesalahan ini cukup jelas, Anda perlu menentukan port. Lakukan export DOCKER_HOST=127.0.0.1:2375 sebagai gantinya.

@ matteo-bombelli
Saya memiliki masalah yang sama.
Anda perlu memulai ulang buruh pelabuhan.
$ service docker restart
Saya menyelesaikannya dengan ini.

Adakah yang bisa mengkonsolidasikan solusi untuk masalah ini dalam langkah-langkah?

Hai. Saya setuju dengan komentar terakhir ini, saya mengalami masalah yang sama.

Saya mengalami masalah yang sama.

docker ps bekerja.

docker-compose build (dengan versi 2) berfungsi!

docker-compose build (dengan versi 3) memberikan kesalahan ini: /

@furkanmustafa @ shashijais789 @lalitkumarj Akan lebih baik jika Anda membuat terbitan baru dengan semua infonya. Ada banyak alasan yang dapat menyebabkan kegagalan untuk terhubung ke mesin, dari jaringan hingga konfigurasi hingga mesin yang berpotensi mogok / dihentikan. Pastikan juga untuk menyertakan log mesin dengan tanda debug -D .

permasalahan yang sama. bekerja dengan versi 2, saya mendapatkan kesalahan ini dengan konfigurasi verison 3.

langkah-langkah berikut memecahkan masalah saya.

hapus buruh pelabuhan:
$ sudo apt-get remove docker docker-engine
instal ulang dengan
curl -sSL https://get.docker.com/ | sh

tambahkan pengguna ke grup:
sudo usermod -aG docker user

Mungkin kesalahan ini dapat ditampilkan jika salah satu gambar gagal dibangun karena alasan apa pun, tidak harus ada hubungannya dengan daemon buruh pelabuhan. Misalnya, saya telah berhasil men-debug ini dengan mencoba membangun setiap layanan menggunakan Docker.

File docker-compose.yml saya berisi:

version: '2'

services:
  # Drupal server
  drupal:
    build:
      context: .
      dockerfile: "Dockerfile-drupal"
  mysql:
    ...

Memanggil docker-compose build menghasilkan:

Couldn't connect to Docker daemon at http+docker://localunixsocket - is it running?

Jadi saya mencoba menggunakan Docker untuk membangun setiap file satu per satu:

docker build -f="Dockerfile-drupal" .

Ini memberi saya kesalahan yang lebih berguna:

Error checking context: 'no permission to read from some/data/directory'

Memperbaiki kesalahan itu dan memastikan saya dapat membangun Dockerfile-drupal menghasilkan docker-compose build berfungsi dengan baik.

Mungkin kode yang menghasilkan kesalahan mungkin diubah menjadi seperti:

Couldn't build the services.

 * Make sure you can build your Docker images using "docker build ...".
 * Make sure the Docker daemon is running.
 * If the Docker daemon is at a non-standard location, specify the URL with the DOCKER_HOST environment variable. Currently using http+docker://localunixsocket.

Membutuhkan semua:
1) apt-get hapus dan instal ulang menggunakan curl seperti yang disarankan Kirill-Babkin (dan mulai ulang socker agar aman)
2) tambahkan pengguna ke grup buruh pelabuhan menggunakan usermod -aG, logout dan login
3) undefine DOCKER_HOST (seperti yang disarankan oleh rkazak di https://forums.docker.com/t/docker-commands-require-sudo/12987/2) yang telah saya atur sebelumnya menggunakan> ekspor DOCKER_HOST = 127.0.0.1: 2375 sebagai disarankan oleh jamethy dan shin
Ini pada RPi 3B. Setelah semua ini, buruh pelabuhan sekarang bekerja. Apakah ada kemungkinan hal ini bisa dibersihkan sehingga orang lain tidak harus melalui pengalaman yang menyakitkan ini, karena pengalaman seperti buruh pelabuhan ini dirancang untuk diperbaiki? Hanya sebuah saran.

Dalam kasus saya, proxy LAN (yang didefinisikan dalam Opsi Internet - Saya menggunakan Windows) telah mencegah docker-compose terhubung ke VM (dengan mesin buruh pelabuhan) pada VirtualBox Host-Only Network - menonaktifkan proxy telah memecahkan masalah.

Di Ubuntu 16.04, ini berfungsi untuk saya:
sudo service docker start && docker-compose up -d

Saya tidak yakin apa yang terjadi, saya me-restart PC saya dan mulai bekerja !! : nerd_face:

@ ssi-anik itulah ilmu komputer 😄

Saya baru saja mengalami masalah yang sama. Saya menemukan bahwa karena alasan tertentu pengguna saya tidak ditambahkan ke grup keamanan buruh pelabuhan, pada gilirannya tidak mengizinkan saya izin pada soket unix buruh pelabuhan dan memberi saya _ERROR: Tidak dapat terhubung ke daemon Docker di http + docker: // localunixsocket - apakah itu berjalan_ .

Menambahkan grup buruh pelabuhan ke pengguna saya saat ini, lalu keluar dan masuk kembali memperbaiki semuanya untuk saya:
sudo usermod -aG docker $USER

Ini gagal pada langkah pembuatan tertentu untuk saya, saya mencoba menjalankan docker build . di direktori yang sama dengan Dockerfile dan menemukan bahwa salah satu file yang saya coba COPY memiliki masalah izin.

Menjalankan sudo chmod 755 -R . memperbaiki masalah saya.

Seperti yang disebutkan oleh @ChrisPappalardo di
https://github.com/docker/compose/issues/1214
periksa izin kepemilikan file dalam direktori build Anda. Karena proses pembuatan kontainer dilakukan dalam konteks pengguna saat ini, memiliki direktori yang tidak dapat diakses di dalam pohon yang dimiliki oleh root dapat menyebabkan kesalahan yang mengakibatkan pesan ini.

Dalam kasus saya, solusi @ alberto56 bekerja dengan sempurna, itu adalah masalah izin dengan salah satu volume yang dipasang ke salah satu layanan saya. Tidak yakin bagaimana kepemilikan diubah pada awalnya, tetapi melakukan manual docker build -f myDockerfile . membantu saya menemukan masalah saya.

Ketika saya melakukan ls -l direktori tersebut dimiliki oleh 999 dan docker grup, bagian yang aneh adalah bahwa itu bahkan bukan untuk gambar yang saya coba buat, itu adalah layanan terpisah.

Saya mengalami kesalahan ini karena saya memasang volume seperti itu, saat debugging, dan lupa membersihkan.
volume:
- ./itsLog:/var/log/itsLog

ketika saya mencoba membangun Dockerfile, itu pasti telah menerima "izin ditolak" saat mencoba untuk MENAMBAHKAN jalur terbatas.

Deskripsi kesalahan agak menyesatkan, tetapi selain itu masuk akal.

Saya baru saja mengubah pemilik file /var/run/docker.sock menjadi pengguna saat ini, dan tidak apa-apa.
Tampaknya docker-compose tidak memiliki izin untuk mengakses /var/run/docker.sock.

Deskripsi kesalahannya agak menyesatkan

Karena itu sudah sangat tidak informatif, mengapa tidak benar-benar berkomitmen dan hanya mencetak "Tidak"? / s

Dalam kasus saya, saya harus meninjau syslog untuk melihat bahwa daemon Docker menolak spesifikasi build karena ada huruf kapital dalam string tag.

Pesan kesalahan ini adalah pernyataan selimut dan mungkin harus didokumentasikan (bukannya tersebar di Stack Overflow dan masalah github dari proyek yang tidak terkait) atau diperluas.

Komentar @ alberto56 membantu saya. Punya masalah yang sama. Terima kasih!
Penampung sebelumnya yang saya "volume" telah membuat file Python yang dikompilasi; *.pyc . Itu tidak dapat diakses oleh pengguna saya.
Masalah dan perbaikan disalin dari atas:

Memanggil hasil build docker-compose di:
Couldn't connect to Docker daemon at http+docker://localunixsocket - is it running?

Hubungi buruh pelabuhan secara langsung:
docker build .

Yang mengungkapkan penyebab sebenarnya:
Error checking context: 'no permission to read from '/home/user/dev/project/app/utils.pyc''.

Izin file adalah:
-rw-r----- 1 root root 11K Nov 29 16:32 utils.pyc
Dan perbaikannya adalah menghapus file-file itu:
sudo rm app/*.pyc

Hai teman-teman,

Setelah memutakhirkan ke buruh pelabuhan versi 17.12 dan saya telah memulai layanan buruh pelabuhan itu menyelesaikan masalah saya.

[] # layanan buruh pelabuhan dimulai
13 Mengalihkan ke / bin / systemctl start docker.service
# sudo docker-compose up -d

Kami perlu memperbarui versi buruh pelabuhan dan kemudian menulis akan berfungsi.

Salam,
Prasad RVS

layanan buruh pelabuhan mulai
Mengalihkan ke / bin / systemctl start docker.service
[ root @ kammu02-I9084 LDDS] # sudo buruh pelabuhan-tulis up -d
Membuat jaringan "ldds_default" dengan driver default
Membuat volume "ldds_couch-data" dengan driver default
Menarik couchdb (isl-dsdc.ca.com:5000/analytics/lddscouchdb:2.1.8c.109) ...
2.1.8c.109: Menarik dari analytics / lddscouchdb
dd6405a9d644: Tarik selesai
10f659fc3a7e: Tarik selesai
8a0ce719aeb8: Tarik selesai
fc23f8fbeac2: Tarik selesai
5f02dd664e80: Tarik selesai
f38b89a75914: Tarik selesai
94add1a2ec1e: Tarik selesai
e7db1a0942ee: Tarik selesai
87b0136db4b9: Tarik selesai
be9ceeef7cb5: Tarik selesai
aed07b38ec55: Tarik selesai
fc4632d89301: Tarik selesai
6152a07afebb: Tarik selesai
946862fd0151: Tarik selesai
43408ca5f730: Tarik selesai
Intisari: sha256: d3c13f08a4c9c3ed450325aef2dbe97abf0a55c13e9e2005109c05c713491fb3
Status: Mengunduh gambar baru untuk isl-dsdc.ca. com: 5000 / analytics / lddscouchdb : 2.1.8c.109
Menarik ldds-web (isl-dsdc.ca.com:5000/analytics/lddscdb:2.1.8c.109) ...
2.1.8c.109: Menarik dari analytics / lddscdb
dd6405a9d644: Sudah ada
10f659fc3a7e: Sudah ada
8a0ce719aeb8: Sudah ada
eebc892936a1: Tarik selesai
3c8dd6086ddb: Tarik selesai
73c1dfebea61: Tarik selesai
9fb23fd0d390: Tarik selesai
f8943ba49c47: Tarik selesai
a89ff5b6e340: Tarik selesai
02615a9d0e05: Tarik selesai
e129088bf324: Tarik selesai
bf0ba8d71b09: Tarik selesai
083300d85e61: Tarik selesai
5deacfd6cb23: Tarik selesai
220cda5539ae: Tarik selesai
8cdee22c663b: Tarik selesai
d76b24524469: Tarik selesai
9c5ade36643f: Tarik selesai
c7ca782f404c: Tarik selesai
6a7bbcfb0b95: Tarik selesai
Intisari: sha256: e2cb43e6b22ab344d7fc17f38e49caa3e295ef0efdfa43bc77ce671e0f172168
Membuat ldds_couchdb_1 ... selesai
Membuat ldds_couchdb_1 ...
Membuat ldds_ldds-web_1 ... selesai

Saya memang menemukan kesalahan di bawah ini,
"tidak dapat terhubung ke Docker daemon di http + docker: // localunixsocket - apakah itu berjalan?"

Periksa apakah itu masalah izin, jalankan "sudo docker ps" dijalankan tanpa kesalahan ini dan "docker ps" mengeksekusi dengan kesalahan ini, lalu masalah izin.

Coba langkah-langkah pemasangan pasca-galangan buruh pelabuhan ini. Anda mungkin perlu menambahkan "pengguna" ke grup buruh pelabuhan.
https://docs.docker.com/engine/installation/linux/linux-postinstall/

Ini berhasil untuk saya.

Halo semuanya - ini juga terjadi di komputer saya. Yang aneh adalah saya tidak membuat perubahan atau peningkatan apa pun dan itu baru saja mulai terjadi.

@manjukori ini terjadi pada saya meskipun saya berada di grup docker - namun menjalankan perintah yang sama di bawah sudo works! Jadi di satu sisi, tampaknya Anda benar bahwa ini semacam masalah izin, namun, saya adalah anggota grup docker ! Sangat aneh...

Ok semua orang menemukan masalahnya! Dalam kasus saya, saya menggunakan docker-compose yang memasang direktori milik root ke salah satu kontainer. Untuk beberapa alasan yang mencegah docker-compose (yang menjalankan docker build ) dari boot.

Segera setelah saya menghapus direktori ini, semuanya berfungsi seperti sebelumnya (meskipun saya tidak yakin mengapa ini bekerja sebelumnya sebenarnya).

Anda mungkin ingin memeriksa sesuatu yang serupa di pihak Anda juga.

chmod 777 itu

Pengguna Anda harus berada di grup "buruh pelabuhan" untuk menjalankan docker-compose tanpa sudo. Cukup tambahkan grup ini ke akun Anda, keluar dan masuk kembali. Perbaiki ini untuk saya di Ubuntu dan Mac OS.

@jhnoor terima kasih! Itu berhasil untuk saya
sudo chmod 755 -R .

Saya ingin mengulangi salah satu komentar paling berguna tentang masalah lain yang mengatakan bahwa docker-compose --verbose up[|build] akan membantu Anda memahami pokok masalah Anda. Dalam kasus saya, pesan kesalahan docker-compose menyesatkan - saya hanya perlu memperbarui dari buruh pelabuhan 1.10 (kuno) ke 1.12.

Verbositas mengungkapkan ini:
docker.errors.APIError: 400 Kesalahan Klien: Permintaan Buruk ("klien lebih baru dari server (versi API klien: 1.24, versi API server: 1.22)")

Dalam kasus saya, hanya satu perintah yang cukup untuk memperbaiki masalah: sudo usermod -aG docker $USER (ketika $ USER adalah pengguna yang Anda masuki saat ini). Dengan ini saya berhasil menjalankan docker-compose run ... tanpa sudo dari $USER user shell. (Terima kasih, @ Kirill-Babkin: kue :).

Jawaban yang benar adalah dari @manjukori dan @yoloseem; satu-satunya hal yang ingin saya tekankan adalah menggunakan variabel env $ USER untuk menggeneralisasi instruksi sudo usermod -aG docker $USER (dengan asumsi Anda terhubung ke shell sebagai pengguna yang perlu mengelola buruh pelabuhan). Untuk detail penting lainnya seputar konfigurasi buruh pelabuhan, lihat tautan seperti yang diposting di atas https://docs.docker.com/install/linux/linux-postinstall/.

@ ramblinwreck35 Mengedit komentar saya seperti yang Anda tunjuk. : +1:

Bagi saya itu adalah pengguna saya yang bukan anggota grup buruh pelabuhan. Menyelesaikan...
sudo usermod -aG docker ${USER}
Kemudian logout & masuk kembali, atau sudo su - ${USER} untuk menerima konfigurasi yang diperbarui di terminal Anda

systemctl restart docker
selesaikan itu

Ini karena izin bahkan setelah menambahkan pengguna Anda di grup buruh pelabuhan. mulai ulang grup atau muat ulang izin.

Saya menggunakan sudo. masalah terpecahkan.

Saya tidak sepenuhnya yakin apakah masalah saya sama, tetapi saya memposting solusi saya di sini jika ada orang lain yang memiliki masalah yang sama dan menemukan utas ini.

Dalam kasus saya, saya lupa menambahkan beberapa direktori ke .dockerignore . Saya kira itu terlalu banyak data untuk buruh pelabuhan deamon, karena bekerja setelah mengecualikan beberapa direktori data.

@harwood dan saya sedang menyelidiki masalah ini di repositori kami dan melihat bahwa itu sebenarnya disebabkan oleh nama gambar buruh pelabuhan yang salah yang disetel dalam image - kami memiliki gambar dengan huruf kapital. Kami juga memasok build: ./ . Ketika kami menghapus build: ./ Kami melihat pesan kesalahan baru: invalid reference format: repository name must be lowercase . Semoga ini bisa membantu siapa pun melacak masalah ini.

Hai,

Masalah saya diselesaikan dengan langkah-langkah berikut:

  1. Hentikan layanan buruh pelabuhan
  2. Tambahkan pengguna yang Anda gunakan untuk menjalankan perintah docker-compose ke grup buruh pelabuhan dengan perintah berikut: usermod -aG docker NAME_OF_USER (CentOS 7)
  3. Mulai layanan buruh pelabuhan

Apakah Anda memiliki konfigurasi layanan db seperti ini?

volume:
- ./db/data:/var/lib/mysql


When i input `docker-compose build` with db server ,I got this error. 
So, I input `sudo chown -R $USER:$USER /db/data` in order to got data permission.And I tried "docker-compose build" without the error.

docker-compose.yml

versi: '3'
jasa:
db:
membangun:
./db
perintah: mysqld --default-authentication-plugin = mysql_native_password
port:
- "3306: 3306"
volume:
- ./db/data:/var/lib/mysql
env_file:
- mysql.env
hak istimewa: benar
``

Memulai kembali buruh pelabuhan juga berhasil untuk saya.

Saya menyelesaikannya dengan mengubah pemilik dari root menjadi saya menjadi /var/run/docker.sock . Saya tidak tahu mengapa paket apt diinstal sebagai root.

$ sudo show derp:derp /var/run/docker.sock

Mengalami masalah serupa barusan, saya butuh beberapa jam untuk mencari tahu penyebabnya.

Ceritanya seperti ini: kami menggunakan Jenkins untuk CI dan menjalankan pengujian untuk layanan utama kami dengan docker-compose karena bergantung pada beberapa layanan lainnya. Seorang rekan kerja mendorong keberanian dan Jenkins gagal membuatnya tidak peduli apa pun kode dan tesnya baik-baik saja. Masalahnya tampaknya sebagai berikut:

  • Jenkins membuat folder untuk setiap pipeline dan memperpendek namanya menjadi beberapa panjang. Itu membuat nama folder seperti "$GIT_BRANCH-$RANDOMISH_HASH" dan bagian yang menarik adalah memotong string dari awal.
  • Nama cabang yang gagal berisi tanda hubung ( - ), dan nama direktori yang dihasilkan oleh Jenkins akhirnya dimulai dengan - .
  • Kemudian Jenkins akan menjalankan docker-compose di folder itu, dan secara default docker-compose menggunakan nama direktori sebagai awalan untuk menamai kontainer.
  • Ini berarti bahwa ia mencoba untuk membuat wadah dengan nama yang dimulai dengan tanda hubung ( - ) dan yang tampaknya merupakan karakter ilegal untuk nama wadah buruh pelabuhan untuk memulai.
  • Dan kemudian docker-compose gagal dengan kesalahan umum dengan pesan "Tidak dapat terhubung ke Docker daemon - apakah sedang berjalan?" pesan.

Solusi dalam kasus saya adalah menentukan nama proyek khusus ( -p ) yang akan digunakan sebagai pengganti nama direktori default:

docker-compose -f docker-compose.ci.yml -p "$SANITIZED_GIT_BRANCH" build

@ alberto56 Pekerjaan tetap:

chown -R user:user .

Juga, perbarui .dockerignore Anda jika ada sesuatu yang tidak seharusnya dikirim ke buruh pelabuhan untuk dibangun.

coba ini tambahkan sudo itu saja

sudo docker-compose up

solusi bagi saya adalah menambahkan pengguna saya ke grup buruh pelabuhan, terima kasih Anda tidak harus menggunakan sudo saat menggunakan buruh pelabuhan
https://techoverflow.net/2017/03/01/solving-docker-permission-denied- While-trying-to-connect-to-the-docker-daemon-socket/

Dalam kasus saya, jika pengguna tidak memiliki izin untuk /var/run/docker.sock docker-compose coba sambungkan ke http+docker://localhost .
sudo usermod -a -G docker $USER dapat memperbaikinya.

pada titik ini https://github.com/docker/compose/issues/4181#issuecomment -317120015
restart PC akan memperbaiki masalah ini

CentOS
Saya harus mengatakan, saya menyelesaikan dengan memutuskan dan menghubungkan kembali ke server ...

tl; dr hentikan komentar yang tidak perlu
Guys. Saya pikir memulai ulang seharusnya tidak menjadi bagian dari masalah APAPUN di GitHub. Silahkan. Ini mengalihkan perhatian kita dari apa yang kita lakukan dengan pemberitahuan yang tidak berguna. Perlu diingat bahwa memberi komentar di sini dimaksudkan untuk menambah nilai pada masalah itu sendiri. Memulai kembali tidak menyelesaikannya karena sedang terjadi lagi. Di beberapa titik khususnya soket macet dan begitu jika seseorang menemukan hal lain yang tidak dikomentari sebelumnya di utas ini menambah nilai, maka tolong beri komentar, lalu jika tidak, hindari membuat pemberitahuan :) - maaf untuk hal yang lama.

sudo chown $USER:docker /var/run/docker.sock bekerja untuk saya.

sudo which docker-compose up berfungsi dengan baik untuk saya di Ubuntu 16.

Sepertinya ada beberapa masalah akses yang berbeda. Saya mendapat masalah ini di Fedora 28 baru dan menyelesaikannya dengan menonaktifkan selinux.

milikku diselesaikan dengan mengetik
sudo dockerd
//kemudian
sudo buruh pelabuhan-menulis up -d

SETEL volume dengan "/var/run/docker.sock:/var/run/docker.sock" dan akan berfungsi

Ini berfungsi setelah saya memulai ulang server :)

Milik saya hanya karena docker-compose tidak berada di PATH . Jawaban @pelican menyelesaikannya

cukup ikuti instruksi yang disebutkan dalam masalah ini dan mulai ulang mesin Anda.

Hanya melakukan ini berhasil untuk saya:

sudo apt-get purge golang-docker-credential-helpers

Hanya menghadapi kasus di mana itu bekerja dan beberapa baris shell kemudian (tanpa instalasi / peningkatan paket), itu melemparkan kesalahan ini. Baru saja mencoba proyek lain dan itu membangun jadi saya merasa ada sesuatu yang rusak dengan cache buruh pelabuhan atau internal terkait dengan gambar ini .. Pemangkasan gambar Docker, memulai ulang layanan buruh pelabuhan atau OS tidak berfungsi. Docker dipasang dengan benar (tanpa perlu sudoing) ..

Sunting: sistem memangkas dan menghapus wadah khusus ini memecahkan masalah

Bagi saya itu adalah pengguna saya yang bukan anggota grup buruh pelabuhan. Menyelesaikan...
sudo usermod -aG docker ${USER}
Kemudian logout & masuk kembali, atau sudo su - ${USER} untuk menerima konfigurasi yang diperbarui di terminal Anda

itulah solusi yang tepat

sudo docker-compose run ....... bekerja untuk saya :)

Saya memiliki masalah yang sama, dan memperbaiki restart buruh pelabuhan saya, terima kasih banyak

Jawabannya ada di dokumentasi Docker di bagian langkah-langkah pasca instalasi:
https://docs.docker.com/install/linux/linux-postinstall/

Seperti dilaporkan di doc:

Daemon Docker mengikat ke soket Unix alih-alih port TCP. Secara default, soket Unix dimiliki oleh root pengguna dan pengguna lain hanya dapat mengaksesnya menggunakan sudo

Inilah sebabnya mengapa ini berfungsi menjalankan perintah dengan sudo .

Jika Anda malah ingin pengguna kustom Anda terhubung ke buruh pelabuhan (seperti dalam kasus saya), Anda harus menambahkannya di grup buruh pelabuhan dengan:

sudo usermod -aG docker $USER

Sebenarnya kepemilikan untuk docker socket adalah:
srw-rw---- 1 root docker 0 Oct 3 11:31 /var/run/docker.sock

Setelah ini, seperti yang dilaporkan di doc, Anda harus keluar dan masuk kembali atau memulai ulang jika Anda menguji pada mesin virtual.

Saya telah menguji ke dalam mesin virtual Ubuntu 14.04 yang berjalan secara Paralel dan saya tidak perlu memulai ulang. Saya hanya perlu masuk lagi untuk menyelesaikan masalah.

CATATAN
Lihat peringatan yang ditunjukkan pada dokumentasi, karena grup "buruh pelabuhan" memberikan hak yang setara dengan pengguna root. Jadi menambahkan pengguna ke grup itu bisa menjadi masalah keamanan sesuai dengan skenario Anda.

jalankan perintah sebagai root

export DOCKER_HOST = 127.0.0.1

dan kemudian tempatkan diri Anda di folder docker-compose.yml Anda dan jalankan perintah:
su docker-compose up

Seperti yang ditulis dalam komentar sebelumnya, mencoba membangun setiap layanan secara individual akan memberikan pesan kesalahan yang lebih berguna.
Saya mengalami kesalahan ini karena nama gambar saya dalam huruf besar di dalam docker-compose.yml.
Mengubah nama layanan dan properti citra layanan menyelesaikan masalah.

Mulai ulang buruh pelabuhan dan itu akan bekerja dengan sempurna.
Jalankan: service docker restart dan kemudian jalankan perintah buruh pelabuhan yang Anda inginkan.

Anda perlu menambahkan pengguna Anda ke grup buruh pelabuhan untuk menghindari "sudo buruh pelabuhan ..."
sudo usermod -aG nama pengguna buruh pelabuhan

Apakah pengguna Anda termasuk dalam kelompok pengguna buruh pelabuhan?

sudo usermod -aG docker ${USER}

Periksa artikel ini: https://medium.com/@ibrahimgunduz34/if -you-face-an-issue-like-couldnt-connect-to-docker-daemon-at-http-docker-localunixsocket-is-27b35f17d09d

itu tidak berhasil untuk saya juga. Saya baru saja menambahkan sudo sebelum perintah dan mulai berfungsi ..

sudo dockerd

berikan padaku

Segmentation fault

jadi masalah saya adalah daemon buruh pelabuhan tidak berjalan, tapi saya tidak tahu apa yang harus saya lakukan

Saya menemukan ini berguna

Saya meningkatkan docker-compose dari 1.16.1 menjadi 1.23.1 , berhasil!

Saya tidak yakin apa yang terjadi, saya me-restart PC saya dan mulai bekerja !!

saya memiliki masalah yang sama dan bagi saya alasan mengapa restart memperbaikinya, bahwa setelah instalasi pengguna saya ditambahkan ke grup buruh pelabuhan, tetapi perubahan grup ini hanya menjadi efektif melalui relogin.

Saya mengalami ini hari ini karena kesalahan yang saya buat di file docker-compose.yml saya.

Saya tidak sengaja menyertakan deklarasi kunci volumes: dua kali, dan ini mengakibatkan kegagalan untuk memetakan docker.sock ke dalam wadah dalam. Kesalahannya terlihat seperti ini:

    volumes:
      - /var/run/docker.sock:/var/run/docker.sock
    volumes:
      - datafiles:/datafiles

Yang seharusnya mengatakan:

    volumes:
      - /var/run/docker.sock:/var/run/docker.sock
      - datafiles:/datafiles

Saya menemukan bahwa ketika Anda mendeklarasikan dua volume bagian seperti ini, yang pertama diabaikan. Kontainer itu, tentu saja, tidak dapat melakukan perintah buruh pelabuhan karena itu.

Saya memiliki masalah yang sama, namun saya dapat menyelesaikannya baik menjalankan buruh pelabuhan sebagai root atau menerapkan izin eksekusi.

Saya menggunakan tautan ini https://www.digitalocean.com/community/tutorials/how-to-install-and-use-docker-on-ubuntu-18-04 tentang Menjalankan Perintah Docker Tanpa Sudo.

Sebuah pertanyaan yang sedikit offtopic, untuk beberapa waktu saya mencari dokumentasi atau referensi mengenai definisi skema http+docker:// . Apakah ada orang di sini yang memiliki URL atau referensi ke skema ini? Terima kasih!

Saya mengalami masalah ini, tetapi saya menyadari bahwa pesan kesalahan penulisan buruh pelabuhan sangat tidak membantu dan menyesatkan. Untuk menemukan penyebab sebenarnya saya hanya docker build <service> secara manual untuk setiap layanan di docker-compose.yml saya sampai saya menemukan satu yang menolak untuk dibangun. Dalam kasus saya, itu adalah masalah izin dengan __pycache__ di direktori layanan.

Saya memiliki masalah yang sama dan tidak ada solusi yang membantu.
Saya mencoba ide Rosso84.
sudo service docker berhenti
sudo dockerd
Sekarang saya bisa lari
buruh pelabuhan-menulis
berhasil.
Sedikit keanehan berlanjut -
sudo buruh pelabuhan-menulis
mengatakan perintah tidak ditemukan.

itu berhasil untuk saya:
sudo groupadd buruh pelabuhan
sudo gpasswd -a $ USER buruh pelabuhan

Baik melakukan buruh pelabuhan newgrp atau log out / in untuk mengaktifkan perubahan ke grup.
newgrp buruh pelabuhan

Saya mengalami masalah ini saat menggunakan argumen build yang tidak disetel, yang kemudian digunakan di tag gambar FROM . Fix: Setel build arg ke selain string kosong.

me-restart server memecahkannya untuk saya

Jika Anda bukan pengguna root, coba tambahkan pengguna ke izin buruh pelabuhan

sudo usermod -a -G docker theUser

Saya memperbaikinya dengan me-reboot Ubuntu saya juga ....

Hai,

masalah diselesaikan dengan sudo sebelum perintah;),

Terima kasih,
Moatez

Ini masalah izin.

- sudo chown $USER:docker /var/run/docker.sock Ini berhasil untuk saya dalam pengaturan ubuntu 18.

Saya tidak yakin apa yang terjadi, saya me-restart PC saya dan mulai bekerja !!

Terima seperti Anda, Pak

cukup ketik sudo sebelum perintah docker-compose !

ini berhasil untuk saya
sudo chown $USER:docker /var/run/docker.sock

usermod -a -G buruh pelabuhan USER
Kemudian logout dan login kembali USER.

Saya mengalami kesalahan yang sama setiap kali saya memiliki variabel di dalam docker-compose.yml yang TIDAK ada dalam .env.

Kesalahan aneh untuk skenario seperti itu tetapi - apa pun. :)

cukup ketik sudo sebelum perintah docker-compose !

Terima seperti Anda, Pak!
Ya ampun ..., tapi bekerja dengan baik untukku, kerja bagus!

saya hanya harus melakukan:
sudo ln -s / usr / local / bin / docker-compose / usr / bin / docker-compose

dan berhasil!

Saya menginstal docker-compose dan pada saat yang sama memecahkan masalah dengan langkah-langkah berikut:
Langkah 1:
sudo curl -L https://github.com/docker/compose/releases/download/1.21.2/docker-compose- uname -s - uname -m -o / usr / local / bin / buruh pelabuhan-menulis

Langkah 2:
sudo chmod + x / usr / local / bin / docker-compose

langkah 3:
buruh pelabuhan-menulis --version

Langkah 4:
ekspor DOCKER_HOST = 127.0.0.1: 2375

langkah 5:
usermod -a -G buruh pelabuhan $ USER

langkah 6:
Mulai ulang komputer Anda atau jalankan perintah
matikan

Ini berhasil untuk saya:

sudo usermod -aG buruh pelabuhan $ (whoami)

keluar

Gabung

periksa untuk memastikan Anda berada dalam grup "buruh pelabuhan".

- sudo chown $USER:docker /var/run/docker.sock Ini berhasil untuk saya dalam pengaturan ubuntu 18.

Terima kasih!

Halo,
mendapat pesan kesalahan yang sama:

EROR: Tidak dapat terhubung ke Docker daemon di http + docker: // localhost - apakah berjalan?
Jika berada di lokasi non-standar, tentukan URL dengan variabel lingkungan DOCKER_HOST.

Tapi pesan ini menyesatkan, karena buruh pelabuhan deamon saya tidak memiliki masalah dalam koneksi.
Alasannya adalah kesalahan bodoh yang saya buat di Yaml (yang tidak saya ketahui sebelumnya). Saya tidak sengaja memiliki huruf kapital di nama gambar. Itu mengarah pada fakta bahwa layanan tidak dapat dibentuk, karena hanya huruf kecil yang diizinkan sebagai nama.
Saya melihat kesalahan ketika saya mencoba membangun Dockerfile secara terpisah dengan nama.
Akan berguna jika docker-compose dapat meneruskan error yang terjadi dalam masalah build. Karena, seperti yang juga dikatakan @ shin-, bug ini masih dapat terjadi karena berbagai alasan saat ini. Meskipun sudah beberapa lama sejak @ shin- menulis ini, masalah tampaknya masih ada. Mungkin itu mungkin bisa membantu.

Hanya memposting masalah saya di sini, karena semua orang benar-benar memikirkan masalah koneksi nyata dengan buruh pelabuhan dan saya ingin menunjukkan, bahwa itu tidak harus selalu demikian.

$ cat /etc/centos-release
CentOS Linux release 7.6.1810 (Core) 

$ sudo service docker start
$ sudo service docker status

Halo,

Saya menghadapi masalah yang sama. Tapi itu teratasi setelah saya memulai ulang VM saya.

BR. Saurabh

perintah itu terpecahkan bagi saya:

sudo usermod -aG pengguna buruh pelabuhan

perintah:

sudo ln -s / usr / local / bin / docker-compose / usr / bin / docker-compose
sudo buruh pelabuhan-menulis up -d

Jika Anda baru saja menginstal buruh pelabuhan dan baru saja memberikan pengguna kelompok buruh pelabuhan coba logout dari pengguna tersebut dan login kembali.

sudo layanan buruh pelabuhan mulai && buruh pelabuhan-menulis up -d

Silakan coba dengan perintah di atas. Masalah telah diperbaiki untuk saya

Tidak ada solusi yang tercantum di atas yang memperbaikinya untuk saya. Ada ide lain?

EROR: Tidak dapat terhubung ke Docker daemon di http + docker: // localhost - apakah berjalan?

Jika berada di lokasi non-standar, tentukan URL dengan variabel lingkungan DOCKER_HOST.

resolvi o problema com esse comando:

sudo chown $USER:docker /var/run/docker.sock

👇🏻👇🏻👇🏻👇🏻👇🏻👇🏻
👉🏽SOLUSI 👈
👆🏿👆🏿👆🏿👆🏿👆🏿👆🏿

jika Anda belum mencoba apa pun dari tapak ini, jalankan dua perintah ini dan itu akan menyelesaikan masalah khusus ini:
sudo usermod -a -G docker $USER # menambahkan pengguna Anda saat ini ke grup docker
newgrp docker # mengaktifkan izin baru untuk docker grup

sudo usermod -a -G buruh pelabuhan $ USER # menambahkan pengguna Anda saat ini ke grup buruh pelabuhan
newgrp buruh pelabuhan # mengaktifkan izin baru untuk grup buruh pelabuhan

Seharusnya newgrp -l docker . Saat menggunakan ini, orang harus menyadari bahwa newgrp memulai shell baru sehingga lingkungan mereka akan disetel ulang seolah-olah mereka masuk lagi jika mereka menggunakan -l .

Pertama kita perlu me-remount tmp dengan izin exec dengan mengeksekusi

  1. sudo mount / tmp -o remount, exec
    lalu bikin buruh pelabuhan sampai
  2. "service docker start" di pengguna root atau "sudo service docker start"
    kemudian
  3. "docker-compose up" atau "docker-compose start" berhasil untuk saya

sudo buruh pelabuhan-menulis up -d
EROR: Tidak dapat terhubung ke Docker daemon di http + docker: // localhost - apakah berjalan?

Jika berada di lokasi non-standar, tentukan URL dengan variabel lingkungan DOCKER_HOST.
加上 sudo 也是 报 同样 的 i>

grup root
root: root buruh pelabuhan
root berada di bawah grup buruh pelabuhan

Mengatasi masalah dengan ini:

  1. sudo usermod -aG docker $USER
  2. Keluar dan masuk kembali sehingga keanggotaan grup Anda dievaluasi kembali.
  3. Pastikan Anda dapat menjalankan perintah buruh pelabuhan tanpa sudo: docker info

DOCKER_HOST default adalah unix: ///var/run/docker.sock. Jika file ini tidak ada atau pengguna Anda saat ini tidak memiliki akses ke file itu, maka mencoba untuk terhubung ke http + docker: // localhost
Mencoba:
sudo chown /var/run/docker.sock
Kemudian coba lagi untuk menjalankan docker-compose up
Bekerja untuk saya.

Sudahkah Anda mencoba tanpa sudo ? Anda seharusnya tidak membutuhkannya dan itu bisa mengacaukan kasus Anda. Juga, apa yang Anda lihat saat menjalankan docker info ?
Terima kasih! berhasil!

Tapi tolong Docker, tambahkan peringatan yang benar!

Saya mendapat pesan ini ketika menyalin volume dari mesin poruction, berakhir dengan menulis metadata.db di dalam /var/lib/docker/volumes , lalu macet. Sebuah perbaikan sangat smiple

docker system prune --volumes -f && rm /var/lib/docker/volumes/metadata.db && docker-compose up -d

Ini sering terjadi ketika Anda menjalankan perintah buruh pelabuhan sebagai sudo saat Anda menjalankan perintah docker-compose tanpanya.
Yang perlu Anda lakukan adalah menambahkan pengguna buruh pelabuhan ke grup sudo. (mis. usermod -aG buruh pelabuhan $ USER)
Kemudian Anda dapat menjalankan kedua perintah (docker dan docker-compose) tanpa sudo.

Saya mengalami kesalahan yang persis sama. Saya menghapus container (id) dan memulai buruh pelabuhan lagi. Itu memperbaiki masalah saya. Itu tidak menghapus data apa pun yang sudah diunggah.

Masuk ke direktori cvat Anda dan jalankan perintah berikut di terminal Anda:

  • sudo docker ps (menunjukkan informasi tentang pekerja galangan Anda yang sedang berjalan)
  • buruh pelabuhan berhenti "Ini ID penampung Anda" (mis. milik saya adalah e6339eae0675)
  • sudo docker rm "Ini ID container Anda"
  • sudo buruh pelabuhan-menulis up -d

saya memiliki masalah yang sama, _sudo docker-compose up_ bekerja untuk saya.

Solusi bagi saya adalah menghentikan openvpn yang saya gunakan.

Saya tidak yakin apa yang terjadi, saya me-restart PC saya dan mulai bekerja !!

Ini bekerja.

langkah-langkah berikut memecahkan masalah saya.

hapus buruh pelabuhan:
$ sudo apt-get remove docker docker-engine
instal ulang dengan
curl -sSL https://get.docker.com/ | sh

tambahkan pengguna ke grup:
sudo usermod -aG docker user

Hanya catatan bahwa Anda perlu exit shell dan login lagi untuk perintah usermod untuk tetap.

Saya baru saja mengalami masalah yang sama seperti sebelumnya, dan menemukan cahaya sime di akhir ...
Ini terkait dengan bahwa buruh pelabuhan menunjukkan pesan aneh ini menyembunyikan masalah sebenarnya.
Saya baru saja mencoba membuat salah satu gambar dengan docker build. dan kemudian terlihat bahwa beberapa file yang mencoba dimasukkan ke dalam cache tidak memiliki izin untuk membaca dan membangun gagal.
Setelah menghapus file yang dikeluarkan itu mulai bekerja lagi tanpa masalah.
Dalam kasus saya, memasang direktori saat ini adalah masalahnya karena pengujian menghasilkan direktori dengan pengguna root di host
Jadi, lain kali build gagal karena tidak dapat membaca dan memulai build yang gagal tanpa pesan yang jelas dari build docker-compose.
Perlu memeriksa pengujian yang dijalankan pengguna untuk menghindari masalah nanti tetapi berharap ini membantu orang lain menemukan masalah sebenarnya.

Salam

menambahkan pengguna biasa ke grup buruh pelabuhan

# usermod -a -G docker user
# exit
$ exec $SHELL
$ docker-compose ps

Saya memperbaikinya dengan menghapus variabel CONTAINER_REGISTRY_BASE

$ sudo usermod -aG buruh pelabuhan $ USER

Saya menemukan itu adalah variabel lingkungan yang hilang yang melanggar pengaturan image: di docker-compose.yml

¯_ (ツ) _ / ¯

langkah-langkah berikut memecahkan masalah saya.

hapus buruh pelabuhan:
$ sudo apt-get remove docker docker-engine
instal ulang dengan
curl -sSL https://get.docker.com/ | sh

tambahkan pengguna ke grup:
sudo usermod -aG docker user

Terima kasih. Menghapus instalasi, kemudian menginstal ulang dan mengubah izin pengguna dan keluar dan masuk kembali menyelesaikannya untuk saya.

Tidak ada solusi yang tercantum di atas yang memperbaikinya untuk saya. Ada ide lain?
EROR: Tidak dapat terhubung ke Docker daemon di http + docker: // localhost - apakah berjalan?
Jika berada di lokasi non-standar, tentukan URL dengan variabel lingkungan DOCKER_HOST.

resolvi o problema com esse comando:

sudo chown $USER:docker /var/run/docker.sock

Ini memperbaikinya untuk saya.

Saya melakukan segalanya kecuali secara simbolis menghubungkan ke docker-compose. Mengikuti perintah memperbaiki masalah saya

  1. Tambahkan pengguna ke grup buruh pelabuhan (jika belum ditambahkan)
    sudo usermod -aG docker $USER
  2. buat tautan simbolis ke / usr / bin menggunakan perintah berikut
    $ sudo ln -s /usr/local/bin/docker-compose /usr/bin/docker-compose
  3. Mulai ulang layanan buruh pelabuhan
    $ sudo service docker restart

Dalam kasus saya, tidak ada satu pun cara di atas yang berhasil

Ternyata, dalam file buat saya, saya memiliki nama gambar camelCase ( eg imageName ), dan itu menyebabkan Couldn't connect to Docker daemon at http+docker://localunixsocket . Mengubahnya menjadi dash-case memecahkan masalah (sangat aneh).
Layanan Docker berjalan dengan baik, docker ps dan info juga melaporkan tidak ada masalah, hanya meluncurkan file compose itu masalahnya.

Ubuntu 18.04
docker 19.03.6
docker-compose 1.17.1 (compose file version 3)

sudo buruh pelabuhan-menulis up -d

baru saja menghadapi masalah ini lagi dan menyadari bahwa saya harus memulai ulang Ubuntu setelah menambahkan pengguna mu ke grup Docker

sudo usermod -aG pengguna buruh pelabuhan

Ini oleh @ Kirill-Babkin memecahkannya untuk saya. Saya memiliki pengguna yang baru dibuat bukan dalam grup buruh pelabuhan. Terima kasih.

Dalam kasus saya docker-compose.yml saya kehilangan definisi env var pada bagian image

prod-image-generation:
    image: my-image:${BUILD_NUMBER}

Saya Kehilangan sekitar 30 menit dengannya. Tolong sarankan kesalahan yang berarti untuk ini

Solusi menetapkan nilai untuk var

Hanya ekspor kosong yang berhasil untuk saya.

export DOCKER_HOST=

Instalasi Docker baru di sini di Ubuntu 18. Dengan asumsi pengguna Anda sudah berada di grup docker , cukup instal layanan buruh pelabuhan sehingga otomatis memulai sudo systemctl enable docker lalu restart dan voila sudo init 6

Punya masalah yang sama.
Dipecahkan di sistem saya dengan menulis "docker-compose build"

Saya baru saja mengalami masalah yang sama. Saya menemukan bahwa karena alasan tertentu pengguna saya tidak ditambahkan ke grup keamanan buruh pelabuhan, pada gilirannya tidak mengizinkan saya izin pada soket unix buruh pelabuhan dan memberi saya _ERROR: Tidak dapat terhubung ke daemon Docker di http + docker: // localunixsocket - apakah itu berjalan_ .

Menambahkan grup buruh pelabuhan ke pengguna saya saat ini, lalu keluar dan masuk kembali memperbaiki semuanya untuk saya:
sudo usermod -aG docker $USER

Mengikuti ini, lalu menghidupkan ulang mesin, dan menjalankan docker-compose up --build 👍

menunjukkan

sudo usermod -aG docker $USER

Mengikuti ini, lalu menghidupkan ulang mesin, dan menjalankan docker-compose up --build +1

Anda tidak perlu memulai ulang, login ulang sederhana sudah cukup. Itu melakukannya untuk saya.

Saya tidak yakin apa yang terjadi, saya me-restart PC saya dan mulai bekerja !! 🤓

Ini berhasil. tidak tahu kenapa ha ha

Instalasi Docker baru di sini di Ubuntu 18. Dengan asumsi pengguna Anda sudah berada di grup docker , cukup instal layanan buruh pelabuhan sehingga otomatis memulai sudo systemctl enable docker lalu restart dan voila sudo init 6

Saya menggunakan Manjaro dan solusi ini berhasil untuk saya

terima kasih @mikemix

Saya telah mencoba banyak langkah berdasarkan kesalahan di bawah ini setelah menjalankan dockered .

can't initialize iptables table nat': Table does not exist (do you need to insmod?) Perhaps iptables or your kernel needs to be upgraded. (exit status 3)

Tetapi Memulai Terminal sebagai administrator berfungsi.
sudo service docker start
Ingat : Terminal / Ubuntu pada Windows 10 harus diluncurkan sebagai Admin

Di Ubuntu 20.04 saya perlu menjalankan

sudo chmod 777 /var/run/docker.sock

dan itu mulai bekerja dengan segera.


⚠️ Edit

Hati-hati dengan perintah di atas

Ini memberi setiap pengguna mesin itu akses penuh ke file yang biasanya dimiliki oleh root. Anda dapat membuat lubang keamanan yang parah di sistem Anda dengan cara ini.
@Taranul

sudo chmod 777 /var/run/docker.sock

Ini memberi _any_ pengguna mesin itu akses penuh ke file yang biasanya dimiliki oleh root. Anda dapat membuat lubang keamanan yang parah di sistem Anda dengan cara ini. Lihat https://stackoverflow.com/questions/47854463/docker-got-permission-denied- While - connect-to-the - daemon -

Seperti yang disebutkan di sini dan di tautan di atas, sudo usermod -aG docker $USER (atau nama pengguna yang dipermasalahkan, bukan $ USER) harus melakukan trik tanpa merusak langkah-langkah keamanan sistem.

@Taranchul Anda benar sekali! Saya selalu menggunakan sudo usermod -aG docker $USER . Namun sayangnya, sudo usermod -aG docker $USER sepertinya tidak berfungsi di Ubuntu 20.04 lagi.

Ada ide apa yang bisa salah?

Sayangnya, saya tidak. Apakah Anda masuk kembali dengan pengguna itu (yang berhasil untuk saya), atau memulai ulang mesin? Saya rasa Anda melakukannya, tetapi lebih baik pastikan.

Untuk berjaga-jaga jika Anda atau orang lain ingin memulihkan izin asli docker.sock , itu adalah 660, setidaknya di Server Ubuntu 18.04 saya.

@Taranchul Ya, saya mencoba masuk kembali dan me-reboot. Tidak berfungsi baik di laptop maupun di workstation saya.

Mungkin ini masalah 20,04, karena versi finalnya baru dirilis kemarin. Saya biasanya menunggu snapshot pertama dari setiap rilis LTS sekitar musim panas, yang semoga memiliki sebagian besar masalah gigi yang diperbaiki pada saat itu.

Bisakah Anda mengujinya pada Rilis yang lebih lama?

@Taranchul Sepertinya ada masalah dengan 20.04. Ini berfungsi dengan baik pada 19.04

Itu adalah informasi yang berguna 👍 meskipun itu tidak banyak membantu Anda saat ini. Jadi, apakah itu pilihan bagi Anda untuk menggunakan 18,04 hingga 20,04 dapat menjadi lebih matang dalam hal ini?

Satu tembakan jauh: Apakah Anda memeriksa bahwa pengguna benar-benar telah ditambahkan ke grup buruh pelabuhan?

@Taranchul Maksud saya, saya bisa menggunakan 18,04, tetapi karena saya sudah memigrasikan semuanya ke 20,04, saya mungkin tidak akan melakukannya.

Apakah menjalankan semua perintah buruh pelabuhan dengan sudo opsi yang valid sampai diperbaiki?

Sayangnya, saya tidak tahu banyak tentang buruh pelabuhan, jadi saya tidak bisa menjawab pertanyaan itu.

Saya menemukan petunjuk ini untuk menginstal buruh pelabuhan pada 20.04 yang melakukannya sedikit berbeda: https://www.how2shout.com/how-to/how-to-install-docker-ce-on-ubuntu-20-04-lts- focal-fossa.html

Mereka menambahkan grup buruh pelabuhan sebelum menambahkan pengguna. Mungkin itu perlu pada 20,04? (Saya belum memilikinya, jadi saya tidak bisa mengujinya sendiri.)

sudo groupadd docker
sudo gpasswd -a $USER docker
newgrp docker # or relogin to make the new group known to the system

@Taranchul Anda tahu apa yang aneh .... Saya menjalankan sudo chmod 660 /var/run/docker.sock untuk mengatur ulang izin dan setelah reboot masih berfungsi.

Dapatkah saya menganggap masalah telah diperbaiki atau mungkin masih ada risiko keamanan?
Mungkin saya lupa satu langkah ketika saya menginstal semuanya kemarin ... dan itu sebenarnya bukan masalah dengan Ubuntu 20.04?

Menurut pertanyaan ini di askubuntu.com , buruh pelabuhan awalnya membutuhkan sudo untuk memulai, tetapi mendapatkan kegunaan pengguna non-root dengan versi 19.03. Dalam komentar, seseorang menyebutkan bahwa tanpa grup buruh pelabuhan, kepemilikan docker.sock adalah root:root . Hanya setelah membuat grup buruh pelabuhan, menambahkan pengguna ke dalamnya, dan memulai ulang server buruh pelabuhan, itu berubah menjadi root:docker . Jadi, memeriksa apakah grup tersebut ada ( edit: dan jika ada, memeriksa kepemilikan docker.sock ) tampaknya merupakan ide yang bagus. Juga untuk memulai ulang instance buruh pelabuhan Anda.

Perhatikan salah satu jawaban berperingkat lebih rendah di sana, yang berbicara tentang ACL dan bagaimana Anda dapat mengaktifkan akses ke docker.socks dengan perintah setfacl .

Terakhir, tidak kalah pentingnya, ada peringatan tentang yang terakhir serta menambahkan pengguna ke grup buruh pelabuhan, karena memberi pengguna hak akses yang signifikan. 😎 Tapi menurut saya cara ini lebih disukai daripada mengubah izin file.

Membaca komentar terakhir Anda segera setelah menulis di atas, saya akan mengatakan senang dan mengamati semuanya. Sulit untuk mengetahui apakah Anda melewatkan sesuatu dan entah bagaimana memperbaikinya saat mencoba beberapa solusi.

@Taranul Hebat. Ini masih berfungsi setelah memulai ulang Docker. Jadi saya rasa itu hanya salah saya. Terima kasih atas bantuan Anda!

@flulu Dengan senang hati, dan terima kasih telah menerima peringatan pertama saya dengan ramah seperti yang dimaksudkan. :)

Pada Windows 10, itu diselesaikan dengan memutakhirkan ke WSL2, dan mencadangkan Distro Ubuntu saya ke WSL2.
https://docs.microsoft.com/en-us/windows/wsl/wsl2-install

Masalah ini terpecahkan ketika saya memulai ulang komputer. :tersenyum:

Ini memecahkan masalah saya.

sudo usermod -aG docker myuser

Terima kasih, @ Kirill-Babkin banyak.

Dipecahkan oleh:

sudo chmod 666 /var/run/docker.sock
sudo chmod 666 /var/run/docker.sock

Seperti yang dikatakan di sini sebelumnya , ini dapat membuka lubang keamanan di sistem Anda. Apakah Anda mencoba solusi usermod sebelumnya? Ini mungkin menimbulkan masalah keamanan, juga, karena memberikan akses lengkap kepada pengguna tersebut melalui pekerja galangan, tetapi dibandingkan dengan memberikan akses pengguna _every_ ke file yang dimiliki root, hal itu tampaknya lebih tidak berbahaya.

@ matteo-bombelli
Saya memiliki masalah yang sama.
Anda perlu memulai ulang buruh pelabuhan.
$ service docker restart
Saya menyelesaikannya dengan ini.

Itu adalah solusinya dan itu berhasil, terima kasih!

saya mendapatkan kesalahan ini di ubunt 20.0.4

saya menginstal dengan apt get dari sumber apt. Apakah ada versi yang lebih baru di ppa?

aku melakukannya
newgrp docker
dan itu berhasil

Saya sedang mengerjakan Lightsail. Mem-boot ulang gambar memperbaikinya.

Mungkin hanya mencoba menambahkan pengguna Linux Anda ke grup: buruh pelabuhan, lalu masuk kembali.

Di Ubuntu 20, buruh pelabuhan berjalan di bawah snap, seperti yang Anda lihat melalui 'systemctl status snap.docker.dockerd.service'

Itu mencoba untuk memulai dengan grup /var/run/docker.sock diatur ke 'docker', tetapi secara default, grup itu tidak ada di Ubuntu 20, bahkan jika Anda memilih snap Docker dalam instalasi.

Untuk mengatasinya, buat grup, tambahkan pengguna Anda ke grup, lalu reboot

sudo groupadd buruh pelabuhan
sudo usermod -G buruh pelabuhan $ USER
sudo reboot

Anda tidak bisa begitu saja keluar lalu masuk, dan sejauh yang saya tahu, Anda tidak dapat memulai ulang snap.docker.dockerd atau snapd itu sendiri dan izinnya berubah. Saya tidak tahu cara mengelabui agar melakukan hal yang benar tanpa me-reboot, jadi jika Anda tahu, beri tahu saya.

Saya menggunakan 20,04 dan saya memiliki masalah yang sama dan dapat melakukan sudo docker info tetapi tidak sebagai pengguna biasa saya. Saya berada di grup buruh pelabuhan dari sebelumnya, dan masih bisa menelusuri situs wordpress saya di 127.0.0.1. Saya harus menjalankan newgrp docker untuk memperbaikinya. Sangat aneh karena yang saya lakukan hanyalah mengunci workstation ini sejak saya memasang buruh pelabuhan 2 hari yang lalu. Mungkin pembaruan merusak sesuatu?

newgrp docker bekerja untuk saya

Menyetel DOCKER_HOST bekerja secara manual untuk saya

  1. Temukan jalur ke file kaus kaki Anda: (menggunakan sudo service docker status atau ps -aef | grep docker )
  2. ekspor DOCKER_HOST=unix://<path to sock file>

Dalam kasus saya, file kaus kaki terletak di /run/containerd/containerd.sock
jadi saya harus menjalankan export DOCKER_HOST=unix:///run/containerd/containerd.sock

Untuk kasus saya - Setelah memulai ulang cluster, masalah teratasi.

Di Ubuntu 20, buruh pelabuhan berjalan di bawah snap, seperti yang Anda lihat melalui 'systemctl status snap.docker.dockerd.service'

Itu mencoba untuk memulai dengan grup /var/run/docker.sock diatur ke 'docker', tetapi secara default, grup itu tidak ada di Ubuntu 20, bahkan jika Anda memilih snap Docker dalam instalasi.

Untuk mengatasinya, buat grup, tambahkan pengguna Anda ke grup, lalu reboot

sudo groupadd buruh pelabuhan
sudo usermod -G buruh pelabuhan $ USER
sudo reboot

Anda tidak bisa begitu saja keluar lalu masuk, dan sejauh yang saya tahu, Anda tidak dapat memulai ulang snap.docker.dockerd atau snapd itu sendiri dan izinnya berubah. Saya tidak tahu cara mengelabui agar melakukan hal yang benar tanpa me-reboot, jadi jika Anda tahu, beri tahu saya.

Saya yakin yang Anda maksud sudo usermod -aG buruh pelabuhan $ USER. Berjalan tanpa -a akan menyebabkan "Jika pengguna saat ini adalah anggota grup yang tidak terdaftar, pengguna akan dihapus dari grup."

Anda tidak bisa begitu saja keluar lalu masuk, dan sejauh yang saya tahu, Anda tidak dapat memulai ulang snap.docker.dockerd atau snapd itu sendiri dan izinnya berubah. Saya tidak tahu cara mengelabui agar melakukan hal yang benar tanpa me-reboot, jadi jika Anda tahu, beri tahu saya.

Relogin harus cukup untuk membuat grup baru aktif untuk pengguna itu.

Ini juga muncul untuk saya. Saya perlu memutuskan sambungan dengan klien nordvpn karena suatu alasan.

sudo buruh pelabuhan-menulis -d bekerja !!!

Sudahkah Anda mencoba tanpa sudo ? Anda seharusnya tidak membutuhkannya dan itu bisa mengacaukan kasus Anda. Juga, apa yang Anda lihat saat menjalankan docker info ?

ura jenius sialan. kamu tahu itu ? Terima kasih banyak bro. kamu menyelamatkan saya dari neraka.

Tidak yakin persis mengapa, tetapi dalam kasus saya, saya memiliki submodule yang tidak diperiksa. Menjalankan git submodule update --init dan menjalankan kembali docker-compose build memperbaiki masalah saya

Saya tidak yakin apa yang terjadi, saya me-restart PC saya dan mulai bekerja !!

Sama disini. 😃

Saya baru saja mengalami masalah yang sama. Saya menemukan bahwa karena alasan tertentu pengguna saya tidak ditambahkan ke grup keamanan buruh pelabuhan, pada gilirannya tidak mengizinkan saya izin pada soket unix buruh pelabuhan dan memberi saya _ERROR: Tidak dapat terhubung ke daemon Docker di http + docker: // localunixsocket - apakah itu berjalan_ .

Menambahkan grup buruh pelabuhan ke pengguna saya saat ini, lalu keluar dan masuk kembali memperbaiki semuanya untuk saya:
sudo usermod -aG docker $USER

juga, jangan lupa untuk menjalankan newgrp docker untuk mendapatkan akses ke grup itu di shell Anda saat ini. ref https://stackoverflow.com/a/48569858/2040522

Saya baru saja mengalami masalah yang sama. Saya menemukan bahwa karena alasan tertentu pengguna saya tidak ditambahkan ke grup keamanan buruh pelabuhan, pada gilirannya tidak mengizinkan saya izin pada soket unix buruh pelabuhan dan memberi saya _ERROR: Tidak dapat terhubung ke daemon Docker di http + docker: // localunixsocket - apakah itu berjalan_ .

Menambahkan grup buruh pelabuhan ke pengguna saya saat ini, lalu keluar dan masuk kembali memperbaiki semuanya untuk saya:
sudo usermod -aG docker $USER

Ini bekerja dengan sempurna. Anda harus masuk kembali untuk melihat hasilnya.

sudo usermod -aG docker $USER

Ini bekerja dengan sempurna. Anda harus masuk kembali untuk melihat hasilnya.

Atau, newgrp docker harus melakukannya tanpa masuk kembali.

sudo chmod 666 /var/run/docker.sock

Seperti yang dikatakan di sini sebelumnya , ini dapat membuka lubang keamanan di sistem Anda. Apakah Anda mencoba solusi usermod sebelumnya? Ini mungkin menimbulkan masalah keamanan, juga, karena memberikan akses lengkap kepada pengguna tersebut melalui pekerja galangan, tetapi dibandingkan dengan memberikan akses pengguna _every_ ke file yang dimiliki root, hal itu tampaknya lebih tidak berbahaya.

Anda memberi tahu benar, tetapi ini sangat penting untuk pengembang, saya hanya seorang pengembang dan saya memperbaikinya menggunakan perintah ini,
terima kasih khusus untuk @ shqear93

Ini menyakitkan dan saya tidak percaya bahwa masalah telah ditutup tiga tahun lalu tanpa tanggapan yang berarti dari Docker. Masalah github ini seharusnya tidak ada dalam kumpulan fitur Anda. Apa rencana untuk membereskan ini? Jangan memberikan ini kepada pengguna yang tidak memahami cara kerja grup dan pengguna serta sesi, atau perangkat lunak lain yang bekerja dengan cara yang mereka lakukan. _You_ memilih cara rumit dalam melakukan sesuatu.

Saya harus _restart_ komputer saya alih-alih logout / login untuk sudo usermod -aG docker my_user agar berlaku. Beberapa bukti tentang hal ini terjadi pada orang lain di sini: https://unix.stackexchange.com/questions/277240/usermod-ag-group-user-not-work.

Saya baru saja mengalami masalah yang sama. Saya menemukan bahwa karena alasan tertentu pengguna saya tidak ditambahkan ke grup keamanan buruh pelabuhan, pada gilirannya tidak mengizinkan saya izin pada soket unix buruh pelabuhan dan memberi saya _ERROR: Tidak dapat terhubung ke daemon Docker di http + docker: // localunixsocket - apakah itu berjalan_ .
Menambahkan grup buruh pelabuhan ke pengguna saya saat ini, lalu keluar dan masuk kembali memperbaiki semuanya untuk saya:
sudo usermod -aG docker $USER

juga, jangan lupa untuk menjalankan newgrp docker untuk mendapatkan akses ke grup itu di shell Anda saat ini. ref https://stackoverflow.com/a/48569858/2040522

Bekerja dengan sempurna untuk saya. Terima kasih!

Di Ubuntu 16.04, ini berfungsi untuk saya:
sudo service docker start && docker-compose up -d

ini berhasil untuk saya!

Saya baru saja mengalami masalah yang sama. Saya menemukan bahwa karena alasan tertentu pengguna saya tidak ditambahkan ke grup keamanan buruh pelabuhan, pada gilirannya tidak mengizinkan saya izin pada soket unix buruh pelabuhan dan memberi saya _ERROR: Tidak dapat terhubung ke daemon Docker di http + docker: // localunixsocket - apakah itu berjalan_ .
Menambahkan grup buruh pelabuhan ke pengguna saya saat ini, lalu keluar dan masuk kembali memperbaiki semuanya untuk saya:
sudo usermod -aG docker $USER

juga, jangan lupa untuk menjalankan newgrp docker untuk mendapatkan akses ke grup itu di shell Anda saat ini. ref https://stackoverflow.com/a/48569858/2040522

Ini menyelesaikan masalah saya, terima kasih !!!

Saya tidak tahu mengapa, tetapi yang memperbaikinya untuk saya adalah menghapus baris berikut dari file .env docker-compose saya:

DOCKER_HOST=tcp://localhost:2375

Dipecahkan oleh:

sudo chmod 666 /var/run/docker.sock

Terima kasih. Dipecahkan di Ubuntu 20.0.4 LTS

Saya baru saja mencoba bermain dengan izin dan baru saja melakukan:

sudo docker-compose build

Dan itu untuk balapan.
Intinya adalah masalah izin, jika layanan buruh pelabuhan telah berjalan, grup ditetapkan, izin soket semua diatur, dan masih tidak melihatnya berfungsi. Lakukan saja dengan sudo. Bekerja untuk saya, memiliki hal-hal yang lebih baik untuk dilakukan.

solusi apa pun untuk ubuntu 20.04?

solusi apa pun untuk ubuntu 20.04?

Apakah Anda mencoba solusi yang diposting sebelumnya? (https://github.com/docker/compose/issues/4181#issuecomment-629748049)

Singkatnya (dengan saran tambahan nanti):

sudo groupadd buruh pelabuhan
sudo usermod -aG buruh pelabuhan $ USER
newgrp buruh pelabuhan

Jika "buruh pelabuhan newgrp" tidak mencukupi, boot ulang mungkin diperlukan (ada komentar yang bertentangan tentang itu).

Apakah halaman ini membantu?
0 / 5 - 0 peringkat

Masalah terkait

bitver picture bitver  ·  3Komentar

DhairyashilBhosale picture DhairyashilBhosale  ·  3Komentar

dazorni picture dazorni  ·  3Komentar

CrimsonGlory picture CrimsonGlory  ·  3Komentar

saulshanabrook picture saulshanabrook  ·  3Komentar