Ich habe alles in diesem Thread versucht: https://github.com/docker/compose/issues/88
Immer noch kein GlĂŒck.
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.
Dies ist die Version:
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
Irgendwelche Ideen? Ich habe auch versucht, fig zu installieren, was sofort ohne Probleme funktioniert ...
Ich erhalte die gleiche Fehlermeldung, wenn ich Docker ausfĂŒhre.
Es wird gelöst, indem ich mich der Benutzergruppe 'Docker' hinzufĂŒge.
Versuchen Sie, den folgenden Befehl auszufĂŒhren, um sich der Gruppe hinzuzufĂŒgen
usermod -aG docker ${USER}
Oder Sie können den folgenden Befehl ausfĂŒhren, um herauszufinden, zu welchen Gruppen Sie gehören
groups $USER
Es sieht so aus, als wĂŒrde Docker-Compose die $DOCKER_HOST
env-Variable hier ignorieren, da versucht wird, anstelle der 127.0.0.1-Adresse eine Verbindung zum Socket herzustellen.
das gleiche Problem hier
Ich habe gerade die gleiche Fehlermeldung erhalten, als mein Laptop-WLAN ohne Kabelverbindung ausgeschaltet war. Ich aktiviere WiFi und verbinde mich mit dem drahtlosen Heimnetzwerk, dann ist das Problem gelöst.
Sie können 5.0.3 (Prebuild) unter https://www.virtualbox.org/wiki/Testbuilds ausprobieren. Es ist dieses Problem fĂŒr mich behoben.
Ich hatte dieses Problem mit Docker in meinem Mac, aber es wurde gelöst, als ich den Befehl compose ohne sudo ausfĂŒhrte. Es scheint also ein Benutzerproblem zu sein.
Mit sudo-Befehl auch fĂŒr mich gelöst
@rept hast du immer noch dieses Problem? Die Docker-Version, die Sie gemeldet haben, ist jetzt ĂŒber ein Jahr alt, was in Docker-Begriffen prĂ€historisch ist :)
Ich frage mich, ob dieses Problem offen gehalten werden sollte, da es jetzt alle möglichen GrĂŒnde sammelt, warum der DĂ€mon nicht erreicht werden kann (ich meine das nicht schlecht; danke an alle, die Lösungen vorgeschlagen haben, es wird geschĂ€tzt).
Ich habe eine neue Installation auf einem völlig anderen Computer durchgefĂŒhrt und sie funktioniert jetzt. Also schlieĂen Sie es.
Danke, @rept , und schön zu hören, dass es gelöst wurde!
Ich bekomme
ERROR: Couldn't connect to Docker daemon at http+docker://localunixsocket - is it running?
Auch jedes Mal wenn ich aktivieren tty: true
oder stdin_open: true
in docker-compose.yml
und lÀuft docker-compose up
.
Kann es verwandt sein?
Docker version 1.9.1, build a34a1d5
docker-compose version 1.5.2, build 7240ff3
Ich habe gerade mein Problem gelöst, indem ich den Befehl "docker-compose run ..." mit sudo ausgefĂŒhrt habe.
Ich bin darauf gestoĂen, als ich docker compose up -d
wĂ€hrend des Vagrant Up ausgefĂŒhrt habe. Benutzer vagrant
wurde zur Gruppe docker
hinzugefĂŒgt, aber der obige Fehler wird angezeigt, wenn er ohne sudo
. Es funktioniert spÀter, wenn man sich als Benutzer vagrant
anmeldet, aber wÀhrend der Bereitstellung fehlschlÀgt, sodass es etwas mit env-Variablen zu tun hat.
docker-compose version: 1.4.1
Einfache Lösung: sudo docker-compose up
Ich lief zu demselben Problem mit:
[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
Docker-Version:
[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
Das ist eine Problemumgehung, keine Lösung, oder?
Ich bin immer noch oft damit konfrontiert
Dies ist kein Kompositionsproblem. Wenn Sie von compose aus keine Verbindung zum Docker-Daemon herstellen können, gibt es einige wahrscheinliche Ursachen:
DOCKER_
env-Variablen zu exportieren. Dies erfolgt hĂ€ufig durch AusfĂŒhren von eval $(docker-machine env default)
Dies sind keine Probleme, die durch Verfassen gelöst werden können.
Es gibt ein Problem mit tty
, das hier gebucht wird: # 3106
Ich kann bestÀtigen: Dies ist kein Docker-Compose-Problem.
Wenn es hilft: Ich bin auf einem Ubuntu-Host auf dasselbe Problem gestoĂen (Verbindung konnte nicht hergestellt werden ...). Das AusfĂŒhren von sudo systemctl status docker.service -l
zeigte das "echte" Problem. In meinem Fall bestand die Lösung darin, alle Dateien in "/ var / lib / docker / network / files /" zu entfernen und den Docker-Dienst neu zu starten.
hi @dnephin @madflow , ich denke das ist ein Docker-Compose-Problem.
Da mit demselben Docker-Image und Docker-Netzwerk der Container erfolgreich gestartet werden kann
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
aber fehlgeschlagen mit "Docker-Compose Up". Die Datei docker-compose.yml entspricht den Optionen und Argumenten von "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: {}
Der Docker und verfassen Versionsinformationen:
[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
Wenn Sie ein Verbindungsproblem mit Compose und nicht mit Docker Cli reproduzieren können, öffnen Sie bitte ein neues Problem. Es ist groĂartig, alle Informationen, die Sie hier haben, sowie die Fehlermeldung und einen Link zu einer EinfĂŒgung mit docker-compose --verbose up
.
Ich bekomme das, wenn einer meiner Containernamen eine KamelhĂŒlle hat.
$ 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.
Ăndern Sie den Namen in "referencecombo" (alle Kleinbuchstaben) und es ist in Ordnung. Die Fehlermeldung hilft definitiv nicht, dies herauszufinden :(
@chriskessel Ich denke, Ihr Problem wird von # 2816 abgedeckt, es ist ein Fehler in Docker Engine.
Nach dem Neustart der Docker-Dienste funktioniert es fĂŒr mich :(
Service Docker neu starten
Ich hatte den gleichen Fehler nach 15 Minuten Debugging. Es stellt sich heraus, dass alles, was es braucht, ein sudo
:)
Schauen Sie sich [Erstellen einer Docker-Gruppe] hier https://docs.docker.com/engine/installation/linux/ubuntulinux/ an, um das sudo-PrÀfix zu entfernen.
Warum muss mit sudo laufen?
@fabiopaiva Docker stellt standardmĂ€Ăig eine Verbindung zu einem Unix-Socket her, bei dem es sich um eine Datei mit Lese- / Schreibrechten fĂŒr Root-Benutzer und Docker-Gruppen handelt:
$ ls -l /var/run/docker.sock
srw-rw---- 1 root docker 0 Jun 29 23:38 /var/run/docker.sock
Sie mĂŒssen also entweder root oder Mitglied der Docker-Gruppe sein, um eine Verbindung herzustellen. Wenn Docker einen TCP-Socket abhört, gelten die Berechtigungen nicht.
Ich lösche die Datei /var/run/docker.sock
wie könnte das korrigieren?
@pixies Neustart Der Docker-Dienst sollte ihn neu erstellen
Dies ist die richtige Antwort. In vielen FĂ€llen mĂŒssen Sie sich abmelden und wieder anmelden, damit die Ănderung wirksam wird. Das AusfĂŒhren des Befehls mit sudo funktioniert ebenfalls, aber das HinzufĂŒgen der erforderlichen Benutzer zur Docker-Gruppe ist eine bessere Lösung, sodass Sie keinen sudo-Zugriff erteilen mĂŒssen.
leoyuholo kommentierte am 14. Mai 2015
Es wird gelöst, indem ich mich der Benutzergruppe 'Docker' hinzufĂŒge.
Versuchen Sie, den folgenden Befehl auszufĂŒhren, um sich der Gruppe hinzuzufĂŒgen
usermod -aG docker ${USER}
Oder Sie können den folgenden Befehl ausfĂŒhren, um herauszufinden, zu welchen Gruppen Sie gehören
groups $USER
Es funktioniert wirklich, wenn eine Maschine neu gestartet wird.
@alexanderadam hast du eine Lösung gefunden? Ich habe jetzt den gleichen Fehler
@CnytSntrk Entschuldigung, ich habe das Problem anders gelöst. :zwinkern:
Aber viel GlĂŒck: four_leaf_clover: eine Lösung finden!
@alexanderadam danke: +1:
Ich habe gerade mein Problem gelöst, indem ich den Befehl "docker-compose run ..." mit sudo ausgefĂŒhrt habe.
Ich habe das Problem beim HinzufĂŒgen von Sudo gelöst
Neustart hat den Trick fĂŒr mich getan
Ich hatte auch das Problem, nachdem ich Benutzer zur Docker-Gruppe hinzugefĂŒgt hatte, um Sudo zu vermeiden. Neustart hat alles gelöst! Vielen Dank
Nach dem HinzufĂŒgen eines Benutzers zur Docker-Gruppe ist kein Neustart erforderlich. Melden Sie sich einfach ab und wieder an, es funktioniert fĂŒr mich
Ich habe es vor Rahman versucht. Es hat nicht funktioniert. Danke trotzdem
+1
Dies ist immer noch ein Problem unter Ubuntu 16.04 und ich habe mich zur Docker-Gruppe hinzugefĂŒgt und dann hat das erneute Protokollieren funktioniert. Dieses Problem sollte nicht geschlossen werden.
Ubuntu 16.04
https://github.com/docker/compose/issues/1214#issuecomment -102246925
Perfekt arbeiten, aber vorher neu starten
Ubuntu 16.04 hat den gleichen Fehler
Lösung (von https://docs.docker.com/engine/installation/linux/debian/ funktioniert nicht nur mit Debian):
FĂŒgen Sie die Docker-Gruppe hinzu, falls sie noch nicht vorhanden ist.
sudo groupadd docker
FĂŒgen Sie den verbundenen Benutzer "$ {USER}" zur Docker-Gruppe hinzu.
Ăndern Sie den Benutzernamen entsprechend Ihrem bevorzugten Benutzer.
Möglicherweise mĂŒssen Sie sich abmelden und erneut anmelden
dies wird wirksam.
sudo gpasswd -a ${USER} docker
Starten Sie den Docker-Daemon neu.
sudo service docker restart
@ Mikevoets Ja, ich denke, das sollte dieses Problem lösen.
Ich hatte das gleiche bei einer Neuinstallation und stellte fest, dass ich kein "sudo" verwendete.
WeiĂ jemand, wie man es ohne sudo ausfĂŒhrt?
Siehe meine Antwort Marco
2016-11-08 0:15 GMT + 01: 00 Marco Ordonez [email protected] :
WeiĂ jemand, wie man es ohne sudo ausfĂŒhrt?
- -
Sie erhalten dies, weil Sie erwÀhnt wurden.
Antworte direkt auf diese E-Mail und sieh sie dir auf GitHub an
https://github.com/docker/compose/issues/1214#issuecomment -258994514,
oder schalten Sie den Thread stumm
https://github.com/notifications/unsubscribe-auth/AEN6D4Gfir0gehnbenS0IT65wLHAo2VWks5q77ERgaJpZM4D2vHs
.
@ mordonez-me, das HinzufĂŒgen zur Docker-Gruppe wird helfen.
sudo gpasswd -a ${USER} docker
Im Allgemeinen habe ich die folgenden Installationsschritte in Centos 7 mit root
user:
# 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
Und danach funktioniert es gut mit meinem Nicht-Root-Benutzer vagrant
.
Dies funktionierte nur fĂŒr mich, nachdem ich mich angemeldet und abgemeldet hatte, nachdem ich meinen Benutzer zur Docker-Gruppe hinzugefĂŒgt hatte.
FWIW, ich brauchte einen Neustart des Systems, bevor es fĂŒr mich funktionierte. Dies war wahrscheinlich auf die Tatsache zurĂŒckzufĂŒhren, dass die Kernel-Pakete linux-image-extra-*
neu installiert wurden, wie von Docker unter Ubuntu Xenial gefordert. Siehe Voraussetzungen nach Ubuntu-Version .
Versuchen Sie, dockerd
oder sudo dockerd
auszufĂŒhren, falls dies zuerst erforderlich ist, um den Daemon zu starten. Wenn Sie dockerd
mit sudo
, möchten Sie möglicherweise auch docker-compose up
mit sudo
ausfĂŒhren. sonst ist es gut
Da ich einige der vorgeschlagenen Befehle in diesem Thread verwendet habe, wollte ich meine Erfahrungen teilen.
Ich habe die folgende Konfiguration in 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
Ich bekomme folgendes Problem:
Wenn ich versuche, Docker zu verwenden:
Cannot connect to the Docker daemon. Is the docker daemon running on this host?
Wenn ich versuche, Docker Compose zu verwenden:
==> 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.
Dank dieses Kommentars habe ich es zum Laufen gebracht.
Lösung:
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
Dies ist kein Docker-Problem, sondern eher ein Linux-Socket-Berechtigungsproblem (sehr hÀufiges Problem zwischen PHP-Fpm und Nginx).
1) Docker ist eine klassische HTTP-Client / Server-Anwendung. Der Client spricht ĂŒber einen Socket oder eine IP mit dem Server
2) Der Socket ist eine Linux-Datei, die mit Berechtigung einem Benutzer und einer Gruppe gehört:
sudo ls -alh /var/run
...
srw-rw---- 1 root staff 0 Jan 22 10:09 docker.sock
....
3) Wenn Sie docker ps
ausfĂŒhren, mĂŒssen Sie ĂŒber die Berechtigung zum Zugriff auf die Datei docker.sock
verfĂŒgen
In diesem Fall machen Sie einfach sudo usermod -aG staff [ME]
, um Sie zur richtigen Gruppe hinzuzufĂŒgen (normalerweise sind es docker
) (dasselbe gilt fĂŒr php-fpm, wo die Gruppe normalerweise www-data ist).
Ich hatte das Problem, dass ich pip install docker-compose
. Ich habe es deinstalliert und sudo pip install docker-compose
. Jetzt funktioniert der Befehl sudo docker-compose up
.
Hoffentlich hilft das.
Wenn Sie Authentifizierungsprobleme mit einer Pip-Installation haben, verwenden Sie am besten pip install [package] - Benutzer als sudo. In einigen FĂ€llen fĂŒhrt die Verwendung von sudo zu Authentifizierungsproblemen, wĂ€hrend die Anwendung selbst ausgefĂŒhrt wird.
Am 25. Januar 2017, um 17:38 Uhr, schrieb oesah [email protected] :
Ich hatte das Problem, dass ich pip install docker-compose verwendet habe. Ich habe es deinstalliert und sudo pip install docker-compose verwendet. Jetzt funktioniert der Befehl sudo docker-compose up.
Hoffentlich hilft das.
- -
Sie erhalten dies, weil Sie kommentiert haben.
Antworten Sie direkt auf diese E-Mail, zeigen Sie sie auf GitHub https://github.com/docker/compose/issues/1214#issuecomment-275255529 an oder schalten Sie den Thread https://github.com/notifications/unsubscribe-auth/AMoEJ_g9iZOd2_BQUgaqgyk2mPLVvv5vv5vv5vv5vv5vv5vv5vv5vvvv .
unter Fedora Linux
FĂŒgen Sie Ihren Benutzer zur Docker-Gruppe hinzu
sudo usermod -aG docker username
Nach dem Neustart dieses Befehls reicht die Abmeldung nicht mehr aus wie bei anderen Distributionen
Nichts ist besser als das offizielle Dokument zu empfehlen:
https://docs.docker.com/engine/installation/linux/linux-postinstall/
Schau dir das an.
Das offizielle Dokument ist immer der erste Ort, an dem Sie Hilfe anfordern sollten.
Also habe ich den Benutzer zur Docker-Gruppe hinzugefĂŒgt:
sudo groupadd docker
sudo usermod -aG docker $USER
sudo service docker restart
Ich hatte immer noch Verbindungsprobleme, als docker ps
als Benutzer ausgefĂŒhrt wurde, der mir den folgenden Fehler gab:
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
Durch einen Neustart des Servers wurde dieses Problem behoben, sodass ich Docker-Befehle als Benutzer ausfĂŒhren konnte, ohne sudo zu verwenden:
sudo reboot now
... (wait for boot) ...
ssh server
docker ps
BEARBEITEN:
Es wurde erwĂ€hnt, dass Sie sich nur abmelden / anmelden mĂŒssen, damit dies aktualisiert wird. Nach dem HinzufĂŒgen des Benutzers zur Docker-Gruppe ist kein Neustart erforderlich, um Docker-Befehle ohne sudo auszufĂŒhren.
mit sudo hat es auch fĂŒr mich gelöst
Ohne Abmeldung:
sudo usermod -aG docker $USER
su $USER -
Wie oben erwÀhnt:
sudo usermod -aG docker $USER
Ausloggen.
Anmeldung.
Getan.
Ich hatte das gleiche Problem und in meinem Fall war die Ursache, dass ich einige Dateien in dem Ordner mit Dokcerfile hatte, auf die ich keine Zugriffsrechte hatte. Nach dem AusfĂŒhren von chown
fingen alle an, gut zu funktionieren.
Die Lösung mit usermod
hat bei mir nicht funktioniert.
AKTUALISIEREN
Es ist mir wieder passiert und dieses Mal bestand die Lösung darin, alle Docker-Container zu entfernen mit:
docker ps -aq | xargs docker rm
Dies ist tatsÀchlich ein Installationsproblem. Informationen zur Nachinstallation finden Sie auf der offiziellen Seite. Ich löse dieses Problem mit Hilfe des Dokuments.
Wie @ TrkiSF2 oben sagte. Nachdem Sie Ihren Benutzer zur Docker-Gruppe hinzugefĂŒgt haben, mĂŒssen Sie sich abmelden und erneut anmelden, damit er wirksam wird.
Beim Versuch, eine Verbindung zum Docker-Daemon-Socket unter Unix herzustellen, wurde die Berechtigung verweigert: ///var/run/docker.sock: http: //%2Fvar%2Frun%2Fdocker.sock/v1.29/containers/json: Unix wÀhlen /var/run/docker.sock: connect: Berechtigung verweigert
Lösung: # chmod -Rf 777 /var/run/docker.sock
Neustart gelöst nach getan
sudo usermod -aG docker $ {USER}
Habe dieses Problem auf digitalen Ozeantröpfchen. Das Setzen von Droplet auf die interne Kernelverwaltung hat dieses Problem fĂŒr mich behoben. Https://www.digitalocean.com/community/tutorials/how-to-update-a-digitalocean-server-s-kernel#setting -up-the-droplet-for -internes-Kernel-Management
Ich hatte dieses Problem bei einem Code-Repo, das einen Moment lang gut lief und dann nicht. Ich hatte andere Repos auf demselben Computer und demselben Konto, die einwandfrei erstellt wurden, sodass es sich nicht um ein Gruppenproblem oder etwas anderes bei der Systemkonfiguration handelte. Ich hatte kein DOCKER_HOST env var gesetzt. Ich vermute, dass dieser Fehler aus verschiedenen GrĂŒnden verursacht werden kann, aber fĂŒr mich war er der Root-Besitz der Build-Artefakte im Repo-Verzeichnis. sudo chown -R
Alle Dateien im Repo zum Benutzerkonto haben das Problem fĂŒr mich gelöst.
Ich persönlich habe die Lösung von
Ich bin auf dieselbe Fehlermeldung gestoĂen , und genau wie bei sudo chown -R
auf den Build-Assets hat das Problem behoben.
Ich erhalte die gleiche Fehlermeldung, wenn ich "Docker-Compose Build" ausfĂŒhre.
Also habe ich den Befehl sudo hinzugefĂŒgt und er funktioniert einwandfrei. ($ sudo docker-compose build)
Dies könnte eine andere Lösung sein:
sudo chmod 777 /var/run/docker.sock
@Farada das Ăndern der Berechtigungen ist gefĂ€hrlich; Der Zugriff auf die Docker-API entspricht dem Root-Zugriff auf Ihrem Computer. Durch Ăndern der Berechtigungen in 777 erhĂ€lt jeder auf dem Host-Root-Zugriff Zugriff.
Das HinzufĂŒgen Ihres Benutzers zur Docker-Gruppe ist die Lösung dafĂŒr. Wie oben erwĂ€hnt, mĂŒssen Sie Ihren Server / Computer neu starten. Bitte nichts an 777 Ă€ndern!
Wenn Sie Docker mit dem Befehl sudo installiert haben, versuchen Sie es mit sudo YOUR_COMMAND.
In meinem Fall hat Docker bei jedem AusfĂŒhren des Containers Ordner und Dateien in meinem Projektordner erstellt (ich verwende Volumes, um alle Quellen usw. zu verknĂŒpfen).
StandardmĂ€Ăig wird ein Docker-Image mit dem Root-Benutzer ausgefĂŒhrt. Dies hat das Problem verursacht. Immer wenn ich Build-Prozesse in meinem Image ausfĂŒhrte, wurden fĂŒr die Ausgabedateien root:root
Berechtigungen festgelegt, was sich in meinem widerspiegelt
Dateisystem.
Es stellt sich heraus, dass dieser Fehler ausgelöst wird, wenn Docker nicht auf diese Dateien zugreifen kann, da er beim Start des Builds als der Benutzer ausgefĂŒhrt wird, mit dem Sie den Befehl ausgefĂŒhrt haben. Wenn es die Verzeichnisse / Dateien mit root:root
trifft, wird es gerettet und gibt einen generischen ....is it running?
Fehler, wenn es permission denied in X, cannot continue
sagen sollte .
In meinem Fall habe ich gerade die Dateien hinzugefĂŒgt, die mein Docker-Image in .dockerignore
generiert, und es wurde sofort gelöst.
Im Grunde wurde mir ein nicht verwandter Fehler gegeben.
Bearbeiten Ich sehe viele Leute, die sudo
als Lösung verwenden. Der Grund, warum dies "magisch" funktioniert, sind die Probleme, die ich in diesem Kommentar beschreibe. Wenn Sie unter sudo ausgefĂŒhrt werden, sind Berechtigungen kein Problem mehr, da Sie als root ausgefĂŒhrt werden. Dies ist keine Lösung!
Ich habe folgendes bekommen:
î° 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.
Das Problem war, dass einige Dateien im Kontext der Docker-Datei restriktive Berechtigungen hatten, eine schnelle sudo chown -R damo ./*
behoben.
Ich wĂŒrde jedoch argumentieren, dass es hier tatsĂ€chlich ein Problem mit docker-compose
gibt - ich hÀtte eine informative Fehlermeldung erhalten sollen, die genau angibt, dass es aufgrund eines Berechtigungsfehlers fehlgeschlagen ist, anstatt eines mehrdeutigen Verbindungsfehlers, der ein roter Hering war Mein Fall, als ich Zeit damit verschwendete, mich mit dem Docker-Daemon-Dienst selbst zu beschÀftigen.
Ich habe das ein paar Mal bekommen.
FĂŒr mich ist es kein Konfigurationsproblem. Stattdessen fĂŒhlt es sich an, als wĂŒrde Docker sterben und anhalten. WĂ€hrend eines Ereignisses kann ich immer noch nicht sagen, wann es auftritt.
Wie auch immer, wenn meine Intuition korrekt ist, könnte das Update sudo service docker restart
aber anscheinend ist dies nicht ausreichend.
Am Ende funktioniert also nur ein Neustart .
Der Docker-Daemon wird an einen Unix-Socket anstelle eines TCP-Ports gebunden. StandardmĂ€Ăig gehört dieser Unix-Socket dem Benutzer root, und andere Benutzer können nur mit sudo darauf zugreifen. Der Docker-Daemon wird immer als Root-Benutzer ausgefĂŒhrt. Linux Post Install
$ sudo groupadd docker
$ sudo usermod -aG docker $USER
Erinnerung: (Denken Sie daran, die Sitzung neu zu starten oder die VM neu zu starten.)
Ich hatte das gleiche Problem. Wie andere bereits erwĂ€hnt haben, hat es funktioniert, als ich das Docker-Compose mit sudo ausgefĂŒhrt habe.
Hallo Leute, ich hatte das gleiche Problem, als ich Fedora 26 verwendete, und dann habe ich die Lösung fĂŒr Fedora 25 gefunden, aber es funktioniert fĂŒr mich.
Hier ist der Ausschnitt:
$ sudo groupadd docker && sudo gpasswd -a ${USER} docker && sudo systemctl restart docker
$ newgrp docker
REF: https://developer.fedoraproject.org/tools/docker/docker-installation.html
Ich hoffe es hilft dir, danke
sudo systemctl status docker.service -l
ist sehr nĂŒtzlich, um das eigentliche Problem zu finden.
Ich hatte das gleiche, aber nur mit docker-compose build
. Dies war schlieĂlich nur ein Problem der Dateiberechtigung. Ich habe Dateien im Container erstellt, die root gehören, und es war nicht möglich, mit diesen Dateien zu erstellen. Ich habe einfach ein sudo chown -R $USER .
und es funktioniert.
Ich hatte den gleichen Fehler beim Erstellen eines MySQL-Containers, nachdem ich meinen vorherigen gelöscht hatte.
Der Grund war, dass ich einen Datenordner (aus GrĂŒnden der Persistenz) hatte, der dem Benutzer im vorherigen Container gehörte.
Die Lösung bestand darin, den Datenordner zu löschen. Warnung - Sie verlieren Ihre Daten. Wenn Sie Ihre Daten behalten möchten, verschieben Sie möglicherweise den Datenordner oder weisen Sie neue EigentĂŒmer zu.
habe den Trick gemacht, mich der Gruppe hinzuzufĂŒgen
usermod -aG docker $ {USER}
Neustart und funktioniert!
FĂŒr mich wurde dies durch Anmeldung im Admin-Modus behoben: sudo -s
Wenn das hilft!
Ich habe dieselbe Fehlermeldung erhalten, indem ich einen Bildnamen verwendet habe, der ein "+" - Zeichen enthÀlt. (Dies geschah, weil ich meine Bilder nach einer Versionskontroll-ID benannte.)
Zum Beispiel ein docker-compose.yaml
mit:
services:
foobar:
image: "foobar:a-b+c"
....
scheitert mit
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.
Das Entfernen des "+" aus dem Bildnamen funktionierte jedoch einwandfrei.
@fabiopaiva Ich auf dem Host zu sudo werden kann.
Jeder Benutzer mit Docker-AusfĂŒhrungszugriff kann ein einfaches Docker starten, das das gesamte Host-Dateisystem bindet und als Root darauf zugreift (dh Schattendateien fĂŒr Kennwörter oder Ănderungsberechtigungen fĂŒr das gesamte System).
Sie mĂŒssen also sehr vorsichtig sein, wer diesen Befehl verwenden kann.
Danke @Gronan , ich erinnere mich nicht genau an diesen Thread.
Aber was Ihre ErklÀrung betrifft, wenn Sie mit sudo laufen, geben Sie diese Kontrolle trotzdem.
Vielen Dank fĂŒr die ErklĂ€rung
Ich brauche kein Sudo.
FĂŒgen Sie Ihren Benutzer der Docker-Gruppe Docker hinzu
und starten Sie den Docker-Dienst, den Dienst-Neustart-Docker oder systemctl restart docker.service neu
Es ist kein Neustart des Systems erforderlich.
Dieses Problem hĂ€ngt damit zusammen, wie ein Linux-Prozess unter welchem ââBenutzer und welcher Gruppe ausgefĂŒhrt wird und was passiert, wenn Sie die Mitgliedschaft in der Prozessgruppe Ă€ndern und wie sie wirksam wird.
usermod -aG docker ${USER}
dann _reboot_.
Dies liegt daran, dass der Docker- Daemon als Root-Benutzer und Docker-Compose als regulĂ€rer Benutzer ausgefĂŒhrt wird
Drei Schritte, um das Problem zu beheben:
Weitere Details in:
https://docs.docker.com/engine/installation/linux/linux-postinstall/#manage -docker-as-a-non-root-user
Anstatt neu zu starten, können Sie einfach su - ${USER}
. Ich denke, dies lÀdt den aktuell aktiven Benutzer im Terminal neu.
https://www.digitalocean.com/community/tutorials/how-to-install-and-use-docker-on-ubuntu-16-04
Dies funktionierte bei mir ohne Neustart:
sudo usermod -aG docker ${USER}
id
Mein Problem war schlieĂlich, dass ich in meinem Docker-Build-Kontext Dateien hatte, die weder meinem Benutzer noch meiner Gruppe gehörten. Zum Beispiel habe ich einen Ordner in meinem Docker-Build-Kontext in einen Mongo-Container eingebunden, sodass diese Dateien dem Mongodb-Benutzer und der Mongodb-Gruppe gehörten. Um dies zu beheben, habe ich diesen Ordner einfach gelöscht und stattdessen ein von Docker generiertes Volume fĂŒr meinen Mongodb-Dienst verwendet. AnschlieĂend konnte ich Docker-Compose ohne Sudo ausfĂŒhren
Ich kann die Beobachtung von @alexcdot bestĂ€tigen: Hatte Dateien in meinem Projekt-Repository, die root gehörten (keine Ahnung, wie sie dort ankamen). Durch Löschen wurde das Problem behoben. Jetzt kann ich Docker-Compose ohne Sudo-Berechtigungen ausfĂŒhren.
BestĂ€tigen Sie auch die Lösungen @alexcdot und @ tbuss93 . Hat auch fĂŒr mich gearbeitet. Ich denke, dass in einem solchen Fall der Fehler benutzerfreundlicher sein und im Idealfall problematische Dateien anzeigen sollte.
Ich hatte dieses Problem heute fĂŒr ein neues Dev-Notebook. Ich habe es so gelöst
1) Stoppen Sie Docker
sudo service docker stop
Wenn Sie sich diese Dateiberechtigung ansehen, werden Sie feststellen, dass Sie ohne sudo
keinen Zugriff auf den Docker-Daemon erhalten
sudo ls -la /var/run/docker.sock
srw-rw---- 1 root docker 0 Dec 21 19:16 /var/run/docker.sock
2) Ich entferne diese docker.sock
sudo rm /var/run/docker.sock
danke @rbahumi
3) Ich fĂŒhre diesen Befehl aus
sudo usermod -aG docker ${USER}
und jetzt sind Sie fast fertig. Melden Sie sich einfach ab oder starten Sie den Computer neu. Sie mĂŒssen den Dienst nicht starten, da er automatisch gestartet wird
@ cooljl31 Das Entfernen des
Dieses Update scheint jedoch nichts mit dem Problem zu tun zu haben
Dies löste meine Probleme: https://docs.docker.com/install/linux/linux-postinstall/#manage -docker-as-a-non-root-user
Denken Sie daran, sich abzumelden und wieder anzumelden. FĂŒhren Sie die Befehle als Benutzer aus, den Sie als Docker verwenden möchten.
sudo usermod -aG Benutzername
dann Abmelden und Anmelden, damit es funktioniert.
Arbeitete wie ein Zauber fĂŒr mich.
Ich musste den Docker-Dienst auch nach einer Neuinstallation von Docker-ce (17.12.0 ~ ce-0 ~ ubuntu) und Docker-compose manuell starten, damit die Fehlermeldung verschwindet:
sudo service docker start
Das Befolgen der in der Dokumentation beschriebenen Schritte hat das Problem mit meiner neuen Ubuntu 16.04-Installation behoben.
Ich musste das System neu starten, nachdem ich diese Ănderungen ĂŒbernommen hatte.
Verwenden Sie den Befehl: sudo docker-compose up -d
wenn du dich getroffen hast:
$ docker-compose up
FEHLER: Konnte keine Verbindung zum Docker-Daemon unter http + docker: // localunixsocket herstellen - lÀuft er?
Wenn es sich an einem nicht standardmĂ€Ăigen Speicherort befindet, geben Sie die URL mit der Umgebungsvariablen DOCKER_HOST an.
Sie sollten ĂŒberprĂŒfen, ob der aktuelle Login-Benutzer zu /var/run/docker.sock
Benutzergruppe docker
.
Versuchen Sie, Compose as sudo auszufĂŒhren.
Um dies ohne sudo
zu lösen, tun Sie, wie @leoyuholo im zweiten Kommentar sagte, und melden Sie sich ab und wieder ein.
Ich erhalte die gleiche Fehlermeldung, wenn ich Docker ausfĂŒhre.
Es wird gelöst, indem ich mich der Benutzergruppe 'Docker' hinzufĂŒge.Versuchen Sie, den folgenden Befehl auszufĂŒhren, um sich der Gruppe usermod -aG docker $ {USER} hinzuzufĂŒgen.
Oder Sie können den folgenden Befehl ausfĂŒhren, um herauszufinden, zu welchen Gruppen Sie gehören $ USER
Nach dem Abmelden und wieder anmelden und es funktioniert
Link zum Kommentar https://github.com/docker/compose/issues/1214#issuecomment -102246925
ps. Dies ist fĂŒr Leute wie mich, die die ersten paar Kommentare ĂŒberspringen -_-
Nur weil ich lange brauche, um dies wiederzuentdecken, und es das erste ist, was ich auf Google getroffen habe. An meinen Benutzerberechtigungen fĂŒr meinen Laptop ist nichts auszusetzen. Das Problem waren die Dateiberechtigungen fĂŒr einen der bereitgestellten Ordner. Wenn Sie die Berechtigungen entweder so korrigieren, dass Sie keinen Root benötigen, um auf sie zuzugreifen, oder sie löschen (in meinem Fall handelt es sich um zwischengespeicherte Assets fĂŒr Rails), wird sie erfolgreich durchlaufen.
Das eigentliche Problem ist, dass die Fehlermeldung Ihnen nicht sagt, was das spezifische Problem ist, wenn Sie ĂŒber Docker-Compose erstellen.
Ich habe das Problem auch getroffen. Es handelt sich um ein Benutzerzugriffsproblem.
Ich habe es gelöst, indem ich Docker-Compose im Root-Modus installiert und Docker-Compose auch im Root-Modus ausgefĂŒhrt habe.
@zjhken das ist nicht wirklich eine Lösung, sondern eine Problemumgehung.
Es stimmt etwas nicht mit den Dateiberechtigungen in Ihrem Projektordner oder Ihren Gruppenberechtigungen. Siehe @alexcdot und meine Beobachtungen fĂŒr den ersten Fall und versuchen Sie sudo usermod -aG docker <your username>
gefolgt von einer erneuten Anmeldung fĂŒr letzteren.
@ tbuss93 du hast recht. Ich habe Ihre Lösung verwendet, um es zu lösen. Es klappt. Dies könnte die beste Lösung sein.
schreiben => sudo docker info
FĂŒgen Sie einfach sudo
vor dem Befehl hinzu, den Sie ausfĂŒhren möchten!
In meinem Fall ist der Benutzer gitlab_ci_multi_runner
Teil der Docker-Gruppe. Das ist also nicht mein Problem:
groups $USER
gitlab_ci_multi_runner : gitlab_ci_multi_runner docker
Aber aus irgendeinem Grund bekomme ich immer noch MANCHMAL (beachten Sie, dass dies manchmal der Fall ist): Cannot connect to the Docker daemon at unix:///var/run/docker.sock. Is the docker daemon running?
Das heiĂt, ich habe das GefĂŒhl, mein Daemon stĂŒrzt ab oder ist instabil? Dies ist nicht praktisch, da ich eine stabile und zuverlĂ€ssige kontinuierliche Integration mit Docker wĂŒnschen wĂŒrde. Irgendwelche Gedanken, wie ich diese InstabilitĂ€t weiter beheben könnte?
Vielen Dank!
Leute, ich entschuldige mich fĂŒr mein Englisch. Ich habe das gleiche Problem, aber ich weiĂ, dass es auf der Konsole innerhalb von KDE passiert, aber wenn ich in einem Terminal crt alt f1 laufe, brauche ich kein sudo!. Ich habe bereits $ USER in der Docker-Gruppe. Ich hoffe du kannst mich verstehen. Danke
Renn einfach;
sudo chown $USER:docker /var/run/docker.sock
Auch ich hatte das Problem, dass unter Unix keine Verbindung zum Docker-Daemon hergestellt werden kann: ///var/run/docker.sock. LÀuft der Docker-Daemon? ' SpÀter bemerkte ich Folgendes.
[ ec2-user @ ip-172-28-6-201 docker -elk] $ die docker-compose
/ usr / local / bin / docker-compose
[ ec2-user @ ip-172-28-6-201 docker -elk] $ welcher Docker
/ usr / bin / docker-compose
Da sich die Docker-Compose-BinĂ€rdatei in / usr / local befindet, konnte ich den Docker-Compose-Befehl ohne 'sudo' ausfĂŒhren. Um den Docker-Befehl auszufĂŒhren, benötigte ich einen Sudo-Zugriff.
Ich habe mit folgenden Befehlen behoben.
cp / usr / local / bin / docker-compose / usr / bin / docker-compose
chmod + x / usr / bin / docker-compose
sudo rm / usr / local / bin / docker-compose
ĂberprĂŒfen Sie nun, ob der Befehl 'docker-compose' zur AusfĂŒhrung 'sudo' benötigt.
Nachdem die obigen Schritte ausgefĂŒhrt wurden, funktioniert der Docker-Compose-Befehl fĂŒr mich.
nach dem HinzufĂŒgen eines Benutzers zur Docker-Gruppe
Ein Neustart der Maschine reicht aus.
FĂŒr mich funktioniert es.
[ ec2-user @ ip-172-31-7-179 docker -elk] $ sudo docker-compose up -d
Meine Docker- und Docker-Compose-Version sind.
[ ec2-user @ ip-172-31-7-179 docker -elk] $ sudo docker version
Klient:
Version: 17.06.2-ce
API-Version: 1.30
Go-Version: go1.8.4
Git-Commit: 3dfb8343b139d6342acfd9975d7f1068b5b1c3d3
Gebaut: Fr 10 Nov 00:50:37 2017
OS / Arch: Linux / AMD64
Server:
Version: 17.06.2-ce
API-Version: 1.30 (Mindestversion 1.12)
Go-Version: go1.8.4
Git-Commit: 402dd4a / 17.06.2-ce
Gebaut: Fri Nov 10 00:51:08 2017
OS / Arch: Linux / AMD64
Experimentell: falsch
[ ec2-user @ ip-172-31-7-179 docker -elk] $ sudo docker-compose version
Docker-Compose Version 1.21.2, Build a133471
Docker-Py-Version: 3.4.0
CPython-Version: 2.7.12
OpenSSL-Version: OpenSSL 1.0.2k-fips 26. Januar 2017
Stellen Sie nach dem Befolgen der Prozedur zum HinzufĂŒgen eines Benutzers sicher, dass Sie Ihren Computer neu starten.
Ich kann diese Nachricht mit einem so strukturierten Projekt zuverlÀssig produzieren:
âââ docker-compose.yml
âââ Dockerfile
âââ Volumen
Wenn 'volume' eine bestimmte GröĂe ĂŒberschreitet, wird beim AusfĂŒhren von 'docker-compose build' die folgende Fehlermeldung angezeigt:
Wenn Sie den Befehl mit sudo ausfĂŒhren, wird das Image erstellt. Es ist jedoch hilfreich, sich bei der Automatisierung nicht auf sudo verlassen zu mĂŒssen.
Es scheint, dass die Ursache fĂŒr dieses Problem in meiner Instanz darin besteht, dass mein Volume-Verzeichnis an den Build-Kontext ĂŒbergeben wird . Ich vermute, einige EinschrĂ€nkungen fĂŒr Nicht-Sudo-Benutzer hinsichtlich der GröĂe des Build-Kontexts? oder Auszeit?
In meinem Fall besteht die Lösung darin, entweder das Volume-Verzeichnis zu verschieben oder es einem .dockerignore hinzuzufĂŒgen, um diese bestimmte Variante dieser Fehlermeldung zu beheben.
cd / var / run
sudo chmod 777 docker.sock
Sudo Service Docker starten
Docker laufen Hallo-Welt
Hallo von Docker!
Diese Meldung zeigt an, dass Ihre Installation anscheinend ordnungsgemÀà funktioniert.
Problem gelöst :)
mit sudo gelöst
Wenn alles, was hier gesagt wird, nicht funktioniert, installieren Sie Docker neu. Es hat bei mir funktioniert.
Meiner Erfahrung nach muss der Computer nicht neu gestartet werden. Dies ist hilfreich, wenn Sie sich in einer Produktionsumgebung befinden. Melden Sie sich nach sudo usermod -aG docker $USER
ab und wieder an. Dadurch sollte die neue Benutzergruppenzuweisung an jedes Programm oder jede App ĂŒbergeben werden braucht es.
Andernfalls funktioniert die Antwort von Not , wenn die Berechtigungen anfangs falsch waren oder Sie sich in einer Staging-Umgebung befinden. Sie können jedoch gegen Sicherheitsrichtlinien verstoĂen, wenn Sie in einer gehĂ€rteten Produktion arbeiten Umgebung. Sie möchten wirklich nur, dass root
und docker
Gruppenmitglieder Zugriff auf die docker.sock
und chmod 777
haben, um jedem Benutzer rwx
Zugriff zu gewÀhren.
/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.
Ich hatte das gleiche Problem gerade mit $ sudo docker-compose
. Ich wurde zuerst root, indem ich $ sudo su
, und dann lieĂ ich docker-compose
normal laufen.
Verwenden Sie diesen Link, um das Problem zu lösen, da es fĂŒr mich funktioniert. Ich hatte das gleiche Problem, aber jetzt funktioniert es gut
Ich erhalte die gleiche Fehlermeldung, wenn ich Docker ausfĂŒhre.
Es wird gelöst, indem ich mich der Benutzergruppe 'Docker' hinzufĂŒge.Versuchen Sie, den folgenden Befehl auszufĂŒhren, um sich der Gruppe hinzuzufĂŒgen
usermod -aG docker ${USER}
Oder Sie können den folgenden Befehl ausfĂŒhren, um herauszufinden, zu welchen Gruppen Sie gehören
groups $USER
Und dann starten Sie Ihren Computer neu
Dieser Thread ist hilfreich.
Ich habe das gleiche Problem eingegeben. Im Gegenteil, ich fĂŒge sudo am Anfang meiner Kommandozeile hinzu und es wurde gelöst!
Renn einfach;
sudo chown $USER:docker /var/run/docker.sock
Dieser hat fĂŒr mich gearbeitet. Ich bin mir nicht sicher, warum das HinzufĂŒgen von $ USER zur Docker-Gruppe das Problem nicht gelöst hat.
Bearbeiten: Es stellt sich heraus, dass der Docker-Dienst jedes Mal, wenn er neu lÀdt, /var/run/docker.sock
generiert. Sie mĂŒssen den genannten Trick jedes Mal wiederholen, wenn Sie Docker neu starten (wird nicht zu viel passieren, was?)
Hilfreichster Kommentar
Mit sudo-Befehl auch fĂŒr mich gelöst