Docker kann keine Verbindung zum Docker-Daemon herstellen

473

Nachdem ich meine Docker-Version auf aktualisiert habe 0.8.0, wird bei der Eingabe eine Fehlermeldung angezeigt sudo docker version:

Client version: 0.8.0
Go version (client): go1.2
Git commit (client): cc3a8c8
2014/02/19 12:54:16 Can't connect to docker daemon. Is 'docker -d' running on this host?

Und ich habe die Anweisungen befolgt und den Befehl eingegeben sudo docker -d, und ich habe Folgendes erhalten:

[/var/lib/docker|2462000b] +job initserver()
[/var/lib/docker|2462000b.initserver()] Creating server
open /var/lib/docker/aufs/layers/cf2414da53f9bcfaa48bc3d58360d7f1cfd3784e4fe51fbef95197709dfc285d: no such file or directory[/var/lib/docker|2462000b] -job initserver() = ERR (1)
2014/02/19 12:55:57 initserver: open /var/lib/docker/aufs/layers/cf2414da53f9bcfaa48bc3d58360d7f1cfd3784e4fe51fbef95197709dfc285d: no such file or directory

Wie löse ich das Problem?

LiJung
quelle
7
Haben Sie sudo verwendet, als Sie docker -d ausgeführt haben?
Ben Whaley
Ich bemerke, dass in dem Fehler steht no such file or directory[/var/lib/docker|2462000b]. Existiert /var/lib/dockerauf Ihrem System? Wenn nicht, müssen Sie Docker neu installieren.
Ben Whaley
3
Ich habe das gleiche Problem (kann keine Verbindung zu einem Daemon herstellen, der von 'ps' angezeigt wird), außer dass beim Starten des Daemons keine Meldungen "Datei nicht gefunden" angezeigt werden. / var / lib / docker existiert.
Jonathan Hartley
Verwenden Sie Docker auf einem VPS?
Ferkelfliege
Installieren Sie Docker Desktop von hier aus, es wird es lösen. docs.docker.com/docker-for-mac/install
Guy Assaf

Antworten:

642

Linux

Die Schritte nach der Installation für die Linux- Dokumentation enthalten die folgenden Schritte:

  1. Erstellen Sie die Docker- Gruppe.
    Sudo Groupadd Docker
  2. Fügen Sie den Benutzer der Docker- Gruppe hinzu.
    sudo usermod -aG docker $ (whoami)
  3. Melden Sie sich ab und wieder an, um sicherzustellen, dass Docker mit den richtigen Berechtigungen ausgeführt wird.
  4. Starten Sie Docker.
    Sudo Service Docker starten

Mac OS X

Wie Dayel Ostraco sagt, ist es notwendig, Umgebungsvariablen hinzuzufügen:

docker-machine start # Start virtual machine for docker
docker-machine env  # It's helps to get environment variables
eval "$(docker-machine env default)" # Set environment variables

Der docker-machine startBefehl gibt die Kommentare aus, um den Prozess zu steuern.

molavec
quelle
Ja. Das war das Problem für mich. Ich habe meinen Benutzer zur Docker-Gruppe hinzugefügt und kann jetzt eine Verbindung zum Daemon herstellen. Vielen Dank
Bogdan
FWIW, der Link zu dem spezifischen Abschnitt ist dieser
asymmetrische
20
Wenn Sie sich aus irgendeinem Grund nicht abmelden möchten, können Sie mit dem newgrpBefehl eine neue Shell in dieser neuen Gruppe starten. So : newgrp docker.
Denilson Sá Maia
sudo chown $ USER: $ USER / Pfad / zu / Docker / Binär
Ivor Scott
Ich hatte keine Zeit, Bash neu zu starten. So alias docker='sudo docker'hat der Trick. : p
LovaBill
149

Linux

Führen Sie Folgendes aus, um den Docker-Daemon unter Linux (über die CLI ) auszuführen:

$ sudo service docker start # Ubuntu/Debian

Hinweis: Überspringen Sie das $Zeichen beim Kopieren und Einfügen.

Führen Sie unter RedHat / CentOS Folgendes aus : sudo systemctl start docker.

Führen Sie Folgendes aus, um das "Basis" -Dateisystem zu initialisieren:

$ sudo service docker stop
$ sudo rm -rf /var/lib/docker
$ sudo service docker start

oder manuell wie:

$ sudo docker -d --storage-opt dm.basesize=20G

Unter docker-machineLinux installieren

So installieren Sie Computer-Binärdateien unter Linux:

  • örtlich:

    install -vm755 <(curl -L https://github.com/docker/machine/releases/download/v0.5.3/docker-machine_linux-amd64) $HOME/bin/docker-machine
    
  • global:

    sudo bash -c 'install -vm755 <(curl -L https://github.com/docker/machine/releases/download/v0.5.3/docker-machine_linux-amd64) /usr/local/bin/docker-machine'
    

Mac OS

Unter macOS ist die dockerBinärdatei nur ein Client, und Sie können sie nicht zum Ausführen des Docker-Daemons verwenden, da der Docker-Daemon Linux-spezifische Kernelfunktionen verwendet. Daher können Sie Docker unter OS X nicht nativ ausführen. Sie müssen also installieren, docker-machineum sie zu erstellen VM und anhängen.

Unter docker-machinemacOS installieren

Wenn Sie noch keinen docker-machineBefehl haben, installieren Sie ihn mit einer der folgenden Methoden:

  • Verwenden des Brew- Befehls : brew install docker-machine docker.
  • manuell von GitHub :

    install -v <(curl https://github.com/docker/machine/releases/download/v0.5.3/docker-machine_linux-amd64) /usr/local/bin/docker-machine
    

Siehe: Erste Schritte mit Docker für Mac .

Konfigurieren Sie docker-machineunter macOS

Führen Sie Folgendes aus, um Docker Machine über Homebrew zu starten:

brew services start docker-machine

So erstellen Sie eine defaultMaschine (falls Sie keine haben, lesen Sie :) docker-machine ls:

docker-machine create --driver virtualbox default

Richten Sie dann die Umgebung für den Docker-Client ein:

eval "$(docker-machine env default)"

Überprüfen Sie dies anschließend, indem Sie die Container auflisten:

docker ps

Siehe: Erste Schritte mit Docker Machine und einer lokalen VM .


Installieren Sie Docker.app unter macOS

Alternativ zur obigen Lösung können Sie eine Docker-App installieren, indem Sie:

brew cask install docker

Überprüfen Sie diesen Beitrag für weitere Details . Siehe auch: Unter macOS kann keine Verbindung zum Docker-Daemon hergestellt werden

Kenorb
quelle
1
sudo service docker start funktioniert mit Docker 1.9.1 unter Ubuntu 14.04
Vielen Dank. Das hat bei Ubuntu 14.04 für mich funktioniert. alles andere schlug fehl.
Nyxee
Dies ist das einzige, was unter Mac OSX mit älterer Hardware als 2010 für mich funktioniert hat. Ich musste docker-toolboxvon docs.docker.com/toolbox/toolbox_install_mac
Vikram
2
Ich musste Docker-Compose, Docker-Maschine und Docker über Homebrew installieren, dann funktionierte es gut!
Entalpi
Ich hatte dieses Problem unter CentOS 7.6 mit Docker 18 sudo rm -rf /var/lib/dockerund dann machte ein Neustart den Trick. Ich steckte wirklich fest und keine andere Lösung funktionierte für mich.
Ashkan
142

Wenn Sie Docker unter OS X ausführen, hat die folgende Auswertung für mich funktioniert.

eval "$(docker-machine env default)"

Wenn Sie diese eval-Anweisung nicht bei jeder Terminalsitzung ausführen möchten, können Sie Folgendes hinzufügen bash_profile:

#Docker
eval "$(docker-machine env default)"

Stellen Sie sicher, dass Sie die Terminalsitzung neu starten oder Source ausführen, bash_profiledamit die Änderungen wirksam werden.

Dayel Ostraco
quelle
3
Das gleiche gilt hier, wenn ich das alleine versuche, bekomme ich oft Error checking TLS connection: Host is not running... diese Auswertung durchzuführen, nachdem der Befehl docker-machine start defaultden Trick ausgeführt hat.
Emilio Ferrucci
100

Nach einer eingehenden Untersuchung scheint dieses Problem jedes Mal nach dem Neustart von Mac OS X (oder dem Neustart der virtuellen Docker-Maschine) aufzutreten, wodurch verhindert wird, dass der Docker-Client eine Verbindung zum Docker-Dämon herstellt.

Um das Problem zu lösen, können Sie entweder:

A) Installieren Sie Docker Toolbox mit dem offiziellen Installationsprogramm ( https://www.docker.com/products/docker-toolbox ) oder einfach neu

B) Führen Sie die folgenden Befehle der Reihe nach aus:

# First make sure that the virtual machine is running
docker-machine start default

# Regenerate TLS connection certs, requires confirmation
docker-machine regenerate-certs default

# Finally, set env
eval "$(docker-machine env default)"

C) Wie in (B) können Sie auch die folgende Zeile kopieren und einfügen, um alle drei Befehle auszuführen:

docker-machine start default; docker-machine regenerate-certs default; eval "$(docker-machine env default)"

Falls Sie den folgenden Fehler erhalten:

Error getting SSH command: Something went wrong running an SSH command!
command : cat /etc/os-release
err     : exit status 255
output  :

Führen Sie die drei Befehle einfach ein weiteres Mal aus, und es sollte beim zweiten Mal funktionieren.

KAD
quelle
6
Ich bekomme Host existiert nicht: "default"
Roman Gaufman
@RomanGaufman: funktioniert das bei dir: docker-machine start default?
KAD
1
@RomanGaufman Ich musste mein Terminal neu starten, bevor der Befehl erfolgreich ausgeführt wurde.
anon58192932
Liegt das daran, dass sich die IP-Adresse der virtuellen Box VM jedes Mal ändert, wenn Sie Ihren Mac neu starten?
Cui Pengfei 11
@ RomanGaufmans Fehler wird durch die Antwort (derzeit) unten behoben
Dave Schweisguth
47

Dies geschieht normalerweise, wenn Sie nicht in der dockerGruppe sind. Sie können sich der dockerGruppe hinzufügen mit:

sudo usermod -aG docker yourusername

oder

sudo usermod -aG docker $(whoami)

Danach müssen Sie sich abmelden und wieder beim Server anmelden.

Alternativ können Sie sudojeden Docker-Befehl ausführen.

nPcomp
quelle
5
und wenn Gruppe nicht existiert: sudo groupadd docker
izy
30

Wenn alle anderen oben genannten Lösungen nicht funktionieren, können Sie versuchen, den Besitz von /var/run/docker.sock:

ls -l /var/run/docker.sock

Wenn Sie nicht der Eigentümer sind, ändern Sie den Eigentümer mit dem folgenden Befehl:

sudo chown *your-username* /var/run/docker.sock

Dann können Sie versuchen, die Docker-Befehle problemlos auszuführen: D.

kevthanewversi
quelle
1
Ich habe mit dieser Antwort begonnen und das hat mir geholfen!
Andrzej Martyna
2
Problem mit diesem Ansatz ist, dass Sie diesen Schritt jedes Mal wiederholen müssen, wenn der Dämon neu gestartet wird
MFIhsan
Hallo @MFIhsan, ein intelligenter Systemadministrator würde Ihnen sagen, dass Sie einfach ein Bash-Skript für diese Befehle erstellen und es zu crontab hinzufügen sollen, damit es beim Neustart / Start ausgeführt wird, wie hier erläutert> stackoverflow.com/a/29247942/3469960
kevthanewversi
Ein gewöhnlicher Benutzer sollte niemals eine Socke besitzen! Wenn Sie die Socke nicht besitzen, stellen Sie sicher, dass Sie zur Radgruppe gehören und zu der Gruppe, zu der die Socke gehört ... nicht zur Gruppe der Sockenbesitzer!
CrazyMerlin
16

Der beste Weg, um herauszufinden, warum Docker nicht funktioniert, besteht darin, den Dämon manuell auszuführen.

$ sudo service docker stop
$ ps aux | grep docker  # do this until you don't see /usr/bin/docker -d
$ /usr/bin/docker -d

Der Docker-Dämon meldet sich bei STDOUT an, sodass er anfängt, alles auszuspucken, was er tut.

Hier war mein Problem:

[8bf47e42.initserver()] Creating pidfile
2015/01/11 15:20:33 pid file found, ensure docker is not running or delete /var/run/docker.pid

Dies lag daran, dass die Instanz von einer anderen virtuellen Maschine geklont wurde. Ich musste nur die PID-Datei entfernen und danach funktionierte alles.

Anstatt blindlings davon auszugehen, dass dies funktioniert, würde ich natürlich empfehlen, den Dämon noch einmal manuell auszuführen und die Protokollausgabe auf andere Fehler zu überprüfen, bevor Sie den Dienst sichern.

Robert Elwell
quelle
1
Das hat mir auch geholfen, das Problem zu finden (ich habe Ihre Antwort leider danach gesehen). Meins war das fehlende apparmorPaket.
Pierre de LESPINAY
Diese Lösung hat bei mir funktioniert. Nachdem ich /var/run/docker.pid gelöscht hatte, konnte ich endlich den Docker starten.
Jirikadlec2
3
Warnung: '-d' ist veraltet und wird bald entfernt. Siehe Verwendung. WARNUNG Bitte verwenden Sie stattdessen 'Docker Daemon'.
Juanmf
3
Flagge zur Verfügung gestellt, aber nicht definiert: -d
Luís de Sousa
So führen Sie den Docker-Daemon in den neuesten Versionen mit aktiviertem Debug manuell aus:dockerd -D
Luis Miguel Serrano vor
14

Wenn Sie die Nachricht erhalten Can't connect to docker daemon. Is 'docker -d' running on this host?, können Sie sie überprüfen docker version.

Wenn Sie die Informationen sehen, wird Docker Client ausgeführt. Docker Server ist dies jedoch nicht . Offensichtlich müssen Sie den Docker-Server starten.

In CentOS können Sie serviceden Docker-Server starten oder stoppen.

$ sudo service docker stop
$ sudo service docker start

Nach docker versionder Eingabe erhalten Sie die Informationen zu Docker Client und Docker Server , und der Docker-Dämon wurde gestartet.

Shawn Wang
quelle
2
sudo service docker startarbeitete auch für mich unter Ubuntu 14.04.
Funroll
Cent os 7, muss es jedes Mal tun, wenn ich Docker starte.
Paddy
@Paddy Sie müssen den Dienst aktivieren, nachdem Sie ihn angegeben haben. Er wird ausgeführt, wenn das System gestartet wird und im Hintergrund ausgeführt wird.
CrazyMerlin
Alle diese Antworten, die besagen: "Sie müssen sudo systemctl docker starten", setzen immer voraus, dass ein Docker-Dienst gestartet werden muss. Wenn beim Installieren von Docker Probleme aufgetreten sind, ist möglicherweise nicht einmal eine Dienstkonfigurationsdatei vorhanden. In diesem Fall wird Folgendes angezeigt: "Unit docker.service nicht geladen"
CrazyMerlin,
12

ps aux | grep dockerFühren Sie eine Überprüfung durch, um festzustellen, ob der Dämon ausgeführt wird. Wenn nicht laufen/etc/init.d/docker start

Reza S.
quelle
5
Ich habe das gleiche Problem. 'ps' zeigt an, dass mein Docker-Prozess noch läuft.
Jonathan Hartley
Das Anhalten und Starten des Dockers (der bereits lief) richtete mich gerade aus.
Kyle
14
sudo service docker startsagt mir "Docker starten / laufen, Prozess 4633" dann sudo service docker statussagt "Docker stoppen / warten"
Pierre de LESPINAY
12

Ich starte Docker nach der Installation neu:

$ sudo service docker stop
$ sudo service docker start

Und es funktioniert.

Galeere
quelle
9

Ich habe ein ähnliches Problem. Ich musste mich abmelden und erneut bei der Shell anmelden, da ich gerade Docker installiert habe und der folgende Befehl in meiner Umgebung nicht angezeigt wurde.

export DOCKER_HOST=127.0.0.1:4243 >> ~/.bashrc
Kayn
quelle
3
Ich musste mich nur abmelden und wieder anmelden. Alles behoben!
Mark Shust an der M.academy
Das hat mein Problem gelöst! Ich verwende Ubuntu 16.04 als WSL. Das einzige, was ich ändern musste, war die Standardportnummer: export DOCKER_HOST = 127.0.0.1: 2375 >> ~ / .bashrc
Alex
9

Ich bin mit diesem Problem konfrontiert und habe Docker mit den folgenden Befehlen neu gestartet:

$ sudo service docker stop
$ sudo service docker start

Aber ich habe mein Problem nicht gelöst, weil ich vergessen habe, meine Docker-Befehle ohne auszuführen sudo. Versuchen Sie, dies für diejenigen zu überprüfen, die mit diesem Problem konfrontiert sind.

Versuchen

$ sudo docker info

an Stelle von:

$ docker info
Taha Emara
quelle
Dies war genau mein Problem beim Versuch, docker buildunter Ubuntu Xenial zu laufen .
Ashnazg
9

Sie können den Befehl verwenden

sudo service docker stop && sudo service docker start

um es einfach zu starten.

kvadityaaz
quelle
3
Oder sudo service docker restartes ist einfacher 😊
fr1sk
8

Ich habe den gleichen Fehler und habe versucht docker-machine regenerate-certsoder eval..habe bei mir nicht funktioniert.

Dies unter OS X 10.11.3 (El Capitan) und Docker v1.10.1. Ich konnte es nur beheben, indem ich die Docker-Maschine wieder löschte und neu erstellte. Quelle

Wenn es ausgeführt wird docker-machine ls, wird eine ähnliche Ausgabe wie unten angezeigt.

DOCKER

Unbekannt

FEHLER

Docker-Version kann nicht abgefragt werden: Es kann keine Verbindung zum Endpunkt der Docker-Engine hergestellt werden

Versuchen Sie, Ihren Docker-Computer mit zu entfernen.

docker-machine rm -f default

Wo defaultist der Name Ihres Docker-Computers? Dann;

docker-machine create -d virtualbox default

Erstellt einen neuen Docker-Computer.

Stellen Sie sicher, dass jetzt alles normal aussieht (keine Fehler oder unbekannter Docker) mit:

docker-machine ls

Vergessen "$(docker-machine env default)"Sie nicht zu laufen, bevor Sie fortfahren, oder führen Sie das Docker-Schnellstart-Terminal aus, das dies für Sie erledigt ...

Kerem
quelle
6

Ich hatte das gleiche Problem - "Kann keine Verbindung zum Docker-Daemon herstellen." (außer dass beim Versuch, den Server zu starten, keine Fehler "Datei nicht gefunden" angezeigt wurden.)

'ps' zeigte, dass "/ usr / bin / docker -d" noch lief

Mir wurde klar, dass es mir nie gelungen war, den Server selbst zu betreiben. Jeder Versuch hatte hervorgebracht

...
2014/03/24 21:57:29 pid file found, ensure docker is not running or delete /var/run/docker.pid

Daher wurde mir verspätet klar, dass die Installation von Docker den Daemon möglicherweise bei upstart registriert hatte, was ihn für mich gestartet hatte. Daher schlägt der Versuch, den Dämon zu beenden, um ihn manuell neu zu starten, fehl (Vorgang nicht zulässig). Also habe ich eine gemacht

sudo kill -9 <PID>

auf dem Daemon-Prozess. Ein weiterer Daemon nahm sofort seinen Platz ein, und dieser neue lässt meinen CLI-Client jetzt eine Verbindung herstellen:

$ sudo docker info
Containers: 0
Images: 0
Driver: aufs
 Root Dir: /var/lib/docker/aufs
 Dirs: 0
WARNING: No memory limit support
WARNING: No swap limit support
Jonathan Hartley
quelle
6

Versuchen Sie, den aktuellen Benutzer zur dockerGruppe hinzuzufügen :

sudo usermod -aG docker $USER

Dann abmelden und einloggen.

dormi330
quelle
6

Verwenden Sie die Docker CE App

Mac OS

Verwenden Sie die neue Docker Community Edition-App für macOS. Zum Beispiel:

  1. Deinstallieren Sie alle Docker Homebrew-Pakete, die Sie bisher installiert haben:

    brew uninstall docker-compose
    brew uninstall docker-machine
    brew uninstall docker
    
  2. Installieren Sie eine App manuell oder über Homebrew-Cask :

    brew cask install docker
    

    Hinweis: Diese App notwendige Verknüpfungen erstellen werden docker, docker-compose, docker-machineetc.

  3. Überprüfen Sie nach dem Ausführen der App das Docker-Wal-Symbol im Statusmenü.

  4. Nun sollten Sie in der Lage sein zu verwenden docker, docker-compose, docker-machineBefehle wie gewohnt in der Klemme .

Verbunden:

Linux / Windows

Laden Sie den Docker CE von der Download-Seite herunter und befolgen Sie die Anweisungen.

Kenorb
quelle
Hinweis 2018-5-20: Die Docker CE-App unter macOS ist ziemlich beschissen. Jedes Mal, wenn ich es öffne, friert es einfach richtig ein und kann nichts tun. Ich habe versucht, das Problem bei Google zu beheben und arbeite noch daran
NamNamNam
1
Dies ist die richtige Antwort auf das gemeldete Problem, danke!
Paranza
6

Ich wusste, dass es in diesem Beitrag bereits viele Antworten gibt. Ich möchte nur eine einfache Antwort hinzufügen, die das oben erwähnte Problem löst.

sudo systemctl start docker

Führen Sie den obigen Befehl aus, und alle Docker-bezogenen Threads / Dienste werden gestartet.

Prakasam Dhamodhiran
quelle
5

Ich hatte gerade das gleiche Problem mit Amazon AWS .

Folgendes habe ich versucht:

  • Richten Sie docker-machinevor Ort mit bereits vorhandenen AWS - Instanz
  • Verwendetes generisches Setup
  • Es war irgendwie verbunden, aber da der Remote-Port geschlossen war, schlug es fehl
  • Danach weigerte sich der Docker-Dämon zu starten, aber das Ausführen dockerdfunktionierte ...

Es wurde auf dem Remote-Computer wie folgt getestet:

service docker start # Also restart, no success
systemctl start docker # Also restart, no success
dockerd # Success

Ich habe /var/lib/dockeralles entfernt und deinstalliert, aber nach der Neuinstallation gab es keinen Erfolg. Leider habe ich keine Protokolle von Fehlern gespeichert, sondern mich docker.servicenur geweigert zu starten.

Was mein Problem jedoch endgültig löste, war im Grunde:

sudo usermod -aG docker $(whoami)
Deko
quelle
4

Folgende Docker-DOC-Site: Verwalten Sie Docker als Nicht-Root-Benutzer

1) Erstellen Sie eine Docker-Gruppe

sudo groupadd docker 

2) Machen Sie den Benutzer zur Docker-Gruppe, um die Berechtigungen der Gruppe zu erhalten.

sudo usermod -aG docker $USER

Überprüfen Sie, ob die Umgebungsvariable DOCKER_HOST für Ihre Shell festgelegt ist.

env | grep DOCKER_HOST

Wenn es existiert,

unset DOCKER_HOST

Dann sollte das funktionieren:

docker run hello-world
Blasrodri
quelle
1
Sie sind ein Lebensretter, unset DOCKER_HOSTder für mich gearbeitet hat
user3014595
4

Wenn Sie unter OS X mit dem Docker-Tool ausgeführt werden, befolgen Sie diese Anweisungen.

Starten Sie den Daemon neu und konfigurieren Sie Ihre Umgebung:

docker-machine restart

Und dann

docker-machine env

Schließlich,

eval $(docker-machine env)

So testen Sie den Daemon:

docker ps -aoder docker-machine ls. Dadurch werden alle Container aufgelistet.

Ermias K.
quelle
2

Ich habe das gleiche Problem. In CentOS 6.5:

ps aux |grep `cat /var/run/docker.pid`

Wenn angezeigt wird, dass kein Docker-Daemon-Prozess vorhanden ist, gebe ich Folgendes ein:

docker -d

Dann Ctrl+ D, um Docker zu stoppen. Da wir diese -dOption verwenden, wird Docker als Daemon ausgeführt. Jetzt können wir tun:

service docker start

Dann kann ich eine machen docker pull centos . Das ist alles.

HINWEIS: Wenn diese nicht funktionieren, können Sie es versuchen yum updateund dann erneut wiederholen, da ich yum installvor diesen.

wuranbo
quelle
2

Der Docker-Dienst wird möglicherweise nicht ausgeführt.

Wenn Sie mit RedHat / Fedora / CentOS arbeiten, versuchen Sie Folgendes:

sudo systemctl start docker

Wenn Sie auf Ubuntu / Debian sind:

sudo service start docker

Docker wird auf Ihrem Host und dem entsprechenden Port ausgeführt.

Aamir M Meman
quelle
1

Überprüfen Sie, ob Sie Docker Machine verwenden :)

Run docker-machine env defaultsollte den Trick machen.

Denn laut Dokumentation:

Docker Machine ist ein Tool, mit dem Sie Docker Engine auf virtuellen Hosts installieren und die Hosts mit docker-machineBefehlen verwalten können. Mit Machine können Sie Docker-Hosts auf Ihrem lokalen Mac oder Ihrer Windows-Box, in Ihrem Unternehmensnetzwerk, in Ihrem Rechenzentrum oder bei Cloud-Anbietern wie AWS oder Digital Ocean erstellen.

Verwenden von docker-machine Befehlen können Sie einen verwalteten Host starten, überprüfen, stoppen und neu starten, den Docker-Client und -Dämon aktualisieren und einen Docker-Client für die Kommunikation mit Ihrem Host konfigurieren.

Zeigen Sie mit der Computer-CLI auf einen laufenden, verwalteten Host, und Sie können dockerBefehle direkt auf diesem Host ausführen. Zum Beispiel laufen docker-machine env defaultzu Punkt zu einem Host genannt default, folgen Sie Anweisungen auf dem Bildschirm , um eine vollständige envKonfiguration und laufen docker ps, docker run hello-worldund so weiter.

https://docs.docker.com/machine/overview/

Bob
quelle
1
  1. Ich hatte auch das gleiche Problem. Das Problem lag in Sockets, die Docker-Daemon und Docker-Client zugewiesen waren.
  2. Erstens wurde für den Docker-Client auf docker.sock keine Berechtigung festgelegt. Sie können sie mit "sudo usermod -aG docker $ USER" festlegen.
  3. Überprüfen Sie dann Ihre Bash-Datei, in der der Docker-Client ausgeführt wird. Für mich war sie auf 0.0.0.0:2375, während der Docker-Daemon auf einem Unix-Socket ausgeführt wurde (in der Konfigurationsdatei von Dockerd festgelegt).
  4. Kommentieren Sie einfach die Bash-Line und es wird gut funktionieren.
  5. Wenn Sie jedoch möchten, dass es auf dem TCP-Port anstelle des Unix-Sockets funktioniert, ändern Sie die Konfigurationsdatei von dockerd und setzen Sie sie auf 0.0.0.0.2375. Behalten Sie die Zeile in bash bei, wie sie vorhanden ist, oder setzen Sie sie auf 0.0.0.0: 2375.
Nilesh Kande
quelle
1

Um dies zu beheben, müssen Sie die folgenden Befehle im Terminal eingeben. Ich werde jeden Schritt erklären:

# Uninstall Docker from apt packages
$ sudo apt-get remove docker docker.io

# Remove it from the libraries just to be
# sure it's gone forever
$ sudo rm -rf /var/lib/docker/*

Wenn Sie die Dinge vereinfachen und mehr Zeit haben möchten, können Sie mein initSkript mit dem folgenden Parameter ausführen installDocker:

# Pull the init script from GitHub
$ wget https://github.com/dminca/dotfiles/blob/master/init

# Add rights to run the script
$ chmod 755 init

# Just run the script with the installDocker parameter
$ ./init installDocker

Ein Neustart ist optional, aber ich schlage vor, dass Sie dies tun, um sicherzustellen, dass alles reibungslos funktioniert.

Daniel Andrei Mincă
quelle
1

Ich hatte das gleiche Problem mit Docker 1.10 unter Ubuntu 14.04 und keine der angegebenen Antworten funktionierte. Für mich bestand die Lösung darin, den Speichertreiber beim Ausführen des Docker-Dämons anzugeben.

sudo docker daemon --storage-driver=devicemapper
Yatit Thakker
quelle
1

Wenn Sie gitlab-ci / gitlab-running verwenden, wird dieser Fehler angezeigt, wenn Sie keine Zugriffsberechtigung haben /var/run/docker.sock.

Got permission denied while trying to connect to the Docker daemon socket at unix:///var/run/docker.sock

Um das Problem zu lösen:

sudo usermod -aG docker gitlab-runner

Überprüfen Sie mit:

sudo -u gitlab-runner -H docker info

Ich hoffe, das hilft.

Tobias Ernst
quelle
0

Wenn die Neuerstellung von TLS-Zertifikaten nicht funktioniert

docker-machine regenerate-certs default

Starten Sie den Docker-Computer neu und legen Sie die env-Variable fest:

docker-machine restart default
eval $(docker-machine env default)

Überprüfen Sie, ob die Maschine läuft mit:

docker-machine ls

oder alternativ

docker run hello-world

Das hat bei mir funktioniert. Wenn Sie den Dämon jedoch immer noch nicht eingerichtet haben, wird auf der Docker-Seite zur Fehlerbehebung ein Vorgang zum Stoppen, Entfernen und Erstellen eines neuen Computers beschrieben.

Nikheel
quelle
0

Ich habe auch das Problem "Es kann keine Verbindung zum Docker-Dämon hergestellt werden. Läuft der Docker-Dämon auf diesem Host?".

Ich hatte vergessen zu benutzen sudo. Hoffe, es wird einigen von uns helfen.

$:docker images
Cannot connect to the Docker daemon. Is the docker daemon running on this host?

$:sudo docker images
REPOSITORY   TAG   IMAGE ID   CREATED   SIZE
Habeeb Perwad
quelle