Compose: Tidak dapat terhubung ke Docker daemon di http + unix: //var/run/docker.sock - apakah sudah berjalan?

Dibuat pada 29 Mar 2015  ·  131Komentar  ·  Sumber: docker/compose

Saya mencoba semuanya di utas ini: https://github.com/docker/compose/issues/88

Masih belum berhasil.

rept<strong i="8">@temponia</strong>:~/passenger$ netstat -ant  |grep 4243
tcp        0      0 127.0.0.1:4243          0.0.0.0:*               LISTEN     
rept<strong i="9">@temponia</strong>:~/passenger$ echo $DOCKER_HOST
tcp://localhost:4243
rept<strong i="10">@temponia</strong>:~/passenger$ sudo docker-compose build db uses an image, skipping
Building web...
Couldn't connect to Docker daemon at http+unix://var/run/docker.sock - is it running?

If it's at a non-standard location, specify the URL with the DOCKER_HOST environment variable.

Ini adalah versinya:

rept<strong i="14">@temponia</strong>:~/passenger$ sudo docker version
Client version: 1.0.1
Client API version: 1.12
Go version (client): go1.2.1
Git commit (client): 990021a
Server version: 1.0.1
Server API version: 1.12
Go version (server): go1.2.1
Git commit (server): 990021a

Ada ide? Saya juga mencoba menginstal ara yang langsung berfungsi tanpa masalah ...

Komentar yang paling membantu

Diselesaikan untuk saya juga dengan perintah sudo

Semua 131 komentar

Saya mendapatkan pesan kesalahan yang sama saat menjalankan buruh pelabuhan.
Ini diselesaikan dengan menambahkan diri saya ke grup pengguna 'buruh pelabuhan'

Coba jalankan perintah berikut untuk menambahkan diri Anda ke grup
usermod -aG docker ${USER}

Atau Anda dapat menjalankan perintah berikut untuk mengetahui grup mana yang Anda ikuti
groups $USER

Sepertinya docker-compose mengabaikan $DOCKER_HOST env var di sini, karena mencoba untuk menyambung ke soket sebagai ganti alamat 127.0.0.1.

masalah yang sama di sini

Saya menemukan pesan kesalahan yang sama sekarang, saat itu WiFi laptop saya mati tanpa koneksi kabel. Saya mengaktifkan WiFi dan terhubung ke jaringan nirkabel rumah kemudian masalah terpecahkan.

Anda dapat mencoba 5.0.3 (prebuild) di https://www.virtualbox.org/wiki/Testbuilds ? Ini memperbaiki masalah ini untuk saya.

saya punya masalah menggunakan buruh pelabuhan di mac saya, tetapi itu terpecahkan satu saya menjalankan perintah tulis tanpa sudo, jadi sepertinya itu adalah masalah pengguna,

Diselesaikan untuk saya juga dengan perintah sudo

@rept apakah Anda masih mengalami masalah ini? Versi buruh pelabuhan yang Anda laporkan sekarang sudah lebih dari satu tahun, yang merupakan prasejarah dalam istilah buruh pelabuhan :)

Saya ingin tahu apakah masalah ini harus tetap terbuka karena sekarang mengumpulkan semua jenis _possible_ alasan daemon tidak dapat dijangkau (saya tidak bermaksud ini dengan cara yang buruk; terima kasih semua orang telah menyarankan solusi, itu dihargai)

Saya melakukan penginstalan baru pada mesin yang sama sekali berbeda dan sekarang berfungsi. Jadi Anda van menutupnya.

Terima kasih, @rept , dan senang mendengarnya telah diselesaikan!

saya mendapat

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

juga setiap kali saya mengaktifkan tty: true atau stdin_open: true di docker-compose.yml dan menjalankan docker-compose up .

Bisakah itu terkait?

Docker version 1.9.1, build a34a1d5
docker-compose version 1.5.2, build 7240ff3

Saya baru saja memecahkan masalah saya menjalankan perintah "docker-compose run ..." dengan sudo.

Saya mengalami ini ketika menjalankan docker compose up -d selama gelandangan. Pengguna vagrant telah ditambahkan ke grup docker tetapi kesalahan di atas muncul saat menjalankannya tanpa sudo . Ia bekerja nanti jika seseorang masuk sebagai pengguna vagrant tetapi gagal selama penyediaan sehingga ada hubungannya dengan variabel env?

docker-compose version: 1.4.1

Solusi sederhana: sudo docker-compose up

Saya mengalami masalah yang sama dengan:

[root<strong i="6">@c910f05c01bc07</strong> xcat-docker]# docker-compose version
docker-compose version 1.6.2, build 4d72027
docker-py version: 1.7.2
CPython version: 2.7.9
OpenSSL version: OpenSSL 1.0.1e 11 Feb 2013

versi buruh pelabuhan:

[root<strong i="10">@c910f05c01bc07</strong> xcat-docker]# docker version
Client:
 Version:      1.10.2
 API version:  1.22
 Go version:   go1.5.3
 Git commit:   c3959b1
 Built:        Mon Feb 22 16:16:33 2016
 OS/Arch:      linux/amd64

Server:
 Version:      1.10.2
 API version:  1.22
 Go version:   go1.5.3
 Git commit:   c3959b1
 Built:        Mon Feb 22 16:16:33 2016
 OS/Arch:      linux/amd64

Itu adalah solusi, bukan solusi, bukan?

Saya masih sering menghadapi ini

Ini bukan masalah penulisan. Jika Anda tidak dapat terhubung ke daemon buruh pelabuhan dari penulisan, ada beberapa kemungkinan penyebabnya:

  • Anda lupa mengekspor variabel DOCKER_ env, yang sering dilakukan dengan menjalankan eval $(docker-machine env default)
  • ada masalah jaringan antara Anda dan host buruh pelabuhan jarak jauh (jika Anda menjalankan pada penyedia cloud)
  • ada masalah dengan daemon buruh pelabuhan yang berjalan di VM Virtualbox
  • pengguna Anda tidak memiliki akses ke soket daemon buruh pelabuhan karena izin (jika Anda menjalankan di host linux). Solusinya adalah dengan sudo atau perbaiki izin.

Ini bukanlah masalah yang bisa diselesaikan dengan menulis.

Ada masalah dengan tty , yang ditilang di sini: # 3106

Saya dapat mengonfirmasi: Ini bukan masalah penulisan buruh pelabuhan.

Jika membantu: Saya menemukan masalah yang sama (Tidak dapat terhubung ...) pada host Ubuntu. Menjalankan sudo systemctl status docker.service -l menunjukkan masalah "sebenarnya". Solusi dalam kasus saya adalah menghapus semua file di "/ var / lib / docker / network / files /" dan memulai ulang layanan buruh pelabuhan.

hai @dnephin @madflow , saya rasa ini adalah masalah penulisan buruh pelabuhan.

Karena dengan gambar buruh pelabuhan dan jaringan buruh pelabuhan yang sama, penampung dapat berhasil dimulai dengan

 sudo docker run -it --privileged=true  --hostname=xcatmn --name=xcatmn --add-host="xcatmn.clusers.com xcatmn:10.5.107.101" --volume /docker/xcatdata/:/install --net=subnet1 --ip=10.5.107.101  xcat/xcat-ubuntu-x86_64

tapi gagal dengan "docker-compose up". Docker-compose.yml benar setara dengan opsi dan argumen "docker run":

[root<strong i="12">@c910f05c01bc07</strong> xcat-docker]# docker-compose config
networks:
  default:
    external:
      name: subnet1
    external_name: subnet1
services:
  xcatmn:
    container_name: xcatmn
    extra_hosts:
      xcatmn.clusers.com xcatmn: 10.5.107.101
    hostname: xcatmn
    image: xcat/xcat-ubuntu-x86_64
    networks:
      default:
        ipv4_address: 10.5.107.101
    privileged: true
    stdin_open: true
    tty: true
    volumes:
    - /docker/xcatdata:/install:rw
version: '2.0'
volumes: {}

Docker dan info versi compose:

[root<strong i="16">@c910f05c01bc07</strong> xcat-docker]# docker version
Client:
 Version:      1.10.2
 API version:  1.22
 Go version:   go1.5.3
 Git commit:   c3959b1
 Built:        Mon Feb 22 16:16:33 2016
 OS/Arch:      linux/amd64

Server:
 Version:      1.10.2
 API version:  1.22
 Go version:   go1.5.3
 Git commit:   c3959b1
 Built:        Mon Feb 22 16:16:33 2016
 OS/Arch:      linux/amd64
[root<strong i="17">@c910f05c01bc07</strong> xcat-docker]# docker-compose version
docker-compose version 1.7.0dev, build 99d68be
docker-py version: 1.8.0-dev
CPython version: 2.7.9
OpenSSL version: OpenSSL 1.0.1e 11 Feb 2013

Jika Anda dapat mereproduksi masalah koneksi dengan Tulis dan bukan dengan docker cli, buka masalah baru. Termasuk semua informasi yang Anda miliki di sini bagus, dan juga pesan kesalahan, dan tautan ke tempel dengan docker-compose --verbose up .

Saya mendapatkan ini jika salah satu nama wadah saya memiliki casing unta.

$ cat docker-compose.yml
referenceCombo:
  build: referenceCombo

$ docker-compose build
Building referenceCombo
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.

Ubah nama menjadi "referencecombo" (semua huruf kecil) dan tidak apa-apa. Pesan kesalahan pasti tidak membantu memecahkan masalah ini :(

@chriskessel Saya rasa masalah Anda dilindungi oleh # 2816, ini adalah bug di Mesin Docker.

setelah restart layanan buruh pelabuhan, ini bekerja untuk saya :(

layanan buruh pelabuhan restart

Saya mengalami kesalahan yang sama, setelah 15 menit debugging. Ternyata yang dibutuhkan hanyalah sudo :)
Lihat [Buat grup Docker] di sini https://docs.docker.com/engine/installation/linux/ubuntulinux/ untuk menghilangkan prefiks sudo.

Mengapa perlu menjalankan dengan sudo?

@fabiopaiva secara default buruh pelabuhan terhubung ke soket unix yang merupakan file dengan hak istimewa baca / tulis pengguna root dan kelompok buruh pelabuhan:

$ ls -l /var/run/docker.sock
srw-rw---- 1 root docker 0 Jun 29 23:38 /var/run/docker.sock

jadi Anda harus menjadi root atau anggota grup buruh pelabuhan untuk menyambung ke sana. Jika buruh pelabuhan sedang mendengarkan pada soket tcp izin tidak akan berlaku.

Saya menghapus file /var/run/docker.sock
bagaimana bisa benar?

@pixies memulai ulang layanan buruh pelabuhan harus membuatnya kembali

Ini jawaban yang benar. Dalam banyak kasus, Anda harus keluar dan masuk kembali agar perubahan diterapkan. Menjalankan perintah dengan sudo juga akan berfungsi, tetapi menambahkan pengguna yang diperlukan ke grup buruh pelabuhan adalah solusi yang lebih baik sehingga Anda tidak perlu memberikan akses sudo.

leoyuholo berkomentar pada 14 Mei 2015

Ini diselesaikan dengan menambahkan diri saya ke grup pengguna 'buruh pelabuhan'

Coba jalankan perintah berikut untuk menambahkan diri Anda ke grup
usermod -aG docker ${USER}

Atau Anda dapat menjalankan perintah berikut untuk mengetahui grup mana yang Anda ikuti
groups $USER

itu jahitan benar-benar berfungsi jika me-restart mesin.

@ alexanderadam apakah Anda menemukan solusi? saya mendapat kesalahan yang sama sekarang

@CnytSntrk maaf, jika tidak saya memecahkan masalah. :mengedipkan:
Tapi semoga berhasil: four_leaf_clover: menemukan solusi!

@alexanderadam terima kasih: +1:

Saya baru saja memecahkan masalah saya menjalankan perintah "docker-compose run ..." dengan sudo.

Saya memecahkan masalah menambahkan sudo

me-reboot melakukan trik untuk saya

Saya juga mengalami masalah setelah menambahkan pengguna ke grup buruh pelabuhan untuk menghindari sudo. Mem-boot ulang menyelesaikan semuanya! Terima kasih

setelah menambahkan pengguna ke grup buruh pelabuhan, reboot tidak diperlukan, cukup keluar dan masuk, itu berfungsi untuk saya

Saya mencoba sebelum rahman. Tidak berhasil. Terima kasih

+1

Ini masih menjadi masalah di Ubuntu 16.04 dan menambahkan diri saya ke grup buruh pelabuhan, kemudian relogging berfungsi. Masalah ini tidak boleh ditutup.

Ubuntu 16.04
https://github.com/docker/compose/issues/1214#issuecomment -102246925
Bekerja sempurna tetapi mulai ulang sebelumnya

Ubuntu 16.04 memiliki kesalahan yang sama

Solusi (dari https://docs.docker.com/engine/installation/linux/debian/, tidak hanya bekerja dengan Debian):

Tambahkan grup buruh pelabuhan jika belum ada.
sudo groupadd docker

Tambahkan pengguna terhubung "$ {USER}" ke grup buruh pelabuhan.
Ubah nama pengguna agar sesuai dengan pengguna pilihan Anda.
Anda mungkin harus keluar dan masuk kembali untuk
ini untuk diterapkan.
sudo gpasswd -a ${USER} docker

Mulai ulang daemon Docker.
sudo service docker restart

@ mikevoets ya saya pikir itu harus menyelesaikan masalah ini.

Saya mengalami hal yang sama pada instalasi baru dan menyadari itu karena saya tidak menggunakan 'sudo'.

Adakah yang tahu bagaimana menjalankannya tanpa menggunakan sudo?

Lihat jawabanku Marco

08-11 2016 0:15 GMT + 01.00 Marco Ordonez [email protected] :

Adakah yang tahu bagaimana menjalankannya tanpa menggunakan sudo?

-
Anda menerima ini karena Anda disebutkan.
Balas email ini secara langsung, lihat di GitHub
https://github.com/docker/compose/issues/1214#issuecomment -258994514,
atau nonaktifkan utasnya
https://github.com/notifications/unsubscribe-auth/AEN6D4Gfir0gehnbenS0IT65wLHAo2VWks5q77ERgaJpZM4D2vHs
.

@ mordonez-me, menambahkan ke grup buruh pelabuhan akan membantu.

sudo gpasswd -a ${USER} docker

Secara umum, saya telah mengikuti langkah-langkah instalasi di Centos 7 dengan root pengguna:

# Remove SELinux for dev VMs
yum remove -y selinux*
# Docker
curl -fsSL https://get.docker.com/ | sh
systemctl enable docker
systemctl restart docker
curl -L https://github.com/docker/compose/releases/download/1.8.1/docker-compose-`uname -s`-`uname -m` \
  > /usr/bin/docker-compose
chmod +x /usr/bin/docker-compose
gpasswd -a vagrant docker

Dan setelah itu berfungsi dengan baik dengan pengguna non-root vagrant .

ini hanya bekerja untuk saya setelah masuk dan keluar setelah menambahkan pengguna saya ke grup buruh pelabuhan.

FWIW, saya perlu restart sistem sebelum mulai bekerja untuk saya. Hal ini kemungkinan besar disebabkan oleh fakta bahwa paket kernel linux-image-extra-* baru saja diinstal seperti yang disyaratkan oleh buruh pelabuhan di Ubuntu Xenial . Lihat Prasyarat menurut Versi Ubuntu .

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.

Karena saya menggunakan beberapa perintah yang disarankan di utas ini, saya ingin berbagi pengalaman saya.

Saya memiliki konfigurasi berikut di Vagrantfile :

config.vm.provision "docker"
config.vm.provision "shell", inline: "docker ps", privileged: false
# or
# config.vm.provision "shell", inline: "docker-compose ps", privileged: false

Saya mendapatkan masalah berikut:

  • ketika saya mencoba menggunakan Docker:

    Cannot connect to the Docker daemon. Is the docker daemon running on this host?
    
  • ketika saya mencoba menggunakan Docker Compose:

    ==> default: Couldn't connect to Docker daemon at http+docker://localunixsocket - is it running?
    ==> default: 
    ==> default: If it's at a non-standard location, specify the URL with the DOCKER_HOST environment variable.
    

Berkat komentar ini saya membuatnya berfungsi.

Larutan:

config.vm.provision "docker"
# The following line terminates all ssh connections. Therefore
# Vagrant will be forced to reconnect.
# That's a workaround to have the docker running with the vagrant user
config.vm.provision "shell", inline:
   "ps aux | grep 'sshd:' | awk '{print $2}' | xargs kill", privileged: true
config.vm.provision "shell", inline: "docker ps", privileged: false

ini bukan masalah terkait Docker, tetapi lebih merupakan masalah izin soket linux (masalah yang sangat umum antara php-fpm dan nginx).

1) Docker adalah aplikasi klien / server HTTP klasik, klien akan berbicara melalui soket atau IP ke server
2) Soket adalah file linux, dengan izin, itu milik pengguna dan grup:

    sudo ls -alh /var/run
    ...
    srw-rw---- 1 root staff    0 Jan 22 10:09 docker.sock
    ....

3) Saat melakukan docker ps , Anda harus memiliki izin untuk mengakses file docker.sock

Dalam kasus ini, cukup lakukan sudo usermod -aG staff [ME] untuk menambahkan Anda ke grup yang tepat (biasanya docker ) (sama dengan php-fpm, di mana grup biasanya www-data).

Saya punya masalah, bahwa saya menggunakan pip install docker-compose . Saya mencopot pemasangannya dan menggunakan sudo pip install docker-compose . Sekarang perintah sudo docker-compose up berfungsi.

Semoga membantu.

kapanpun Anda memiliki masalah otentikasi dengan pip install yang terbaik adalah menggunakan pip install [paket] —pengguna daripada menggunakan sudo, dalam beberapa kasus menggunakan sudo akan menyebabkan masalah otentikasi saat menjalankan aplikasi itu sendiri.

Pada 25 Jan 2017, pada 17:38, oesah [email protected] menulis:

Saya punya masalah, bahwa saya menggunakan pip install docker-compose. Saya mencopotnya dan menggunakan sudo pip install docker-compose. Sekarang perintah sudo docker-compose bekerja.

Semoga membantu.

-
Anda menerima ini karena Anda berkomentar.
Balas email ini secara langsung, lihat di GitHub https://github.com/docker/compose/issues/1214#issuecomment-275255529 , atau nonaktifkan utas https://github.com/notifications/unsubscribe-auth/AMoEJ_g9iZOd2_BQUgaqgyk2mPLIv43eks5rV88AgaJpZM .

di Fedora Linux
tambahkan pengguna Anda ke grup buruh pelabuhan
sudo usermod -aG docker username

setelah perintah ini reboot , logout saja tidak cukup seperti pada distro lain

Tidak ada yang lebih baik daripada merekomendasikan dokumen resmi:

https://docs.docker.com/engine/installation/linux/linux-postinstall/

lihat ini.

Dokumen resmi selalu menjadi tempat pertama di mana Anda harus mencari bantuan.

Jadi saya akhirnya menambahkan pengguna ke grup buruh pelabuhan:

sudo groupadd docker
sudo usermod -aG docker $USER
sudo service docker restart

Saya masih mengalami masalah koneksi saat menjalankan docker ps karena pengguna memberi saya kesalahan berikut:

Got permission denied while trying to connect to the Docker daemon socket at unix:///var/run/docker.sock: Get http://%2Fvar%2Frun%2Fdocker.sock/v1.27/containers/json: dial unix /var/run/docker.sock: connect: permission denied

Mem-boot ulang server memperbaiki masalah ini memungkinkan saya menjalankan perintah buruh pelabuhan sebagai pengguna tanpa menggunakan sudo:

sudo reboot now
... (wait for boot) ...
ssh server
docker ps

EDIT:

Disebutkan bahwa Anda hanya perlu logout / login untuk memperbarui ini, tidak perlu restart untuk menjalankan perintah docker tanpa sudo setelah menambahkan pengguna ke grup buruh pelabuhan.

menggunakan sudo juga memecahkannya untuk saya

Tanpa logout:

sudo usermod -aG docker $USER
su $USER -

Seperti disebutkan di atas memang:

sudo usermod -aG docker $USER

Keluar.
Gabung.
Selesai.

Saya memiliki masalah yang sama dan dalam kasus saya, penyebabnya adalah saya memiliki beberapa file di folder dengan Dokcerfile yang saya tidak memiliki hak akses. Setelah menjalankan chown semua mulai bekerja dengan baik.
Solusi dengan usermod belum berhasil untuk saya.

MEMPERBARUI
Itu telah terjadi lagi untuk saya dan kali ini solusinya adalah menghapus semua kontainer buruh pelabuhan dengan:

docker ps -aq | xargs docker rm

Ini sebenarnya masalah instalasi. Silakan merujuk ke halaman resmi untuk pasca-instalasi. Saya mengatasi masalah ini dengan bantuan dokumen.

Seperti yang dikatakan @ TrkiSF2 di atas. Setelah menambahkan pengguna Anda ke grup buruh pelabuhan, Anda harus keluar dan masuk kembali agar mereka dapat diterapkan.

Mendapat izin ditolak saat mencoba menyambung ke soket daemon Docker di unix: ///var/run/docker.sock: Dapatkan http: //%2Fvar%2Frun%2Fdocker.sock/v1.29/containers/json: dial unix /var/run/docker.sock: terhubung: izin ditolak

solusi: # chmod -Rf 777 /var/run/docker.sock

Restart diselesaikan setelah melakukan

sudo usermod -aG buruh pelabuhan $ {USER}

Punya masalah ini pada tetesan samudra digital. Menetapkan droplet ke manajemen kernel internal memperbaiki masalah ini untuk saya https://www.digitalocean.com/community/tutorials/how-to-update-a-digitalocean-server-s-kernel#setting -up-the-droplet-for -internal-kernel-management

Saya memiliki masalah ini pada repo kode yang membangun dengan baik satu saat dan kemudian tidak. Saya memiliki repo lain di mesin yang sama dan akun yang sama yang dibangun dengan baik, jadi itu bukan masalah grup atau apa pun dengan konfigurasi sistem. Saya belum menyetel DOCKER_HOST env var. Saya menduga kesalahan ini dapat disebabkan oleh berbagai alasan, tetapi bagi saya itu berakhir dengan kepemilikan root artefak build di direktori repo. sudo chown -R semua file di repo ke akun pengguna memecahkan masalah bagi saya.

Saya pribadi mencoba solusi @cloojure dan berhasil. Tetapi hanya setelah saya menambahkan diri saya ke grup buruh pelabuhan dan masuk kembali. Bagian login ulang adalah essentail

Saya menemukan pesan kesalahan yang sama, dan seperti ChrisPappalardo , itu karena masalah izin file, bukan daemonnya. sudo chown -R pada aset build memperbaikinya.

Saya mendapatkan pesan kesalahan yang sama saat menjalankan "docker-compose build".
Jadi saya menambahkan perintah sudo dan itu berfungsi dengan baik. ($ sudo docker-compose build)

ini mungkin solusi lain:
sudo chmod 777 /var/run/docker.sock

@Farada mengubah izin berbahaya; memiliki akses ke Docker API sama dengan memiliki akses root pada mesin Anda; mengubah hak akses menjadi 777 memberi siapa pun di host akses root.

Menambahkan pengguna Anda ke grup buruh pelabuhan adalah solusi untuk ini, seperti yang disebutkan di atas, Anda perlu mereboot server / komputer Anda. Mohon jangan ubah apapun ke 777!

Jika Anda menginstal buruh pelabuhan menggunakan perintah sudo, coba sudo YOUR_COMMAND.

Dalam kasus saya, Docker membuat folder dan file di folder proyek saya setiap kali saya menjalankan kontainer (saya menggunakan volume untuk menautkan semua sumber, dll).

Secara default gambar buruh pelabuhan berjalan dengan pengguna root, dan inilah yang menyebabkan masalah. Setiap kali saya menjalankan proses pembangunan pada gambar saya, file keluaran akan memiliki izin root:root , yang tercermin dalam
berkas sistem.

Ternyata kesalahan ini terjadi ketika Docker tidak dapat mengakses file-file ini, karena ketika build dimulai, itu berjalan sebagai pengguna yang Anda gunakan untuk mengeksekusi perintah. Ketika itu mengenai dirs / files dengan root:root itu akan menebus dan memberikan kesalahan ....is it running? ketika seharusnya mengatakan permission denied in X, cannot continue .

Dalam kasus saya, saya baru saja menambahkan file yang dihasilkan gambar Docker saya menjadi .dockerignore dan itu diselesaikan secara instan.

Jadi pada dasarnya, saya diberi kesalahan yang tidak terkait.

Sunting Saya melihat banyak orang menggunakan sudo sebagai soultion. Alasan "ajaib" ini bekerja adalah karena masalah yang saya jelaskan dalam komentar ini. Saat menjalankan sudo, izin tidak lagi menjadi masalah karena Anda menjalankannya sebagai root. Ini bukan perbaikan!

Saya telah mendapatkan ini:

 docker-compose build
db uses an image, skipping
Building web
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.

Masalahnya adalah bahwa beberapa file dalam konteks Dockerfile memiliki izin terbatas, dengan cepat sudo chown -R damo ./* memperbaikinya.

Namun saya berpendapat memang ada masalah dengan docker-compose sini - saya seharusnya menerima pesan kesalahan informatif yang secara akurat menentukan bahwa itu gagal karena kesalahan izin, daripada kesalahan koneksi ambigu yang merupakan herring merah di kasus saya karena saya membuang waktu mengotak-atik layanan daemon buruh pelabuhan itu sendiri.

Saya mendapatkan ini beberapa kali.

Bagi saya ini bukan masalah konfigurasi. Sebaliknya, terasa seperti Docker mati dan berhenti, selama beberapa acara saya masih tidak tahu kapan itu terjadi.

Bagaimanapun jika intuisi saya benar, perbaikannya bisa menjadi sudo service docker restart tetapi tampaknya ini tidak cukup.

Jadi pada akhirnya satu-satunya solusi yang berhasil adalah reboot .

Daemon buruh pelabuhan mengikat ke soket Unix, bukan port TCP. Secara default, soket Unix dimiliki oleh root pengguna dan pengguna lain hanya dapat mengaksesnya menggunakan sudo. Daemon buruh pelabuhan selalu berjalan sebagai pengguna root. Instalasi Posting Linux

$ sudo groupadd docker
$ sudo usermod -aG docker $USER

pengingat: (ingat untuk memulai kembali sesi atau reboot VM)

  • Jika menguji pada mesin virtual, mungkin perlu untuk me-restart mesin virtual agar perubahan dapat berpengaruh.
  • Pada lingkungan desktop Linux seperti X Windows, keluar dari sesi Anda sepenuhnya dan kemudian masuk kembali.

Saya memiliki masalah yang sama. Seperti yang telah disebutkan orang lain, ketika saya menjalankan docker-compose dengan sudo, itu berhasil.

Hai, teman-teman, saya menghadapi masalah yang sama ketika saya menggunakan Fedora 26 dan kemudian saya menemukan solusi untuk Fedora 25, tetapi berhasil untuk saya.

Berikut cuplikannya:

$ sudo groupadd docker && sudo gpasswd -a ${USER} docker && sudo systemctl restart docker
$ newgrp docker

REF: https://developer.fedoraproject.org/tools/docker/docker-installation.html

Saya harap ini membantu Anda, Terima kasih

sudo systemctl status docker.service -l sangat berguna untuk menemukan masalah yang sebenarnya.

Saya memiliki yang sama tetapi hanya dengan docker-compose build . Ini akhirnya hanya masalah izin file. Saya membuat file di dalam container, yang dimiliki oleh root, dan tidak dapat dibuat dengan file tersebut. Saya hanya melakukan sudo chown -R $USER . dan berhasil.

Saya mengalami kesalahan yang sama saat membuat wadah mysql setelah menghapus yang sebelumnya.
Alasannya adalah saya memiliki folder data (untuk ketekunan) yang dimiliki oleh pengguna di penampung sebelumnya.
Solusinya adalah dengan menghapus folder data. Peringatan - Anda akan kehilangan data Anda. Jika Anda ingin menyimpan data Anda mungkin memindahkan folder data atau menetapkan pemilik baru.

melakukan trik menambahkan diri saya ke grup
usermod -aG buruh pelabuhan $ {USER}

reboot dan bekerja!

Bagi saya ini diselesaikan dengan masuk ke mode admin: sudo -s

Jika ini membantu!

Saya mendapatkan pesan kesalahan yang sama ini dengan menggunakan nama gambar yang mengandung karakter "+". (Ini muncul karena saya menamai gambar saya setelah ID kontrol versi.)

Misalnya, docker-compose.yaml berisi:

services:
  foobar:
    image: "foobar:a-b+c"
    ....

gagal dengan

Building foobar
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.

Tapi menghapus "+" dari nama gambar bekerja dengan baik.

@fabiopaiva Tidak yakin apakah seseorang membalas Anda tetapi itu harus sudo eksklusif pada awalnya karena setiap pengguna yang dapat menjalankan perintah docker dapat menjadi sudo di host .
Siapapun dengan akses eksekusi buruh pelabuhan dapat meluncurkan buruh pelabuhan sederhana mengikat seluruh sistem berkas host dan mengaksesnya sebagai root (yaitu berkas bayangan untuk kata sandi atau mengubah izin untuk seluruh sistem).
Jadi, Anda harus sangat berhati -

Terima kasih @Gronan , saya tidak ingat dengan jelas tentang utas ini.
Tapi, tentang penjelasan Anda, jika Anda menjalankan sudo Anda tetap memberikan kontrol ini.
Terima kasih atas penjelasannya

Tidak perlu sudo.
Tambahkan pengguna Anda ke grup buruh pelabuhan, buruh pelabuhan
dan restart layanan docker, restart layanan docker, atau, systemctl restart docker.service

Tidak perlu reboot sistem.

Masalah ini terkait dengan bagaimana proses linux berjalan di bawah pengguna mana dan grup mana dan apa yang terjadi ketika Anda mengubah keanggotaan ke grup proses dan bagaimana itu akan berlaku.

usermod -aG docker ${USER}
lalu _reboot_.

Ini karena daemon buruh pelabuhan berjalan sebagai pengguna root dan buruh pelabuhan-menulis sebagai pengguna biasa

Tiga langkah untuk memperbaikinya:

  1. sudo groupadd buruh pelabuhan
  2. sudo usermod -aG buruh pelabuhan $ USER
  3. Nyalakan ulang untuk menyegarkan perubahan.

Lebih detail di:
https://docs.docker.com/engine/installation/linux/linux-postinstall/#manage -docker-as-a-non-root-user

Daripada me-reboot Anda cukup mengetik su - ${USER} . Saya kira ini memuat ulang pengguna yang saat ini aktif di Terminal.

https://www.digitalocean.com/community/tutorials/how-to-install-and-use-docker-on-ubuntu-16-04

Ini berfungsi untuk saya tanpa reboot:

  1. Tambahkan grup buruh pelabuhan:
    sudo usermod -aG docker ${USER}
  2. Lari
    id
  3. Jika grup 'buruh pelabuhan' tidak muncul dalam daftar grup - logout dan login lagi

Masalah saya akhirnya adalah bahwa dalam konteks pembuatan buruh pelabuhan saya, saya memiliki file yang tidak dimiliki oleh pengguna atau grup saya. Misalnya, saya memasang folder dalam konteks pembangunan buruh pelabuhan saya ke wadah mongo, jadi file-file ini dimiliki oleh pengguna dan grup mongodb. Untuk memperbaikinya, saya baru saja menghapus folder itu, dan menggunakan volume yang dihasilkan oleh buruh pelabuhan untuk layanan mongodb saya sebagai gantinya, dan kemudian saya dapat menjalankan docker-compose tanpa sudo

Saya dapat mengonfirmasi observasi @alexcdot : Memiliki file di repositori proyek saya yang dimiliki oleh root (tidak tahu bagaimana mereka sampai di sana). Menghapusnya menyelesaikan masalah. Sekarang saya dapat menjalankan docker-compose tanpa hak sudo.

Juga mengonfirmasi solusi @alexcdot dan @ tbuss93 . Bekerja untuk saya juga. Saya pikir dalam kasus seperti itu, kesalahan harus lebih ramah pengguna dan idealnya menunjukkan file yang bermasalah.

Saya mengalami masalah ini hari ini untuk notebook Dev baru. Saya menyelesaikannya seperti ini
1) Hentikan Docker

sudo service docker stop

jika Anda melihat izin file ini, Anda akan melihat bahwa tanpa sudo Anda tidak akan bisa mendapatkan akses ke Docker daemon

sudo ls -la /var/run/docker.sock
srw-rw---- 1 root docker 0 Dec 21 19:16 /var/run/docker.sock

2) Saya menghapus docker.sock ini

sudo rm  /var/run/docker.sock

terima kasih @rbahumi
3) saya menjalankan perintah ini

sudo usermod -aG docker ${USER}

dan sekarang Anda hampir selesai cukup Log out atau lebih baik restart komputer Anda tidak perlu memulai layanan karena mulai secara otomatis

@ cooljl31 menghapus soket tampaknya tidak diperlukan, karena izin menunjukkan bahwa anggota dari grup buruh pelabuhan memiliki akses rw. Anda harus me-restart buruh pelabuhan dan sesi sekalipun.

Namun, perbaikan ini tampaknya tidak terkait dengan masalah tersebut

Ini memecahkan masalah saya: https://docs.docker.com/install/linux/linux-postinstall/#manage -docker-as-a-non-root-user
Ingat saja untuk keluar dan masuk kembali. Jalankan perintah sebagai pengguna yang ingin Anda gunakan buruh pelabuhan.

sudo usermod -aG nama pengguna

lalu Logout dan login untuk membuatnya berfungsi.

Bekerja seperti pesona bagi saya.

Saya juga harus memulai layanan buruh pelabuhan secara manual setelah instalasi baru docker-ce (17.12.0 ~ ce-0 ~ ubuntu) dan docker-compose untuk menghilangkan pesan kesalahan:

sudo service docker start

Mengikuti langkah-langkah yang dijelaskan dalam dokumentasi menyelesaikan masalah dengan instalasi Ubuntu 16.04 baru saya.

Saya harus me-reboot sistem setelah menerapkan perubahan itu.

Gunakan perintah: sudo docker-compose up -d

jika kamu bertemu:
$ buruh pelabuhan-menulis
EROR: Tidak dapat terhubung ke Docker daemon di http + docker: // localunixsocket - apakah sudah berjalan?

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

u harus memeriksa apakah pengguna login saat ini milik /var/run/docker.sock grup pengguna docker .
Coba jalankan Compose as sudo.

Untuk mengatasi ini tanpa sudo lakukan seperti yang dikatakan @leoyuholo di komentar kedua dan keluar dan masuk kembali.

Saya mendapatkan pesan kesalahan yang sama saat menjalankan buruh pelabuhan.
Ini diselesaikan dengan menambahkan diri saya ke grup pengguna 'buruh pelabuhan'

Coba jalankan perintah berikut untuk menambahkan diri Anda ke grup usermod -aG buruh pelabuhan $ {USER}

Atau Anda dapat menjalankan perintah berikut untuk mengetahui grup mana yang Anda ikuti $ USER

Setelah itu logout dan login kembali dan berhasil

tautan ke komentar https://github.com/docker/compose/issues/1214#issuecomment -102246925

ps. ini untuk orang seperti saya yang melewatkan beberapa komentar pertama -_-

Hanya karena saya butuh waktu lama untuk mengulang kembali ini, dan ini adalah hal pertama yang saya temukan di google. Tidak ada yang salah dengan izin pengguna saya di laptop saya. Masalahnya adalah izin file di salah satu folder yang dipasang. Jika Anda memperbaiki izin sehingga Anda tidak memerlukan root untuk mengaksesnya, atau menghapusnya (dalam kasus saya ini adalah aset cache untuk rel), itu berhasil dilalui.

Masalah sebenarnya adalah pesan kesalahan tidak memberi tahu Anda apa masalah spesifiknya ketika Anda membangun melalui docker-compose.

Saya bertemu masalah itu juga. Ini adalah masalah akses pengguna.
Saya menyelesaikannya dengan menginstal docker-compose dalam mode root dan menjalankan docker-compose juga dalam mode root.

@zjhken sebenarnya bukan solusi, melainkan solusi.
Ada yang salah dengan izin file di folder proyek atau izin grup Anda. Lihat @alexcdot dan pengamatan saya untuk kasus pertama, dan coba sudo usermod -aG docker <your username> diikuti dengan masuk kembali untuk yang terakhir.

@ tbuss93 Anda benar. Saya telah menggunakan solusi Anda untuk menyelesaikannya. Berhasil. Ini mungkin solusi terbaik.

tulis => info buruh pelabuhan sudo

Cukup tambahkan sudo sebelum perintah yang Anda coba jalankan!

Jadi dalam kasus saya, pengguna gitlab_ci_multi_runner adalah bagian dari grup buruh pelabuhan. Jadi itu bukan masalah saya:

groups $USER
   gitlab_ci_multi_runner : gitlab_ci_multi_runner docker

Tetapi untuk beberapa alasan saya masih mendapatkan KADANG (perhatikan bahwa ini terkadang terjadi): Cannot connect to the Docker daemon at unix:///var/run/docker.sock. Is the docker daemon running?

Artinya saya merasa daemon saya rusak atau tidak stabil? Ini tidak berguna, karena saya ingin memiliki integrasi berkelanjutan yang stabil dan andal dengan menggunakan Docker. Adakah pemikiran bagaimana saya bisa men-debug ketidakstabilan ini lebih jauh?

Terima kasih!

Orang-orang, mohon maaf atas bahasa Inggris saya. Saya memiliki masalah yang sama tetapi menyadari bahwa itu terjadi pada konsole di dalam kde, tetapi ketika saya menjalankan di terminal crt alt f1 saya tidak perlu menggunakan sudo !. Saya sudah memiliki $ USER di grup buruh pelabuhan. Saya harap Anda bisa mengerti saya. - terima kasih

Lari saja;

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

Saya juga menghadapi masalah 'Tidak dapat terhubung ke daemon Docker di unix: ///var/run/docker.sock. Apakah daemon buruh pelabuhan sedang berjalan? ' .Kemudian saya perhatikan yang berikut ini.

[ ec2-user @ ip-172-28-6-201 docker-elk] $ yang docker-compose
/ usr / local / bin / docker-compose
[ ec2-user @ ip-172-28-6-201 docker-elk] $ yang buruh pelabuhan
/ usr / bin / docker-compose

Karena biner docker-compose ada di dalam / usr / local, saya dapat menjalankan perintah docker-compose tanpa 'sudo'. Untuk menjalankan perintah 'buruh pelabuhan', saya membutuhkan akses sudo.

Saya tetap menggunakan perintah berikut.

cp / usr / local / bin / docker-compose / usr / bin / docker-compose
chmod + x / usr / bin / docker-compose
sudo rm / usr / local / bin / docker-compose

Sekarang verifikasi perintah 'docker-compose' membutuhkan 'sudo' untuk dieksekusi.
Setelah langkah-langkah di atas dijalankan, perintah docker-compose berfungsi untuk saya.

setelah menambahkan pengguna ke grup buruh pelabuhan
memulai ulang mesin akan dilakukan.

Bagi saya ini berhasil.
[ ec2-user @ ip-172-31-7-179 docker-elk] $ sudo docker-compose up -d

Versi penulisan buruh pelabuhan dan buruh pelabuhan saya adalah.

[ ec2-user @ ip-172-31-7-179 docker-elk] $ sudo versi buruh pelabuhan
Klien:
Versi: 17.06.2-ce
Versi API: 1.30.0
Go versi: go1.8.4
Git commit: 3dfb8343b139d6342acfd9975d7f1068b5b1c3d3
Dibangun: Jum 10 Nov 00:50:37 2017
OS / Arch: linux / amd64

Server:
Versi: 17.06.2-ce
Versi API: 1.30 (versi minimum 1.12)
Go versi: go1.8.4
Git commit: 402dd4a / 17.06.2-ce
Dibangun: Jum 10 Nov 00:51:08 2017
OS / Arch: linux / amd64
Eksperimental: salah
[ ec2-user @ ip-172-31-7-179 docker-elk] $ sudo versi docker-compose
docker-compose versi 1.21.2, build a133471
versi docker-py: 3.4.0
Versi CPython: 2.7.12
Versi OpenSSL: OpenSSL 1.0.2k-fips 26 Jan 2017

setelah mengikuti prosedur tambahkan pengguna pastikan Anda me-restart mesin Anda.

Saya dapat dengan andal menghasilkan pesan ini dengan proyek yang terstruktur seperti ini:

├── buruh pelabuhan-menulis.yml
├── Dockerfile
└── volume

Jika 'volume' melebihi ukuran tertentu, saya mendapatkan error berikut, saat menjalankan 'docker-compose build':

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

Menjalankan perintah dengan sudo mulai membangun image, tetapi, senang tidak harus bergantung pada sudo untuk otomatisasi.

Tampaknya penyebab masalah ini dalam contoh saya adalah volume saya diteruskan ke konteks pembuatan . Saya kira beberapa batasan pada pengguna non-sudo untuk membangun ukuran konteks? atau batas waktu?

Jadi dalam contoh saya, perbaikannya adalah dengan memindahkan volume dir, atau menambahkannya ke .dockerignore, menyelesaikan rasa khusus dari pesan kesalahan ini.

cd / var / run
sudo chmod 777 buruh pelabuhan.sock
sudo service docker mulai
buruh pelabuhan menjalankan halo dunia
Halo dari Docker!
Pesan ini menunjukkan bahwa instalasi Anda tampaknya bekerja dengan benar.

Memecahkan masalah :)

diselesaikan dengan sudo

Jika semua yang dikatakan di sini tidak berfungsi, instal ulang buruh pelabuhan. Itu berhasil untuk saya.

Tidak perlu me-restart mesin menurut pengalaman saya yang berguna jika Anda berada dalam lingkungan produksi - setelah sudo usermod -aG docker $USER , keluar dan masuk kembali. Itu seharusnya meneruskan tugas grup pengguna baru ke program atau aplikasi apa pun yang membutuhkannya.

Jika gagal, tanggapan 3 komentar dari @praveenbaliga dari komentar saya akan bekerja dalam keadaan darurat jika izinnya salah untuk memulai atau Anda berada dalam lingkungan pementasan, tetapi dapat melanggar kebijakan keamanan jika Anda bekerja dalam produksi yang diperkeras lingkungan Hidup. Anda benar-benar hanya ingin anggota grup root dan docker memiliki akses ke docker.sock dan chmod 777 akan memberikan rwx akses ke setiap pengguna.

/usr/lib/python2.7/dist-packages/requests/__init__.py:80: RequestsDependencyWarning: urllib3 (1.23) or chardet (3.0.4) doesn't match a supported version!
  RequestsDependencyWarning)
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.

Saya baru saja mengalami masalah yang sama saat menjalankan $ sudo docker-compose . Saya menjadi root pertama kali dengan melakukan $ sudo su , dan kemudian menjalankan docker-compose normal.

gunakan tautan ini untuk menyelesaikan masalah saat berfungsi untuk saya. Saya memiliki masalah yang sama tetapi sekarang berfungsi dengan baik

https://techoverflow.net/2017/03/01/solving-docker-permission-denied- While-trying-to-connect-to-the-docker-daemon-socket/

Saya mendapatkan pesan kesalahan yang sama saat menjalankan buruh pelabuhan.
Ini diselesaikan dengan menambahkan diri saya ke grup pengguna 'buruh pelabuhan'

Coba jalankan perintah berikut untuk menambahkan diri Anda ke grup
usermod -aG docker ${USER}

Atau Anda dapat menjalankan perintah berikut untuk mengetahui grup mana yang Anda ikuti
groups $USER

Dan kemudian restart komputer Anda

Utas ini bermanfaat.

Saya memasuki masalah yang sama. Sebaliknya, saya menambahkan sudo di awal baris perintah saya dan berhasil!

Lari saja;

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

Yang ini berhasil untuk saya. Tidak yakin mengapa menambahkan $ USER ke grup buruh pelabuhan tidak menyelesaikannya.
Sunting: ternyata, layanan buruh pelabuhan menghasilkan /var/run/docker.sock setiap kali dimuat ulang. Anda perlu mengulangi trik tersebut setiap kali Anda me-restart buruh pelabuhan (tidak akan terjadi terlalu banyak, eh?)

Apakah halaman ini membantu?
0 / 5 - 0 peringkat