Ich bin neu bei 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 die Umgebung DOCKER_HOST
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, indem ich:
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 mache docker pull busybox
, zieht es 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
docker
boot2docker
user1189851
quelle
quelle
Antworten:
Sie müssen keine Docker-Befehle ausführen, wie
sudo
bei Verwendung,boot2docker
da jeder an dieboot2docker
VM übergebene Befehl standardmäßig als root ausgeführt wird.Beim Ausführen wird der Fehler angezeigt,
sudo
dasudo
dieDOCKER_HOST
Umgebung nicht festgelegt ist, sondern nur Ihr Benutzer.Sie können dies bestätigen, indem Sie Folgendes ausführen:
Dann ein
Und
DOCKER_HOST
in jedem Ausgang suchen .Wenn Sie eine Docker-Datei haben, in der Ihr Skript ausgeführt wird, funktioniert dies möglicherweise für Sie:
Dockerfile
Dann können Sie ausführen:
Dadurch wird Ihr Docker-Image erstellt, das Sie sehen können, indem Sie Folgendes ausführen:
Um Ihren Container auszuführen, können Sie Folgendes ausführen:
Dieser Ausführungsbefehl startet einen Container aus dem Image, das Sie mit Ihrem
Dockerfile
und Ihrem Build-Befehl erstellt haben, und wird beendet, sobald Ihrescript.sh
Ausführung abgeschlossen ist.quelle
-t
wieyour-image-name:a-tag
.Sie können Ihre Umgebung schnell einrichten mit
shellinit
Führen Sie an Ihrer Eingabeaufforderung Folgendes aus:
Dadurch werden die Umgebungsvariablen gefüllt und exportiert und andere Funktionen initialisiert.
quelle
Auf meinem MAC, wenn ich boot2docker-vm auf dem Terminal mit starte
Ich sehe folgendes
Nachdem ich diese Umgebungsvariablen festgelegt hatte, konnte ich den Build ohne Probleme ausführen.
Update [2016-04-28] Wenn Sie eine der neuesten Docker-Versionen verwenden, können Sie dies tun
eval $(docker-machine env)
wird die Umgebung einstellen(
docker-machine env
druckt die Exportanweisungen aus)quelle
docker pull
schlägt fehl, wenndocker service
es nicht läuft. Stellen Sie sicher, dass es vorbei läuftWenn es nicht ausgeführt wird, können Sie es starten
sudo service docker start
Für Ubuntu 15 und höher verwenden
sudo systemctl start docker
quelle
Ich habe auch diesen Fehler bekommen. Ich habe jedoch nicht boot2docker verwendet, sondern nur "einfaches" Docker unter Ubuntu installiert (siehe https://docs.docker.com/installation/ubuntulinux/ ).
Ich habe den Fehler erhalten ("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 noch nicht ausgeführt wurde.
Unter Ubuntu müssen Sie den Dienst starten :
Siehe auch http://blog.arungupta.me/resolve-dial-unix-docker-sock-error-techtip64
quelle
Für boot2docker unter Windows, nachdem Sie Folgendes gesehen haben:
Alles was ich getan habe war:
Das erzeugte:
Schließlich:
Und Docker funktioniert wieder
quelle
Unter Linux zunächst
sudo service docker start
im Terminal ausführen .quelle
Wenn Sie CentOS 7 verwenden und Docker über yum installiert haben, vergessen Sie nicht, Folgendes auszuführen:
Dadurch wird der Server gestartet und beim Booten automatisch neu gestartet.
quelle
So richten Sie Ihre Umgebung ein und behalten sie für zukünftige Sitzungen:
Dann:
source ~/.bashrc
Und Ihre Umgebung wird in jeder Sitzung eingerichtet
quelle
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
quelle
Sie, vielleicht nicht der OP, aber jemand hat möglicherweise bereits ein Verzeichnis aufgerufen,
/var/run/docker.sock/
weil Sie so oft gehackt und aufgeschlitzt haben, um die Dinge mit Docker richtig zu machen (insbesondere Noobs). Löschen Sie dieses Verzeichnis und versuchen Sie es erneut.Dies hat mir auf meinem Weg geholfen, es auf Centos 7 zum Laufen zu bringen.
quelle