wake-up-neo.net

Docker-Fehler: /var/run/docker.sock: Keine solche Datei oder kein solches Verzeichnis

Ich bin neu in Docker. Ich habe ein Shell-Skript, das Daten in Impala lädt, und ich möchte, dass eine Docker-Datei, die ausgeführt wird, ein Image erstellt und den Container ausführt. Ich bin auf einem Mac, habe boot2docker installiert und habe das DOCKER_Host env eingerichtet.

bash-3.2$ docker info
Containers: 0
Images: 0
Storage Driver: aufs
Root Dir: /mnt/sda1/var/lib/docker/aufs
Dirs: 0
Execution Driver: native-0.2
Kernel Version: 3.15.3-tinycore64
Debug mode (server): true
Debug mode (client): false
Fds: 10
Goroutines: 10
EventsListeners: 0
Init Path: /usr/local/bin/docker
Sockets: [unix:///var/run/docker.sock tcp://0.0.0.0:2375]

Ich versuche gerade, ein vorgefertigtes Image zu installieren:

Sudo docker pull busybox

Ich erhalte diesen Fehler:

Sudo docker pull busybox 2014/08/18 17:56:19 Post http:///var/run/docker.sock/images/create?fromImage=busybox&tag=: dial unix /var/run/docker.sock: no such file or directory

Stimmt etwas mit meinem Docker-Setup nicht?

Wenn ich ein docker pull busybox, Es zieht das Bild und der Download ist abgeschlossen.

bash-3.2$ docker pull busybox
Pulling repository busybox
a9eb17255234: Download complete 
fd5373b3d938: Download complete 
d200959a3e91: Download complete 
37fca75d01ff: Download complete 
511136ea3c5a: Download complete 
42eed7f1bf2a: Download complete 
c120b7cab0b0: Download complete 
f06b02872d52: Download complete 
120e218dd395: Download complete 
1f5049b3536e: Download complete 
bash-3.2$ docker run busybox /bin/echo Hello Doctor
Hello Doctor

Vermisse ich etwas?

85
user1189851

Sie müssen keine Docker-Befehle als Sudo ausführen, wenn Sie boot2docker Verwenden, da jeder Befehl an boot2docker VM übergeben wird Läuft standardmäßig als root.

Wenn Sie als Sudo ausgeführt werden, wird der Fehler angezeigt, da für Sudo nicht die Einstellung DOCKER_Host Festgelegt ist, sondern nur für Ihren Benutzer.

Sie können dies bestätigen, indem Sie Folgendes ausführen:

$ env

Dann ein

$ Sudo env

Und in jeder Ausgabe nach DOCKER_Host Suchen.

Wenn Sie eine Docker-Datei haben, in der Ihr Skript ausgeführt wird, funktioniert Folgendes möglicherweise für Sie:

Dockerfile

FROM busybox

# Copy your script into the docker image
ADD /path/to/your/script.sh /usr/local/bin/script.sh

# Run your script
CMD /usr/local/bin/script.sh

Dann kannst du laufen:

docker build -t your-image-name:your-tag .

Dadurch wird Ihr Docker-Image erstellt, das Sie folgendermaßen anzeigen können:

docker images

Um Ihren Container auszuführen, können Sie Folgendes ausführen:

docker run your-image-name:your-tag

Dieser Befehl startet einen Container aus dem Image, das Sie mit Ihrem Dockerfile und Ihrem Build-Befehl erstellt haben, und wird dann beendet, sobald Ihr script.sh Die Ausführung beendet hat.

87
Chris McKinnel

Sie können Ihre Umgebung schnell einrichten, indem Sie shellinit verwenden.

Führen Sie auf Ihre Aufforderung hin Folgendes aus:

$(boot2docker shellinit)  

Dadurch werden die Umgebungsvariablen aufgefüllt und exportiert und andere Funktionen initialisiert.

45
user848337

Auf meinem MAC starte ich boot2docker-vm am Terminal mit


boot2docker start

Ich sehe folgendes


To connect the Docker client to the Docker daemon, please set:
    export DOCKER_CERT_PATH=
    export DOCKER_TLS_VERIFY=1
    export DOCKER_Host=tcp://:2376

Nachdem ich diese Umgebungsvariablen gesetzt hatte, konnte ich den Build ohne Probleme ausführen.

pdate [2016-04-28] Wenn Sie die neuesten Docker-Versionen verwenden, können Sie dies tun

eval $(docker-machine env) legt die Umgebung fest

(docker-machine env Druckt die Exportanweisungen aus)

25
Jerome Anthony

docker pull wird fehlschlagen, wenn docker service Läuft nicht. Stellen Sie sicher, dass es von ausgeführt wird

:~$ ps aux | grep docker
root     18745  1.7  0.9 284104 13976 ?   Ssl  21:19   0:01 /usr/bin/docker -d

Wenn es nicht läuft, können Sie es mit starten

Sudo service docker start

Für Ubuntu 15 und höher verwenden

Sudo systemctl start docker

24
Harikrishnan

Ich habe auch diesen Fehler bekommen. Allerdings habe ich nicht boot2docker verwendet sondern nur "normaler" Docker unter Ubuntu installiert (siehe https://docs.docker.com/) installation/ubuntulinux / ).

Ich habe den Fehler ("Unix wählen /var/run/docker.sock: keine solche Datei oder kein solches Verzeichnis. Versuchen Sie, eine Verbindung zu einem TLS-fähigen Daemon ohne TLS herzustellen?"), Weil der Docker Daemon nicht ausgeführt wurde , noch.

Unter Ubuntu müssen Sie den Dienst starten:

Sudo service docker start

Siehe auch http://blog.arungupta.me/resolve-dial-unix-docker-sock-error-techtip64

16
Jörg

Für boot2docker unter Windows, nachdem Folgendes angezeigt wurde:

FATA[0000] Get http:///var/run/docker.sock/v1.18/version: 
dial unix /var/run/docker.sock: no such file or directory.  
Are you trying to connect to a TLS-enabled daemon without TLS?

Alles was ich getan habe war:

boot2docker start
boot2docker shellinit

Das erzeugte:

export DOCKER_CERT_PATH=C:\Users\vonc\.boot2docker\certs\boot2docker-vm
export DOCKER_TLS_VERIFY=1
export DOCKER_Host=tcp://192.168.59.103:2376

Endlich:

boot2docker ssh

Und Docker funktioniert wieder

9
VonC

Führen Sie unter Linux zunächst Sudo service docker start im Terminal.

6
Mohsen Kashi

Wenn Sie CentOS 7 verwenden und Docker über yum installiert haben, vergessen Sie nicht, Folgendes auszuführen:

$ Sudo systemctl start docker
$ Sudo systemctl enable docker

Dadurch wird der Server gestartet und beim Booten automatisch neu gestartet.

5
Lee Benson

So richten Sie Ihre Umgebung ein und behalten sie für zukünftige Sitzungen bei:

echo 'export DOCKER_Host="tcp://$(boot2docker ip 2>/dev/null):2375";' >> ~/.bashrc

Dann: source ~/.bashrc

Und Ihre Umgebung wird in jeder Sitzung eingerichtet

4
Lt.

Die erste Datei /var/run/docker.sock verweist auf denselben Pfad in Ihrer virtuellen boot2docker-Maschine. Schreiben Sie korrekt für Windows /var/run/docker.sock

0
M. Dicon

Sie, vielleicht nicht das OP, aber jemand hat vielleicht schon ein Verzeichnis mit dem Namen /var/run/docker.sock/, Weil Sie oft gehackt und durchgestrichen haben, um die Dinge mit Docker in Ordnung zu bringen (insbesondere Noobs). Löschen Sie dieses Verzeichnis und versuchen Sie es erneut.

Dies half mir auf dem Weg, es auf Centos 7 zum Laufen zu bringen.

0
pjammer