Compose: FEHLER: Konnte keine Verbindung zum Docker-Daemon unter http + docker: // localunixsocket herstellen - läuft er?

Erstellt am 24. Nov. 2016  ·  204Kommentare  ·  Quelle: docker/compose

Ich weiß, dass es ein anderes Problem des gleichen Typs gibt, aber das andere Problem ist geschlossen, und ich habe alle vorgeschlagenen Lösungen ausprobiert, aber ohne Wirkung.

funktioniert immer noch nicht:

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

  • Ich bin Teil der Docker-Gruppe

  • Ich benutze auch Sudo

  • Der Prozess ist abgeschlossen

  • Die Variable DOCKER_HOST ist nicht gesetzt oder 127.0.0.1

  • Den Benutzer erneut verbunden

  • Starten Sie den Server neu

Ich denke, dass ich alle möglichen Konfigurationen ausprobiert habe, stimmt's?


Technische Daten:

  • Betriebssystem: Ubuntu 14.04.04 unter Virtualbox unter Windows 10 Home.

  • Docker Version 1.12.3, Build 6b644ec


Dankeschön!

kinquestion

Hilfreichster Kommentar

Haben Sie es ohne sudo versucht? Sie sollten es nicht brauchen und es könnte die Dinge in Ihrem Fall durcheinander bringen. Was sehen Sie auch, wenn Sie docker info ausführen?

Alle 204 Kommentare

Haben Sie es ohne sudo versucht? Sie sollten es nicht brauchen und es könnte die Dinge in Ihrem Fall durcheinander bringen. Was sehen Sie auch, wenn Sie docker info ausführen?

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

@ shin- Hallo! Ich habe es bereits mit sudo und auch mit root gemacht ( 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.

Hier ist die Operation als root gemacht

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#

Dies ist das Ergebnis von 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

@ HarshajayaweeraXHJ

dockerd funktioniert nicht, aber sudo service docker start funktioniert wie erwartet

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 Entschuldigung für die Verspätung

Sie müssen die Variable exportieren, damit sie in untergeordneten Prozessen verfügbar ist:

$ export DOCKER_HOST=127.0.0.1

Obwohl dies Ihr Problem nicht vollständig löst ...

Ich bin auf diesen Fehler gestoßen, weil ich die Ubuntu- Voraussetzungen törichterweise ignoriert habe.

danke @jamethy , ich habe genau das richtig gemacht und ich

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

Ich habe jetzt das gleiche Problem und versuche auch, Wordpress unter Docker zu installieren. Versuchte alles, kann aber immer noch keine Verbindung herstellen. Docker Daemon läuft nicht ... Ich werde es erneut versuchen

für mich bleibt das problem da:

Bind address needs a port: 127.0.0.1

Diese Nummer sollte jedoch vom Docker selbst erstellt werden

Ich habe das gleiche Problem wie das Originalplakat und habe alle oben vorgeschlagenen Dinge ausprobiert.

Es scheint, dass Docker manchmal "stirbt" und nicht läuft, und manchmal läuft es weiter. Ich habe dies bemerkt, als ich versucht habe, den Befehl docker info auszuführen und eine Fehlermeldung erhalten habe, dass Docker nicht ausgeführt wird. Mit service docker start konnte ich dann den Befehl info ausführen. Das habe ich bekommen:

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 Dieser Fehler ist ziemlich klar, Sie müssen einen Port angeben. Machen Sie stattdessen export DOCKER_HOST=127.0.0.1:2375 .

@ Matto-Bombelli
Ich hatte das gleiche Problem.
Sie müssen Docker neu starten.
$ service docker restart
Ich habe es damit gelöst.

Kann jemand die Lösung für dieses Problem schrittweise konsolidieren?

Hallo. Ich stimme diesem letzten Kommentar zu, ich habe das gleiche Problem.

Ich habe das gleiche Problem.

docker ps funktioniert.

docker-compose build (mit Version 2) funktioniert!

docker-compose build (mit Version 3) gibt diesen Fehler aus: /

@furkanmustafa @ shashijais789 @lalitkumarj Es wäre besser, wenn Sie eine neue Ausgabe mit allen Informationen -D .

gleiches Problem. funktioniert mit version 2, ich bekomme diesen fehler mit verison 3 config.

Die folgenden Schritte haben das Problem für mich gelöst.

Docker entfernen:
$ sudo apt-get remove docker docker-engine
neu installieren mit
curl -sSL https://get.docker.com/ | sh

Benutzer zu einer Gruppe hinzufügen:
sudo usermod -aG docker user

Möglicherweise kann dieser Fehler angezeigt werden, wenn eines der Bilder aus irgendeinem Grund nicht erstellt werden kann, was nicht unbedingt mit dem Docker-Daemon zu tun hat. Zum Beispiel habe ich es geschafft, dies zu debuggen, indem ich versucht habe, jeden Dienst mit Docker zu erstellen.

Meine Datei docker-compose.yml enthält:

version: '2'

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

Das Aufrufen von docker-compose build führt zu:

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

Also habe ich versucht, mit Docker jede Datei einzeln zu erstellen:

docker build -f="Dockerfile-drupal" .

Dies gab mir einen nützlicheren Fehler:

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

Das Beheben dieses Fehlers und das Sicherstellen, dass ich Dockerfile-drupal erstellen kann, führte dazu, dass docker-compose build einwandfrei funktionierte.

Möglicherweise wird der Code, der den Fehler ausgibt, in Folgendes geändert:

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.

Benötigt alle:
1) entfernen und neu installieren mit Curl, wie von Kirill-Babkin vorgeschlagen (und Socker aus Sicherheitsgründen neu starten)
2) Fügen Sie den Benutzer mit usermod -aG, logout und login zur Docker-Gruppe hinzu
3) Undefine DOCKER_HOST (wie von rkazak unter https://forums.docker.com/t/docker-commands-require-sudo/12987/2 vorgeschlagen), das ich zuvor mit> export DOCKER_HOST = 127.0.0.1: 2375 as festgelegt hatte vorgeschlagen von jamethy und shin
Dies war auf einem RPi 3B. Nach all dem arbeitet Docker jetzt. Gibt es eine Chance, dass dies bereinigt wird, damit andere diese schmerzhafte Erfahrung nicht durchlaufen müssen, da es sich um Erfahrungen handelt, die mit diesem Docker behoben werden sollen? Nur ein Vorschlag.

In meinem Fall hatte der LAN-Proxy (der in den Internetoptionen definiert ist - ich bin unter Windows) verhindert, dass docker-compose auf VirtualBox Host-Only Network Verbindung zur VM (mit Docker-Engine) herstellt. Durch Deaktivieren des Proxys wurde ein Problem behoben.

Unter Ubuntu 16.04 hat das bei mir funktioniert:
sudo service docker start && docker-compose up -d

Ich bin nicht sicher, was passiert ist, ich habe meinen PC neu gestartet und es hat funktioniert !! : nerd_face:

@ ssi-anik das ist Informatik 😄

Ich hatte gerade das gleiche Problem. Ich habe festgestellt, dass mein Benutzer aus irgendeinem Grund nicht zur Docker-Sicherheitsgruppe hinzugefügt wurde, was mir wiederum keine Berechtigung für den Unix-Socket des Dockers gewährt und mir _ERROR: Verbindung zum Docker-Daemon unter http + docker: // localunixsocket nicht möglich - läuft es_ .

Durch Hinzufügen der Docker-Gruppe zu meinem aktuellen Benutzer, anschließendes Abmelden und erneutes Anmelden wurde alles für mich behoben:
sudo usermod -aG docker $USER

Dies schlug bei einem bestimmten Erstellungsschritt für mich fehl. Ich habe versucht, docker build . im selben Verzeichnis wie die Docker-Datei auszuführen, und festgestellt, dass eine der Dateien, die ich für COPY habe, Berechtigungsprobleme hatte.

Das Ausführen von sudo chmod 755 -R . mein Problem behoben.

Wie von @ChrisPappalardo unter erwähnt
https://github.com/docker/compose/issues/1214
Überprüfen Sie Ihre Build-Verzeichnisse auf Dateibesitzungsberechtigungen. Da der Containererstellungsprozess im Kontext des aktuellen Benutzers ausgeführt wird, kann ein unzugängliches Verzeichnis in dem Baum, dessen Eigentümer root ist, zu einem Fehler führen, der zu dieser Meldung führt.

In meinem Fall funktionierte die Lösung von bereitgestellt wurden . Ich bin mir nicht sicher, wie der Besitzer überhaupt geändert wurde, aber das Handbuch docker build -f myDockerfile . hat mir geholfen, mein Problem zu finden.

Als ich ein ls -l das Verzeichnis im Besitz von 999 und docker Gruppe, der seltsame Teil ist, dass es nicht einmal für das Image war, das ich erstellen wollte, es war ein separater Dienst.

Ich bin auf diesen Fehler gestoßen, weil ich beim Debuggen ein solches Volume gemountet und vergessen habe, aufzuräumen.
Bände:
- ./itsLog:/var/log/itsLog

Als ich versuchte, die Docker-Datei zu erstellen, musste sie beim Versuch, den eingeschränkten Pfad hinzuzufügen, eine "verweigerte Berechtigung" erhalten haben.

Die Beschreibung des Fehlers ist etwas irreführend, aber ansonsten macht es Sinn.

Ich habe gerade die Datei /var/run/docker.sock Eigentümer auf aktuellen Benutzer geändert, und es ist in Ordnung.
Es scheint, dass Docker-Compose keine Berechtigung zum Zugriff auf /var/run/docker.sock hatte.

Die Beschreibung des Fehlers ist etwas irreführend

Da es bereits so uninformativ ist, warum nicht wirklich darauf festlegen und einfach "Nein" drucken? / s

In meinem Fall musste ich syslog überprüfen, um festzustellen, dass der Docker-Daemon die Build-Spezifikation abgelehnt hat, da die Tag-Zeichenfolge Großbuchstaben enthält.

Diese Fehlermeldung ist eine pauschale Anweisung und sollte wahrscheinlich dokumentiert (anstatt über Stapelüberlauf- und Github-Probleme nicht verwandter Projekte verteilt) oder erweitert werden.

Der Kommentar von
Der vorherige Container, den ich "voluminiert" hatte, hatte kompilierte Python-Dateien erstellt. *.pyc . Diese waren für meinen Benutzer nicht zugänglich.
Problem und Fix von oben kopiert:

Das Aufrufen von Docker-Compose Build führt zu:
Couldn't connect to Docker daemon at http+docker://localunixsocket - is it running?

Rufen Sie Docker direkt an:
docker build .

Was die wahre Ursache offenbart:
Error checking context: 'no permission to read from '/home/user/dev/project/app/utils.pyc''.

Dateiberechtigungen waren:
-rw-r----- 1 root root 11K Nov 29 16:32 utils.pyc
Und das Problem bestand darin, diese Dateien zu löschen:
sudo rm app/*.pyc

Hallo Leute,

Nach dem Upgrade auf Docker-Version 17.12 und dem Starten des Docker-Dienstes wurde mein Problem behoben.

[] # Service Docker starten
13 Umleiten nach / bin / systemctl start docker.service
# sudo docker-compose up -d

Wir müssen die Docker-Version aktualisieren und dann wird das Komponieren funktionieren.

Grüße,
Prasad RVS

Service Docker starten
Umleitung zu / bin / systemctl start docker.service
[ root @ kammu02-I9084 LDDS] # sudo docker-compose up -d
Erstellen des Netzwerks "ldds_default" mit dem Standardtreiber
Erstellen des Volumes "ldds_couch-data" mit dem Standardtreiber
Couchdb ziehen (isl-dsdc.ca.com:5000/analytics/lddscouchdb:2.1.8c.109) ...
2.1.8c.109: Aus Analytics / lddscouchdb ziehen
dd6405a9d644: Vollständig ziehen
10f659fc3a7e: Fertig ziehen
8a0ce719aeb8: Vollständig ziehen
fc23f8fbeac2: Fertig ziehen
5f02dd664e80: Fertig ziehen
f38b89a75914: Fertig ziehen
94add1a2ec1e: Vollständig ziehen
e7db1a0942ee: Fertig ziehen
87b0136db4b9: Fertig ziehen
be9ceeef7cb5: Vollständig ziehen
aed07b38ec55: Fertig ziehen
fc4632d89301: Vollständig ziehen
6152a07afebb: Vollständig ziehen
946862fd0151: Vollständig ziehen
43408ca5f730: Fertig ziehen
Digest: sha256: d3c13f08a4c9c3ed450325aef2dbe97abf0a55c13e9e2005109c05c713491fb3
Status: Neueres Bild für isl-dsdc.ca heruntergeladen. com: 5000 / analyse / lddscouchdb : 2.1.8c.109
Ldds-web ziehen (isl-dsdc.ca.com:5000/analytics/lddscdb:2.1.8c.109) ...
2.1.8c.109: Aus Analytics / lddscdb ziehen
dd6405a9d644: Existiert bereits
10f659fc3a7e: Existiert bereits
8a0ce719aeb8: Existiert bereits
eebc892936a1: Fertig ziehen
3c8dd6086ddb: Vollständig ziehen
73c1dfebea61: Vollständig ziehen
9fb23fd0d390: Fertig ziehen
f8943ba49c47: Fertig ziehen
a89ff5b6e340: Fertig ziehen
02615a9d0e05: Fertig ziehen
e129088bf324: Fertig ziehen
bf0ba8d71b09: Fertig ziehen
083300d85e61: Fertig ziehen
5deacfd6cb23: Fertig ziehen
220cda5539ae: Fertig ziehen
8cdee22c663b: Vollständig ziehen
d76b24524469: Fertig ziehen
9c5ade36643f: Fertig ziehen
c7ca782f404c: Fertig ziehen
6a7bbcfb0b95: Fertig ziehen
Digest: sha256: e2cb43e6b22ab344d7fc17f38e49caa3e295ef0efdfa43bc77ce671e0f172168
Ldds_couchdb_1 erstellen ... fertig
Ldds_couchdb_1 erstellen ...
Ldds_ldds-web_1 erstellen ... fertig

Ich bin auf den folgenden Fehler gestoßen:
"Konnte keine Verbindung zum Docker-Daemon unter http + docker: // localunixsocket herstellen - läuft er?"

Überprüfen Sie, ob es sich um ein Berechtigungsproblem handelt. Führen Sie "sudo docker ps" ohne diesen Fehler aus, und "docker ps" wird mit diesem Fehler ausgeführt. Führen Sie dann ein Berechtigungsproblem aus.

Versuchen Sie diese Schritte nach der Installation des Dockers. Möglicherweise müssen Sie den "Benutzer" zur Docker-Gruppe hinzufügen.
https://docs.docker.com/engine/installation/linux/linux-postinstall/

Das hat bei mir funktioniert.

Hallo zusammen, das passiert auch auf meinem Computer. Was seltsam ist, dass ich keine Änderungen oder Upgrades vorgenommen habe und es gerade erst angefangen hat.

@manjukori das passiert mir, obwohl ich in der Gruppe docker bin - aber der gleiche Befehl unter sudo funktioniert! Einerseits scheint es so, als ob Sie Recht haben, dass es sich um eine Art Berechtigungsproblem handelt, aber ich bin Mitglied der Gruppe docker ! So seltsam...

Ok, alle haben das Problem gefunden! In meinem Fall verwende ich docker-compose , mit dem ein Verzeichnis im Besitz von root in einem der Container bereitgestellt wird. Aus irgendeinem Grund wurde dadurch verhindert, dass docker-compose (auf dem docker build ) gestartet werden konnte.

Sobald ich dieses Verzeichnis entfernt habe, funktioniert alles wie zuvor (obwohl ich nicht sicher bin, warum es vorher tatsächlich funktioniert hat).

Vielleicht möchten Sie auch an Ihrem Ende nach etwas Ähnlichem suchen.

chmod 777 es

Ihr Benutzer muss sich in der Gruppe "Docker" befinden, um Docker-Compose ohne Sudo ausführen zu können. Fügen Sie diese Gruppe einfach Ihrem Konto hinzu, melden Sie sich ab und wieder an. Dies wurde für mich unter Ubuntu und Mac OS behoben.

@jhnoor danke! Es hat bei mir funktioniert
sudo chmod 755 -R .

Ich möchte einen der nützlichsten Kommentare zu dem anderen Problem wiederholen, der besagt, dass docker-compose --verbose up[|build] Ihnen dabei helfen wird, Ihrem Problem auf den Grund zu gehen. In meinem Fall war die Fehlermeldung von Docker-Compose irreführend - ich musste nur von Docker 1.10 (uralt) auf 1.12 aktualisieren.

Die Ausführlichkeit enthüllte dies:
docker.errors.APIError: 400 Client-Fehler: Ungültige Anforderung ("Client ist neuer als Server (Client-API-Version: 1.24, Server-API-Version: 1.22)")

In meinem Fall reichte nur ein einziger Befehl aus, um das Problem zu beheben: sudo usermod -aG docker $USER (wenn $ USER Ihr aktuell angemeldeter Benutzer ist). Damit habe ich einen erfolgreichen Lauf von docker-compose run ... ohne sudo von $USER User Shell. (Danke, @ Kirill-Babkin: Kuchen :).

  • Ubuntu 16.04.3 (super saubere neue Instanz unter AWS)
  • Docker 17.12.1-ce (über apt installiert, gefolgt von Get Docker CE für Ubuntu )

Die richtigen Antworten stammen von @manjukori und @yoloseem; Ich möchte nur betonen, dass die env-Variable $ USER verwendet wird, um die Anweisung sudo usermod -aG docker $USER zu verallgemeinern (vorausgesetzt, Sie sind als Benutzer, der Docker verwalten muss, mit der Shell verbunden). Weitere wichtige Details zur Docker-Konfiguration finden Sie unter dem oben angegebenen Link https://docs.docker.com/install/linux/linux-postinstall/.

@ ramblinwreck35 Ich habe meinen Kommentar bearbeitet, als du darauf hingewiesen hast. : +1:

Für mich war es mein Benutzer, der nicht Mitglied der Docker-Gruppe war. Lösen...
sudo usermod -aG docker ${USER}
Melden Sie sich dann entweder ab und wieder an oder sudo su - ${USER} , um die aktualisierte Konfiguration in Ihrem Terminal zu erhalten

systemctl restart docker
es lösen

Dies ist auf die Berechtigung zurückzuführen, auch nachdem Sie Ihren Benutzer zur Docker-Gruppe hinzugefügt haben. Gruppe neu starten oder Berechtigung neu laden.

Ich habe Sudo benutzt. Problem gelöst.

Ich bin mir nicht ganz sicher, ob mein Problem dasselbe war, aber ich poste meine Lösung hier, falls jemand anderes das gleiche Problem hat und auf diesen Thread stößt.

In meinem Fall habe ich vergessen, einige Verzeichnisse zu .dockerignore hinzuzufügen. Ich denke, es waren zu viele Daten für das Docker-Deamon, weil es funktioniert hat, nachdem einige Datenverzeichnisse ausgeschlossen wurden.

@harwood und ich haben dieses Problem in unserem Repository untersucht und Bildnamen zurückzuführen ist, der auf image Wir hatten ein Bild mit einem Großbuchstaben. Wir haben auch build: ./ . Als wir build: ./ haben, wurde eine neue Fehlermeldung angezeigt: invalid reference format: repository name must be lowercase . Ich hoffe, dies hilft jedem, dieses Problem zu verfolgen.

Hallo,

Mein Problem wurde mit den folgenden Schritten gelöst:

  1. Beenden Sie den Docker-Dienst
  2. Fügen Sie den Benutzer, mit dem Sie den Befehl docker-compose ausführen, mit dem folgenden Befehl zur Docker-Gruppe hinzu: usermod -aG Docker NAME_OF_USER (CentOS 7)
  3. Starten Sie den Docker-Dienst

Haben Sie eine solche DB Services-Konfiguration?

`` `Bände:
- ./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

Version: '3'
Dienstleistungen:
db:
bauen:
./db
Befehl: mysqld --default-authentication-plugin = mysql_native_password
Häfen:
- 3306: 3306
Bände:
- ./db/data:/var/lib/mysql
env_file:
- mysql.env
privilegiert: wahr
`` `

Das Neustarten von Docker hat auch bei mir funktioniert.

Ich habe es gelöst, indem ich den Besitzer von root auf /var/run/docker.sock . Ich weiß nicht, warum das apt-Paket als root installiert wird.

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

Ich bin gerade auf ein ähnliches Problem gestoßen und habe ein paar Stunden gebraucht, um die Ursache herauszufinden.

Die Geschichte sieht so aus: Wir verwenden Jenkins für CI und es werden Tests für unseren Hauptdienst mit Docker-Compose ausgeführt, da es auf wenigen anderen Diensten beruht. Ein Mitarbeiter schob einen Brach und Jenkins konnte ihn einfach nicht bauen, egal was passierte, obwohl der Code und die Tests vollkommen in Ordnung waren. Das Problem schien folgendes zu sein:

  • Jenkins erstellt für jede Pipeline einen Ordner und verkürzt seinen Namen auf eine gewisse Länge. Es besteht aus einem Ordnernamen wie "$GIT_BRANCH-$RANDOMISH_HASH" und der merkwürdige Teil ist, dass es die Zeichenfolge von Anfang an abschneidet.
  • Der Name des fehlgeschlagenen Zweigs enthielt Bindestriche ( - ), und der von Jenkins generierte resultierende Verzeichnisname begann mit - .
  • Dann würde Jenkins docker-compose in diesem Ordner ausführen und standardmäßig verwendet Docker-Compose den Verzeichnisnamen als Präfix, um Container zu benennen.
  • Dies bedeutet, dass versucht wird, Container mit Namen zu erstellen, die mit einem Bindestrich beginnen ( - ) und die als unzulässiges Zeichen für den Namen eines Docker-Containers erscheinen.
  • Und dann schlägt docker-compose mit einem generischen Fehler mit der irreführenden Meldung "Verbindung zum Docker-Daemon konnte nicht hergestellt werden - läuft er?" Fehl. Botschaft.

In meinem Fall bestand die Lösung darin, einen benutzerdefinierten Projektnamen ( -p ) anzugeben, der anstelle des Standardverzeichnisnamens verwendet werden würde:

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

@ alberto56 Feste Arbeit:

chown -R user:user .

Aktualisieren Sie außerdem Ihren .dockerignore, wenn etwas nicht zum Erstellen an Docker gesendet werden soll.

versuchen Sie dies hinzufügen sudo das ist es

sudo docker-compose up

Die Lösung für mich besteht darin, meinen Benutzer zur Docker-Gruppe hinzuzufügen, da Sie bei Verwendung von Docker kein sudo verwenden müssen
https://techoverflow.net/2017/03/01/solving-docker-permission-denied-while-trying-to-connect-to-the-docker-daemon-socket/

In meinem Fall, wenn Benutzer keine Berechtigungen für /var/run/docker.sock Docker-Compose haben, wurde versucht, eine Verbindung zu http+docker://localhost herzustellen.
sudo usermod -a -G docker $USER kann das beheben.

zu diesem Zeitpunkt https://github.com/docker/compose/issues/4181#issuecomment -317120015
Ein Neustart des PCs behebt dieses Problem

CentOS
Ich muss sagen, ich habe durch Trennen und erneutes Verbinden mit dem Server gelöst ...

tl; dr hör auf unnötige Kommentare
Jungs. Ich denke, dass ein Neustart nicht Teil eines Problems in GitHub sein sollte. Bitte. Es lenkt uns durch nicht nützliche Benachrichtigungen von dem ab, was wir tun. Beachten Sie, dass das Kommentieren hier einen Mehrwert für das Problem selbst darstellen soll. Ein Neustart löst das Problem nicht, da es erneut auftritt. Insbesondere in einem bestimmten Punkt steckt der Socket fest. Wenn also jemand etwas anderes findet, das zuvor in diesem Thread nicht kommentiert wurde, erhöht dies den Wert. Dann kommentieren Sie bitte. Wenn nicht, vermeiden Sie bitte das Erstellen von Benachrichtigungen :) - Entschuldigung für die lange Sache.

sudo chown $USER:docker /var/run/docker.sock funktioniert bei mir.

sudo which docker-compose up funktioniert gut für mich unter Ubuntu 16.

Es sieht nach verschiedenen Zugriffsproblemen aus. Ich habe dieses Problem mit dem neuen Fedora 28 und habe es durch Deaktivieren von Selinux behoben.

meins durch tippen gelöst
sudo dockerd
//dann
sudo docker-compose up -d

Stellen Sie ein Volume mit "/var/run/docker.sock:/var/run/docker.sock" und es wird funktionieren

Es hat funktioniert, nachdem ich den Server neu gestartet habe :)

Meins war nur, weil docker-compose nicht auf PATH . Die Antwort von @pelican hat das behoben

Befolgen Sie einfach die in dieser Ausgabe genannten Anweisungen und starten Sie Ihren Computer neu.

Nur das zu tun hat bei mir funktioniert:

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

Nur in einem Fall, in dem es funktioniert hat und einige Zeilen der Shell später (ohne Paketinstallation / -upgrade), wird dieser Fehler ausgegeben. Ich habe gerade andere Projekte ausprobiert und es wird erstellt, sodass ich das Gefühl habe, dass der Docker-Cache oder verwandte Interna zu diesem Image beschädigt sind. Das Bereinigen des Docker-Images, der Neustart des Docker-Dienstes oder des Betriebssystems funktionieren nicht. Docker ist korrekt installiert (ohne Sudoing).

Bearbeiten: Systembereinigung und Entfernen dieses bestimmten Containers haben das Problem behoben

Für mich war es mein Benutzer, der nicht Mitglied der Docker-Gruppe war. Lösen...
sudo usermod -aG docker ${USER}
Melden Sie sich dann entweder ab und wieder an oder sudo su - ${USER} , um die aktualisierte Konfiguration in Ihrem Terminal zu erhalten

Das ist die richtige Lösung

sudo docker-compose run ....... hat bei mir funktioniert :)

Ich hatte die gleichen Probleme und habe den Neustart meines Dockers behoben. Vielen Dank

Die Antwort finden Sie in der Docker-Dokumentation im Abschnitt mit den Schritten nach der Installation:
https://docs.docker.com/install/linux/linux-postinstall/

Wie auf doc berichtet:

Der Docker-Daemon wird anstelle eines TCP-Ports an einen Unix-Socket gebunden. Standardmäßig gehört dieser Unix-Socket dem Benutzer root, und andere Benutzer können nur mit sudo darauf zugreifen

Aus diesem Grund funktioniert es, den Befehl mit sudo auszuführen.

Wenn Sie stattdessen möchten, dass Ihr benutzerdefinierter Benutzer eine Verbindung zum Docker herstellt (wie in meinem Fall), sollten Sie ihn zur Docker- Gruppe hinzufügen mit:

sudo usermod -aG docker $USER

In der Tat sind die Eigentümer für die Docker-Steckdose:
srw-rw---- 1 root docker 0 Oct 3 11:31 /var/run/docker.sock

Danach sollten Sie sich, wie im Dokument angegeben, abmelden und erneut anmelden oder neu starten, wenn Sie auf einer virtuellen Maschine testen.

Ich habe eine virtuelle Ubuntu 14.04-Maschine getestet, die parallel ausgeführt wird, und musste sie nicht neu starten. Ich musste mich nur erneut anmelden, um das Problem zu lösen.

HINWEIS
Sehen Sie sich die in der Dokumentation angegebene Warnung an, da die Docker-Gruppe Berechtigungen gewährt, die dem Root-Benutzer entsprechen. Das Hinzufügen eines Benutzers zu dieser Gruppe kann je nach Szenario ein Sicherheitsproblem sein.

Führen Sie den Befehl als root aus

export DOCKER_HOST = 127.0.0.1

Suchen Sie sich dann im Ordner Ihrer
su docker-compose up

Wie in den vorherigen Kommentaren beschrieben, führt der Versuch, jeden Dienst einzeln zu erstellen, zu nützlicheren Fehlermeldungen.
Ich hatte diesen Fehler, weil mein Bildname in der Datei docker-compose.yml in Großbuchstaben geschrieben war.
Durch Ändern der Eigenschaften des Dienstnamens und des Dienstabbilds wurde das Problem behoben.

Starten Sie Docker einfach neu und es wird perfekt funktionieren.
Führen Sie: service docker restart und führen Sie dann einen beliebigen Docker-Befehl aus.

Sie müssen Ihren Benutzer zur Docker-Gruppe hinzufügen, um "sudo docker ..." zu vermeiden.
sudo usermod -aG Docker-Benutzername

Befindet sich Ihr Benutzer in der Docker-Benutzergruppe?

sudo usermod -aG docker ${USER}

Überprüfen Sie diesen Artikel: https://medium.com/@ibrahimgunduz34/if -you-konfrontiert-ein-Problem-wie-konnte-keine-Verbindung-zum-Docker-Daemon-unter-http-Docker-localunixsocket-is-27b35f17d09d

es hat auch bei mir nicht funktioniert. Ich habe gerade sudo vor dem Befehl hinzugefügt und es funktioniert jetzt.

sudo dockerd

gibt mir

Segmentation fault

Mein Problem ist also, dass der Docker-Daemon nicht ausgeführt wird, aber ich weiß nicht, was ich tun soll

Ich fand das nützlich

Ich habe mein docker-compose von 1.16.1 auf 1.23.1 aktualisiert und es gelöst!

Ich bin nicht sicher, was passiert ist, ich habe meinen PC neu gestartet und es hat funktioniert !!

Ich hatte das gleiche Problem und für mich war der Grund, warum ein Neustart behoben wurde, dass mein Benutzer nach der Installation zur Docker-Gruppe hinzugefügt wurde, aber diese Gruppenänderung wurde erst durch eine erneute Anmeldung wirksam.

Ich bin heute auf einen Fehler gestoßen, den ich in meiner Datei docker-compose.yml gemacht habe.

Ich habe versehentlich die Schlüsseldeklaration volumes: zweimal eingefügt, und dies führte dazu, dass docker.sock nicht einem inneren Container zugeordnet werden konnte. Der Fehler sah folgendermaßen aus:

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

Welches hätte nur sagen sollen:

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

Ich habe festgestellt, dass der erste ignoriert wird, wenn Sie zwei Volumenabschnitte wie diesen deklarieren. Der Container war deshalb natürlich nicht in der Lage, Docker-Befehle auszuführen.

Ich hatte das gleiche Problem, konnte es jedoch lösen, indem ich entweder das Docker als Root ausführte oder Ausführungsberechtigungen anwendete.

Ich habe diesen Link https://www.digitalocean.com/community/tutorials/how-to-install-and-use-docker-on-ubuntu-18-04 zum Ausführen des Docker-Befehls ohne Sudo verwendet.

Eine etwas offtopische Frage, seit einiger Zeit suche ich nach Dokumentation oder Referenzen bezüglich der http+docker:// Schema-Definition. Hat hier jemand eine URL oder einen Verweis auf dieses Schema? Vielen Dank!

Ich hatte dieses Problem, stellte jedoch fest, dass die Docker-Compose-Fehlermeldung äußerst wenig hilfreich und irreführend war. Um die eigentliche Ursache zu finden, habe ich nur docker build <service> manuell für jeden Dienst in meiner docker-compose.yml gefunden, bis ich einen gefunden habe, der sich weigerte zu erstellen. In meinem Fall handelte es sich um ein Berechtigungsproblem mit __pycache__ im Dienstverzeichnis.

Ich hatte das gleiche Problem und keine der Lösungen half.
Ich habe Rosso84 Idee ausprobiert.
Sudo Service Docker stoppen
sudo dockerd
Jetzt kann ich rennen
Docker-komponieren
erfolgreich.
Ein bisschen Fremdheit geht weiter -
sudo docker-komponieren
sagt Befehl nicht gefunden.

es hat bei mir funktioniert:
Sudo Groupadd Docker
sudo gpasswd -a $ USER Docker

Führen Sie entweder einen Newgrp-Docker durch oder melden Sie sich an / an, um die Änderungen an Gruppen zu aktivieren.
Newgrp Docker

Ich hatte dieses Problem bei der Verwendung eines nicht gesetzten Build-Arguments, das dann im Tag meines FROM -Bilds verwendet wurde. Fix: Setzen Sie das Build-Argument auf eine andere als eine leere Zeichenfolge.

Neustart des Servers löste es für mich

Wenn Sie kein Root-Benutzer sind, versuchen Sie, den Benutzer zur Docker-Berechtigung hinzuzufügen

sudo usermod -a -G docker theUser

Ich habe es durch einen Neustart meines Ubuntu behoben ...

Hallo ,

Problem mit sudo vor dem Befehl gelöst;),

Vielen Dank,
Moatez

Es ist ein Erlaubnisproblem.

- sudo chown $USER:docker /var/run/docker.sock Das hat bei mir in einem Ubuntu 18-Setup funktioniert.

Ich bin nicht sicher, was passiert ist, ich habe meinen PC neu gestartet und es hat funktioniert !!

Nehmen Sie Ihr wie, Herr

Geben Sie einfach sudo vor Ihrem Befehl docker-compose !

das hat bei mir funktioniert
sudo chown $USER:docker /var/run/docker.sock

usermod -a -G Docker USER
Dann abmelden und erneut anmelden USER.

Ich habe den gleichen Fehler festgestellt, wenn ich eine Variable in docker-compose.yml hatte, die NICHT in .env vorhanden ist.

Seltsamer Fehler für ein solches Szenario, aber - was auch immer. :) :)

Geben Sie einfach sudo vor Ihrem Befehl docker-compose !

Nehmen Sie Ihr wie, Herr!
omg ..., funktioniert aber gut für mich, tolle Arbeit!

ich musste nur tun:
sudo ln -s / usr / local / bin / docker-compose / usr / bin / docker-compose

und es hat funktioniert!

Ich habe Docker-Compose installiert und gleichzeitig das Problem mit den folgenden Schritten gelöst:
Schritt 1:
sudo curl -L https://github.com/docker/compose/releases/download/1.21.2/docker-compose- uname -s - uname -m -o / usr / local / bin / Docker-Compose

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

Schritt 3:
Docker-Compose - Version

Schritt 4:
export DOCKER_HOST = 127.0.0.1: 2375

Schritt 5:
usermod -a -G Docker $ USER

Schritt 6:
Starten Sie Ihren PC neu oder führen Sie den Befehl aus
ausschalten

Das hat bei mir funktioniert:

sudo usermod -aG docker $ (whoami)

Ausloggen

Anmeldung

Stellen Sie sicher, dass Sie zur Gruppe "Docker" gehören.

- sudo chown $USER:docker /var/run/docker.sock Das hat bei mir in einem Ubuntu 18-Setup funktioniert.

Danke!

Hallo,
habe die gleiche Fehlermeldung erhalten:

FEHLER: Es konnte keine Verbindung zum Docker-Daemon unter http + docker: // localhost hergestellt werden - läuft er?
Wenn es sich an einem nicht standardmäßigen Speicherort befindet, geben Sie die URL mit der Umgebungsvariablen DOCKER_HOST an.

Diese Meldung war jedoch irreführend, da mein Docker-Deamon keine Verbindungsprobleme hatte.
Der Grund war ein dummer Fehler, den ich in der Yaml gemacht habe (was ich vorher nicht wusste). Ich hatte versehentlich einen Großbuchstaben im Bildnamen. Dies führte dazu, dass der Dienst nicht gebildet werden konnte, da nur Kleinbuchstaben als Namen zulässig sind.
Ich habe den Fehler bemerkt, als ich versucht habe, die Docker-Datei separat mit den Namen zu erstellen.
Es wäre praktisch, wenn Docker-Compose die Fehler weiterleiten könnte, die bei Build-Problemen auftreten. Da, wie @ shin- auch sagte, dieser Fehler zu diesem Zeitpunkt noch aus vielen Gründen auftreten kann. Obwohl es einige Zeit her ist, dass @ shin dies geschrieben hat, scheint das Problem immer noch zu bestehen. Vielleicht könnte es hilfreich sein.

Ich poste nur mein Problem hier, weil jeder streng über echte Verbindungsprobleme mit Docker nachdenkt und ich zeigen wollte, dass es nicht immer der Fall sein muss.

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

$ sudo service docker start
$ sudo service docker status

Hallo,

Ich stand vor dem gleichen Problem. Aber es wurde behoben, nachdem ich meine VM neu gestartet hatte.

BR.Saurabh

Dieser Befehl löst für mich:

sudo usermod -aG Docker-Benutzer

Befehle:

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

Wenn Sie Docker gerade installiert und einem Benutzer die Docker-Gruppe gewährt haben, melden Sie sich von diesem Benutzer ab und wieder an.

sudo service docker start && docker-compose up -d

Bitte versuchen Sie es mit dem obigen Befehl. Problem ist für mich behoben

Keine der oben aufgeführten Lösungen hat es für mich behoben. Irgendwelche anderen Ideen?

FEHLER: Es konnte keine Verbindung zum Docker-Daemon unter http + docker: // localhost hergestellt werden - läuft er?

Wenn es sich an einem nicht standardmäßigen Speicherort befindet, geben Sie die URL mit der Umgebungsvariablen DOCKER_HOST an.

resolvi o problema com esse comando:

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

👇🏻👇🏻👇🏻👇🏻👇🏻👇🏻
👉🏽LÖSUNG 👈
👆🏿👆🏿👆🏿👆🏿👆🏿👆🏿

Wenn Sie noch nichts von diesem Profil aus versucht haben, führen Sie diese beiden Befehle aus, um dieses spezielle Problem zu lösen:
sudo usermod -a -G docker $USER # fügt Ihren aktuellen Benutzer der Gruppe docker
newgrp docker # aktiviert neue Berechtigungen für die Gruppe docker

sudo usermod -a -G Docker $ USER # fügt Ihren aktuellen Benutzer zur Docker-Gruppe hinzu
newgrp docker # aktiviert neue Berechtigungen für die Docker-Gruppe

Sollte newgrp -l docker . Wenn Sie dies verwenden, sollten Sie sich darüber im Klaren sein, dass newgrp eine neue Shell startet, damit ihre Umgebung zurückgesetzt wird, als ob sie sich erneut frisch angemeldet hätten, wenn sie -l .

Zuerst müssen wir tmp mit exec-Berechtigung durch Ausführen erneut bereitstellen

  1. sudo mount / tmp -o remount, exec
    dann mache Docker vorbei
  2. "Service Docker Start" im Root-Benutzer oder "Sudo Service Docker Start"
    dann
  3. "Docker-Compose Up" oder "Docker-Compose Start" hat bei mir funktioniert

sudo docker-compose up -d
FEHLER: Es konnte keine Verbindung zum Docker-Daemon unter http + docker: // localhost hergestellt werden - läuft er?

Wenn es sich an einem nicht standardmäßigen Speicherort befindet, geben Sie die URL mit der Umgebungsvariablen DOCKER_HOST an.
加上 sudo 也是 报 同样 的 错误

Gruppen root
root: root docker
root befindet sich unter der Docker-Gruppe

Das Problem wurde dadurch behoben:

  1. sudo usermod -aG docker $USER
  2. Melden Sie sich ab und wieder an, damit Ihre Gruppenmitgliedschaft neu bewertet wird.
  3. Stellen Sie sicher, dass Sie Docker-Befehle ohne sudo ausführen können: docker info

Der Standardwert für DOCKER_HOST ist Unix: ///var/run/docker.sock. Wenn diese Datei nicht vorhanden ist oder Ihr aktueller Benutzer keinen Zugriff auf diese Datei hat, versucht er, eine Verbindung zu http + docker: // localhost herzustellen
Versuchen:
sudo chown /var/run/docker.sock
Versuchen Sie dann erneut, docker-compose up auszuführen
Hat für mich gearbeitet.

Haben Sie es ohne sudo versucht? Sie sollten es nicht brauchen und es könnte die Dinge in Ihrem Fall durcheinander bringen. Was sehen Sie auch, wenn Sie docker info ausführen?
Vielen Dank! Es klappt!

Aber bitte Docker, fügen Sie eine korrekte Warnung hinzu!

Ich habe diese Meldung beim Kopieren von Volumes von der Produktionsmaschine erhalten und bin dann zu metadata.db o /var/lib/docker/volumes , dann stürzt es ab. Ein Fix ist so einfach

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

Dies passiert häufig, wenn Sie Docker-Befehle als Sudo ausführen, während Sie Docker-Compose-Befehle ohne Sudo ausführen.
Was Sie tun müssen, ist, Docker-Benutzer zur Sudo-Gruppe hinzuzufügen. (dh usermod -aG Docker $ USER)
Dann können Sie beide Befehle (Docker und Docker-Compose) ohne sudo ausführen.

Ich hatte genau den gleichen Fehler. Ich entfernte den Container (ID) und startete den Docker erneut. Das hat das Problem für mich behoben. Es werden keine Daten gelöscht, die bereits hochgeladen wurden.

Gehen Sie in Ihr cvat-Verzeichnis und führen Sie Folgendes in Ihrem Terminal aus:

  • sudo docker ps (zeigt Informationen zu Ihren laufenden Dockern an)
  • Docker Stop "Hier die ID Ihres Containers" (zB meine war e6339eae0675)
  • sudo docker rm "Hier die ID Ihres Containers"
  • sudo docker-compose up -d

Ich habe das gleiche Problem, Sudo Docker-Compose Up-Arbeit für mich.

Die Lösung für mich bestand darin, meine openvpn mir verwendeten

Ich bin nicht sicher, was passiert ist, ich habe meinen PC neu gestartet und es hat funktioniert !!

Das funktioniert.

Die folgenden Schritte haben das Problem für mich gelöst.

Docker entfernen:
$ sudo apt-get remove docker docker-engine
neu installieren mit
curl -sSL https://get.docker.com/ | sh

Benutzer zu einer Gruppe hinzufügen:
sudo usermod -aG docker user

Nur ein Hinweis, dass Sie exit die Shell benötigen und sich erneut anmelden müssen, damit der Befehl usermod bleibt.

Ich hatte gerade wieder das gleiche Problem wie zuvor und fand am Ende Sime Light ...
Es hängt damit zusammen, dass Docker-Compose diese seltsame Nachricht zeigt, die das eigentliche Problem verbirgt.
Ich habe gerade versucht, eines der Images mit Docker Build zu erstellen. und dann stellte sich heraus, dass einige Dateien, die versuchten, in den Cache aufgenommen zu werden, keine Berechtigungen zum Lesen und Erstellen hatten.
Nach dem Entfernen der ausgegebenen Dateien funktionierte es wieder ohne Probleme.
In meinem Fall war das Mounten des aktuellen Verzeichnisses das Problem, da Testverzeichnisse mit Root-Benutzern auf den Hosts generiert wurden
Das nächste Mal ist der Build fehlgeschlagen, da der Build nicht gelesen werden kann und der Build ohne eindeutige Meldung des Docker-Compose-Builds fehlschlägt.
Sie müssen den Benutzertest überprüfen, um das Problem später zu vermeiden. Wir hoffen jedoch, dass dies anderen hilft, das eigentliche Problem zu finden.

Grüße

Fügen Sie der Docker-Gruppe reguläre Benutzer hinzu

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

Ich habe dies behoben, indem ich die Variable CONTAINER_REGISTRY_BASE deaktiviert habe

$ sudo usermod -aG docker $ USER

Ich fand, dass es eine fehlende Umgebungsvariable war, die die image: -Einstellungen in docker-compose.yml beschädigte

¯_ (ツ) _ / ¯

Die folgenden Schritte haben das Problem für mich gelöst.

Docker entfernen:
$ sudo apt-get remove docker docker-engine
neu installieren mit
curl -sSL https://get.docker.com/ | sh

Benutzer zu einer Gruppe hinzufügen:
sudo usermod -aG docker user

Dankeschön. Das Deinstallieren, anschließende Neuinstallieren und Ändern der Benutzerberechtigungen sowie das Abmelden und erneute Anmelden haben das Problem für mich gelöst.

Keine der oben aufgeführten Lösungen hat es für mich behoben. Irgendwelche anderen Ideen?
FEHLER: Es konnte keine Verbindung zum Docker-Daemon unter http + docker: // localhost hergestellt werden - läuft er?
Wenn es sich an einem nicht standardmäßigen Speicherort befindet, geben Sie die URL mit der Umgebungsvariablen DOCKER_HOST an.

resolvi o problema com esse comando:

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

Das hat es für mich behoben.

Ich habe alles getan, außer symbolisch mit Docker-Compose zu verknüpfen. Die folgenden Befehle haben mein Problem behoben

  1. Benutzer zur Docker-Gruppe hinzufügen (falls nicht bereits hinzugefügt)
    sudo usermod -aG docker $USER
  2. Erstellen Sie mit dem folgenden Befehl eine symbolische Verknüpfung zu / usr / bin
    $ sudo ln -s /usr/local/bin/docker-compose /usr/bin/docker-compose
  3. Starten Sie den Docker-Dienst neu
    $ sudo service docker restart

In meinem Fall hat keines der oben genannten Verfahren funktioniert

Wie sich herausstellte, hatte ich in meiner Erstellungsdatei einen camelCase Bildnamen ( eg imageName ), und das verursachte Couldn't connect to Docker daemon at http+docker://localunixsocket . Das Ändern in dash-case löste das Problem (sehr seltsam).
Der Docker-Dienst lief einwandfrei, Docker-PS und -Informationen meldeten ebenfalls keine Probleme. Nur das Starten dieser Erstellungsdatei war das Problem.

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

sudo docker-compose up -d

gerade wieder dieses Problem konfrontiert und erkannte ich muss Ubuntu neu starten , nachdem mu Benutzer Docker Gruppe hinzufügen

sudo usermod -aG Docker-Benutzer

Dies von @ Kirill-Babkin hat es für mich gelöst. Ich hatte einen neu erstellten Benutzer nicht in der Docker-Gruppe. Vielen Dank.

In meinem Fall fehlte meinem docker-compose.yml die env var-Definition im Abschnitt image

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

Ich habe ungefähr 30 Minuten damit verloren. Bitte schlagen Sie hierfür einen aussagekräftigen Fehler vor

Lösung wurde ein Wert für die var eingestellt

Nur der leere Export hat bei mir funktioniert.

export DOCKER_HOST=

Neue Docker-Installation hier in Ubuntu 18. Angenommen, Ihr Benutzer befindet sich bereits in der Gruppe docker Installieren Sie einfach den Docker-Dienst, damit er sudo systemctl enable docker automatisch neu startet und dann neu startet und voila sudo init 6

Hatte das gleiche Problem.
Auf meinem System durch Schreiben von "Docker-Compose Build" gelöst

Ich hatte gerade das gleiche Problem. Ich habe festgestellt, dass mein Benutzer aus irgendeinem Grund nicht zur Docker-Sicherheitsgruppe hinzugefügt wurde, was mir wiederum keine Berechtigung für den Unix-Socket des Dockers gewährt und mir _ERROR: Verbindung zum Docker-Daemon unter http + docker: // localunixsocket nicht möglich - läuft es_ .

Durch Hinzufügen der Docker-Gruppe zu meinem aktuellen Benutzer, anschließendes Abmelden und erneutes Anmelden wurde alles für mich behoben:
sudo usermod -aG docker $USER

Befolgen Sie diese Anweisungen, starten Sie den Computer neu und führen Sie docker-compose up --build 👍 aus

Show

sudo usermod -aG docker $USER

Befolgen Sie diese Anweisungen, starten Sie den Computer neu und führen Sie docker-compose up --build +1 aus

Sie müssen nicht neu starten, eine einfache erneute Anmeldung sollte ausreichen. Das hat es für mich getan.

Ich bin nicht sicher, was passiert ist, ich habe meinen PC neu gestartet und es hat funktioniert !! 🤓

Es ist Arbeit. weiß nicht warum? Haha

Neue Docker-Installation hier in Ubuntu 18. Angenommen, Ihr Benutzer befindet sich bereits in der Gruppe docker Installieren Sie einfach den Docker-Dienst, damit er sudo systemctl enable docker automatisch neu startet und dann neu startet und voila sudo init 6

Ich benutze Manjaro und diese Lösung funktioniert für mich

danke @mikemix

Ich habe viele Schritte basierend auf dem folgenden Fehler versucht, nachdem ich 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)

Aber das Starten von Terminal als Administrator hat funktioniert.
sudo service docker start
Denken Sie daran : Das Terminal / Ubuntu unter Windows 10 sollte als Admin gestartet werden

Unter Ubuntu 20.04 musste ich laufen

sudo chmod 777 /var/run/docker.sock

und es fing sofort an zu arbeiten.


⚠️ Bearbeiten

Seien Sie vorsichtig mit dem obigen Befehl

Dadurch erhält jeder Benutzer dieses Computers vollen Zugriff auf eine Datei, die normalerweise Root gehört. Auf diese Weise können Sie eine schwerwiegende Sicherheitslücke in Ihrem System erstellen.
@ Taranchul

sudo chmod 777 /var/run/docker.sock

Dies gibt jedem Benutzer dieses Computers vollen Zugriff auf eine Datei, die normalerweise Root gehört. Auf diese Weise können Sie eine schwerwiegende Sicherheitslücke in Ihrem System erstellen. Ähnliche Warnungen finden Sie unter https://stackoverflow.com/questions/47854463/docker-got-permission-denied-while-trying-to-connect-to-the-docker-daemon-socke .

Wie hier und im obigen Link erwähnt, sollte sudo usermod -aG docker $USER (oder der betreffende Benutzername anstelle von $ USER) den Trick ausführen, ohne die Sicherheitsmaßnahmen des Systems zu untergraben.

@ Taranchul Du hast vollkommen recht! Ich habe immer sudo usermod -aG docker $USER . Leider scheint sudo usermod -aG docker $USER Ubuntu 20.04 nicht mehr zu funktionieren.

Irgendwelche Ideen, was schief gehen könnte?

Leider nicht. Haben Sie sich erneut bei diesem Benutzer angemeldet (der für mich funktioniert hat) oder den Computer neu gestartet? Ich denke, dass Sie das getan haben, aber seien Sie besser sicher.

Nur für den Fall, dass Sie oder jemand anderes die ursprünglichen Berechtigungen von docker.sock wiederherstellen

@Taranchul Ja, ich habe versucht, mich erneut anzumelden und neu zu starten. Funktionierte weder auf meinem Laptop noch auf meiner Workstation.

Vielleicht ist es eine 20.04 Ausgabe, da die endgültige Version erst gestern veröffentlicht wurde. Normalerweise warte ich irgendwann im Sommer auf den ersten Schnappschuss einer LTS-Veröffentlichung, bei der hoffentlich die meisten Kinderkrankheiten zu diesem Zeitpunkt behoben sind.

Könnten Sie es auf einer älteren Version testen?

@ Taranchul Es scheint ein Problem mit

Das ist eine nützliche Information, obwohl sie Ihnen im Moment nicht viel hilft. Ist es für Sie eine Option, 18.04 zu verwenden, bis 20.04 in dieser Angelegenheit reifer wird?

Ein Weitschuss: Haben Sie überprüft, ob der Benutzer tatsächlich zur Docker-Gruppe hinzugefügt wurde?

@Taranchul Ich meine, ich könnte 18.04 verwenden, aber da ich bereits alles auf

Ist das Ausführen aller Docker-Befehle mit sudo eine gültige Option, bis sie behoben ist?

Leider weiß ich nicht viel über Docker, daher kann ich diese Frage nicht beantworten.

Ich habe diese Anweisungen gefunden, um Docker am 20.04 zu installieren, die es etwas anders machen: https://www.how2shout.com/how-to/how-to-install-docker-ce-on-ubuntu-20-04-lts- focal-fossa.html

Sie fügen die Docker-Gruppe hinzu, bevor sie den Benutzer hinzufügen. Vielleicht ist das am 20.04 notwendig? (Ich habe es noch nicht, daher kann ich es nicht selbst testen.)

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

@ Taranchul Sie wissen, was seltsam ist ... Ich habe sudo chmod 660 /var/run/docker.sock , um die Berechtigungen zurückzusetzen, und nach dem Neustart funktioniert es immer noch.

Kann ich das Problem als behoben betrachten oder besteht immer noch ein Sicherheitsrisiko?
Vielleicht habe ich einen Schritt vergessen, als ich gestern alles installiert habe ... und es ist eigentlich kein Problem mit Ubuntu 20.04?

Laut dieser Frage auf askubuntu.com benötigte Docker ursprünglich sudo, um zu starten, konnte jedoch mit Version 19.03 Benutzer ohne Rootberechtigung verwenden. In den Kommentaren erwähnt jemand, dass ohne die Docker-Gruppe der Besitz von docker.sock root:root . Erst nachdem die Docker-Gruppe erstellt, der Benutzer hinzugefügt und der Docker-Server neu gestartet wurde, wurde sie in root:docker geändert. Es scheint also eine gute Idee zu sein, zu überprüfen, ob die Gruppe existiert ( bearbeiten: und wenn ja, den Besitz von docker.sock überprüfen). Auch um Ihre Docker-Instanz neu zu starten.

Beachten Sie eine der Antworten mit niedrigerer Bewertung, die über ACLs spricht und wie Sie den Zugriff auf docker.socks mit dem Befehl setfacl aktivieren können.

Zu guter Letzt gibt es Warnungen zu letzterem sowie zum Hinzufügen eines Benutzers zur Docker-Gruppe, da dieser Benutzer erhebliche Zugriffsrechte erhält. 😎 Aber ich denke immer noch, dass diese Methoden vorzuziehen sind, um die Berechtigungen der Datei zu ändern.

Wenn Sie Ihren letzten Kommentar direkt nach dem Schreiben des obigen Artikels lesen, würde ich sagen, seien Sie einfach glücklich und beobachten Sie das Ganze. Es ist schwer zu sagen, ob Sie etwas verpasst und es irgendwie behoben haben, während Sie verschiedene Lösungen ausprobiert haben.

@ Taranchul Großartig. Es funktioniert immer noch nach dem Neustart von Docker. Ich denke, es war nur meine Schuld. Danke für Ihre Hilfe!

@flulu Es ist mir ein Vergnügen und

Unter Windows 10 wurde es durch ein Upgrade auf WSL2 und das Sichern meiner Ubuntu Distro auf WSL2 behoben.
https://docs.microsoft.com/en-us/windows/wsl/wsl2-install

Dieses Problem wurde behoben, als ich den Computer neu startete. :Lächeln:

Dies löste mein Problem.

sudo usermod -aG docker myuser

Vielen Dank, @ Kirill-Babkin viel.

Gelöst von:

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

Wie hier bereits erwähnt , kann dies eine Sicherheitslücke in Ihrem System öffnen. Haben Sie vorher die Usermod-Lösung ausprobiert? Dies kann ebenfalls zu Sicherheitsbedenken führen, da der Benutzer über Docker vollständigen Zugriff erhält. Im Vergleich zum Zugriff jedes Benutzers auf eine Root-Datei scheint dies jedoch das geringere Übel zu sein.

@ Matto-Bombelli
Ich hatte das gleiche Problem.
Sie müssen Docker neu starten.
$ service docker restart
Ich habe es damit gelöst.

Es war die Lösung und das hat funktioniert, danke!

Ich bekomme diesen Fehler auf Ubunt 20.0.4

Ich habe mit apt get von apt Quellen installiert. Gibt es eine neuere Version in einem ppa?

Ich tat
newgrp docker
und es hat funktioniert

Ich habe an Lightsail gearbeitet. Durch einen Neustart des Images wurde das Problem behoben.

Versuchen Sie vielleicht einfach, Ihren Linux-Benutzer zur Gruppe hinzuzufügen: Docker, und melden Sie sich dann erneut an.

Unter Ubuntu 20 wird Docker unter Snap ausgeführt, wie Sie unter 'systemctl status snap.docker.dockerd.service' sehen können.

Es wird versucht, mit der Gruppe /var/run/docker.sock zu beginnen, die auf 'docker' eingestellt ist. Standardmäßig ist diese Gruppe in Ubuntu 20 jedoch nicht vorhanden, selbst wenn Sie in der Installation den Docker-Snap auswählen.

Um dies zu beheben, erstellen Sie die Gruppe, fügen Sie Ihren Benutzer der Gruppe hinzu und starten Sie ihn neu

Sudo Groupadd Docker
sudo usermod -G docker $ USER
sudo neu starten

Sie können sich nicht einfach abmelden und dann anmelden. Soweit ich das beurteilen konnte, können Sie snap.docker.dockerd oder snapd selbst nicht neu starten und die Berechtigungen ändern. Ich weiß nicht, wie ich es dazu bringen soll, das Richtige zu tun, ohne neu zu starten. Wenn Sie es wissen, informieren Sie mich bitte.

Ich bin am 20.04 und hatte das gleiche Problem und konnte sudo docker info aber nicht als mein regulärer Benutzer. Ich war zuvor in der Docker-Gruppe und kann immer noch meine WordPress-Site unter 127.0.0.1 durchsuchen. Ich musste newgrp docker ausführen, um das

newgrp docker funktioniert bei mir

Das manuelle Einstellen von DOCKER_HOST hat bei mir funktioniert

  1. Finden Sie den Pfad zu Ihrer Sockendatei heraus: (entweder mit sudo service docker status oder ps -aef | grep docker )
  2. exportiere DOCKER_HOST=unix://<path to sock file>

In meinem Fall befand sich die Sockendatei bei /run/containerd/containerd.sock
Also musste ich export DOCKER_HOST=unix:///run/containerd/containerd.sock laufen lassen

Für meinen Fall - Nach dem Neustart des Clusters wurde das Problem behoben.

Unter Ubuntu 20 wird Docker unter Snap ausgeführt, wie Sie unter 'systemctl status snap.docker.dockerd.service' sehen können.

Es wird versucht, mit der Gruppe /var/run/docker.sock zu beginnen, die auf 'docker' eingestellt ist. Standardmäßig ist diese Gruppe in Ubuntu 20 jedoch nicht vorhanden, selbst wenn Sie in der Installation den Docker-Snap auswählen.

Um dies zu beheben, erstellen Sie die Gruppe, fügen Sie Ihren Benutzer der Gruppe hinzu und starten Sie ihn neu

Sudo Groupadd Docker
sudo usermod -G docker $ USER
sudo neu starten

Sie können sich nicht einfach abmelden und dann anmelden. Soweit ich das beurteilen konnte, können Sie snap.docker.dockerd oder snapd selbst nicht neu starten und die Berechtigungen ändern. Ich weiß nicht, wie ich es dazu bringen soll, das Richtige zu tun, ohne neu zu starten. Wenn Sie es wissen, informieren Sie mich bitte.

Ich glaube du meinst sudo usermod -aG docker $ USER. Das Ausführen ohne -a führt zu "Wenn der Benutzer derzeit Mitglied einer Gruppe ist, die nicht aufgeführt ist, wird der Benutzer aus der Gruppe entfernt."

Sie können sich nicht einfach abmelden und dann anmelden. Soweit ich das beurteilen konnte, können Sie snap.docker.dockerd oder snapd selbst nicht neu starten und die Berechtigungen ändern. Ich weiß nicht, wie ich es dazu bringen soll, das Richtige zu tun, ohne neu zu starten. Wenn Sie es wissen, informieren Sie mich bitte.

Eine erneute Anmeldung sollte ausreichen, um die neue Gruppe für diesen Benutzer zu aktivieren.

Das kam auch für mich auf. Ich musste aus irgendeinem Grund die Verbindung zu meinem nordvpn -Client trennen.

sudo docker-compose up -d funktioniert !!!

Haben Sie es ohne sudo versucht? Sie sollten es nicht brauchen und es könnte die Dinge in Ihrem Fall durcheinander bringen. Was sehen Sie auch, wenn Sie docker info ausführen?

ura verdammtes Genie. Du weißt das ? Vielen Dank Kumpel . Du hast mich vor der Hölle gerettet.

Ich weiß nicht genau warum, aber in meinem Fall hatte ich ein Submodul, das nicht ausgecheckt war. Das Ausführen von git submodule update --init und das erneute Ausführen von docker-compose build das Problem für mich behoben

Ich bin nicht sicher, was passiert ist, ich habe meinen PC neu gestartet und es hat funktioniert !!

Hier gilt das gleiche. 😃

Ich hatte gerade das gleiche Problem. Ich habe festgestellt, dass mein Benutzer aus irgendeinem Grund nicht zur Docker-Sicherheitsgruppe hinzugefügt wurde, was mir wiederum keine Berechtigung für den Unix-Socket des Dockers gewährt und mir _ERROR: Verbindung zum Docker-Daemon unter http + docker: // localunixsocket nicht möglich - läuft es_ .

Durch Hinzufügen der Docker-Gruppe zu meinem aktuellen Benutzer, anschließendes Abmelden und erneutes Anmelden wurde alles für mich behoben:
sudo usermod -aG docker $USER

Vergessen Sie auch nicht, newgrp docker auszuführen, um Zugriff auf diese Gruppe in Ihrer aktuellen Shell zu erhalten. ref https://stackoverflow.com/a/48569858/2040522

Ich hatte gerade das gleiche Problem. Ich habe festgestellt, dass mein Benutzer aus irgendeinem Grund nicht zur Docker-Sicherheitsgruppe hinzugefügt wurde, was mir wiederum keine Berechtigung für den Unix-Socket des Dockers gewährt und mir _ERROR: Verbindung zum Docker-Daemon unter http + docker: // localunixsocket nicht möglich - läuft es_ .

Durch Hinzufügen der Docker-Gruppe zu meinem aktuellen Benutzer, anschließendes Abmelden und erneutes Anmelden wurde alles für mich behoben:
sudo usermod -aG docker $USER

Das funktioniert perfekt. Sie müssen sich erneut anmelden, um Ergebnisse zu sehen.

sudo usermod -aG docker $USER

Das funktioniert perfekt. Sie müssen sich erneut anmelden, um Ergebnisse zu sehen.

Alternativ sollte newgrp docker dies ohne erneutes Anmelden tun.

sudo chmod 666 /var/run/docker.sock

Wie hier bereits erwähnt , kann dies eine Sicherheitslücke in Ihrem System öffnen. Haben Sie vorher die Usermod-Lösung ausprobiert? Dies kann ebenfalls zu Sicherheitsbedenken führen, da der Benutzer über Docker vollständigen Zugriff erhält. Im Vergleich zum Zugriff jedes Benutzers auf eine Root-Datei scheint dies jedoch das geringere Übel zu sein.

Sie sagen richtig, aber das ist sehr wichtig für Entwickler, ich bin nur ein Entwickler und ich behebe das mit diesem Befehl.
Besonderer Dank geht an @ shqear93

Das ist schmerzhaft und ich bin ungläubig, dass das Problem vor drei Jahren ohne aussagekräftige Antwort von Docker geschlossen wurde. Dieses Github-Problem sollte nicht in Ihrem Funktionsumfang enthalten sein. Was ist der Plan, um dies zu korrigieren? Geben Sie dies nicht an Benutzer weiter, die nicht verstehen, wie Gruppen, Benutzer und Sitzungen funktionieren, oder an andere Software, die so funktionieren, wie sie es tun. Sie haben diese komplizierte Art gewählt, Dinge zu tun.

Ich musste meinen Computer neu starten, anstatt mich abzumelden, damit sudo usermod -aG docker my_user wirksam wird. Einige Beweise dafür finden andere hier: https://unix.stackexchange.com/questions/277240/usermod-ag-group-user-not-work.

Ich hatte gerade das gleiche Problem. Ich habe festgestellt, dass mein Benutzer aus irgendeinem Grund nicht zur Docker-Sicherheitsgruppe hinzugefügt wurde, was mir wiederum keine Berechtigung für den Unix-Socket des Dockers gewährt und mir _ERROR: Verbindung zum Docker-Daemon unter http + docker: // localunixsocket nicht möglich - läuft es_ .
Durch Hinzufügen der Docker-Gruppe zu meinem aktuellen Benutzer, anschließendes Abmelden und erneutes Anmelden wurde alles für mich behoben:
sudo usermod -aG docker $USER

Vergessen Sie auch nicht, newgrp docker auszuführen, um Zugriff auf diese Gruppe in Ihrer aktuellen Shell zu erhalten. ref https://stackoverflow.com/a/48569858/2040522

Hat perfekt für mich funktioniert. Vielen Dank!

Unter Ubuntu 16.04 hat das bei mir funktioniert:
sudo service docker start && docker-compose up -d

das hat bei mir funktioniert!

Ich hatte gerade das gleiche Problem. Ich habe festgestellt, dass mein Benutzer aus irgendeinem Grund nicht zur Docker-Sicherheitsgruppe hinzugefügt wurde, was mir wiederum keine Berechtigung für den Unix-Socket des Dockers gewährt und mir _ERROR: Verbindung zum Docker-Daemon unter http + docker: // localunixsocket nicht möglich - läuft es_ .
Durch Hinzufügen der Docker-Gruppe zu meinem aktuellen Benutzer, anschließendes Abmelden und erneutes Anmelden wurde alles für mich behoben:
sudo usermod -aG docker $USER

Vergessen Sie auch nicht, newgrp docker auszuführen, um Zugriff auf diese Gruppe in Ihrer aktuellen Shell zu erhalten. ref https://stackoverflow.com/a/48569858/2040522

Das hat mein Problem gelöst, danke !!!

Ich habe keine Ahnung warum, aber was es für mich behoben hat, war das Entfernen der folgenden Zeile aus meiner Docker-Compose .env Datei:

DOCKER_HOST=tcp://localhost:2375

Gelöst von:

sudo chmod 666 /var/run/docker.sock

Vielen Dank. Gelöst in Ubuntu 20.0.4 LTS

Ich habe gerade versucht, mit Berechtigungen zu spielen und habe gerade Folgendes getan:

sudo docker-compose build

Und es ging los zu den Rennen.
Im Mittelpunkt steht ein Berechtigungsproblem, wenn der Docker-Dienst ausgeführt, die Gruppe zugewiesen und die Socket-Berechtigungen festgelegt wurden und es immer noch nicht funktioniert hat. Mach es einfach mit sudo. Arbeitete für mich, habe bessere Dinge zu tun.

irgendeine Lösung für Ubuntu 20.04?

irgendeine Lösung für Ubuntu 20.04?

Haben Sie die zuvor veröffentlichte Lösung ausprobiert? (https://github.com/docker/compose/issues/4181#issuecomment-629748049)

Kurz gesagt (mit späteren Vorschlägen):

Sudo Groupadd Docker
sudo usermod -aG docker $ USER
Newgrp Docker

Wenn "newgrp docker" nicht ausreicht, ist möglicherweise ein Neustart erforderlich (es gibt widersprüchliche Kommentare dazu).

War diese Seite hilfreich?
0 / 5 - 0 Bewertungen