Das offizielle mongo
Bild auf Docker Hub (https://hub.docker.com/_/mongo/) definiert zwei Volumes zum Speichern von Daten in the Dockerfile. Wenn Sie beim Ausführen des Containers nicht explizit eine Option -v
/--volume
angegeben haben, hat Docker anonyme (unbenannte) Volumes für diese erstellt, und diese Volumes sind möglicherweise noch vorhanden. Es kann etwas schwierig sein zu finden, welche Volumes zuletzt vom Container verwendet wurden, da sie keinen Namen haben.
Um alle noch auf dem Docker-Host vorhandenen Volumes aufzulisten, verwenden Sie;
docker volume ls
Was sollte Ihnen so etwas geben;
DRIVER VOLUME NAME
local 9142c58ad5ac6d6e40ccd84096605f5393bf44ab7b5fe51edfa23cd1f8e13e4b
local 4ac8e34c11ac7955b9b79af10c113b870edd0869889d1005ee17e98e7c6c05f1
local da0b4a7a00c4b60c492599dabe1dbc501113ae4b2dd1811527384a5dc26cab13
local 81a40483ae00d72dcfa2117b3ae40f3fe79038544253e60b85a8d0efc8f3d139
Um zu sehen, was sich in einem Volume befindet, können Sie es an einen temporären Container anhängen und überprüfen, was sich dort befindet. Beispielsweise;
docker run -it -v 81a40483ae00d72dcfa2117b3ae40f3fe79038544253e60b85a8d0efc8f3d139:/volume-data ubuntu
, die eine interaktive Shell in einem neuen ubuntu Container beginnt, mit dem Volumen 81a40483ae00d72dcfa2117b3ae40f3fe79038544253e60b85a8d0efc8f3d139
bei /volume-data/
im Innern des Behälters montiert.
Sie können dann gehen Sie in dieses Verzeichnis, und prüfen Sie, ob es das Volumen Sie suchen:
[email protected]:/# cd /volume-data/
[email protected]:/volume-data# ls -la
sobald Sie welche Datenträger identifiziert (nach dem Dockerfile, das Mongo Bild zwei verwendet), Sie kann einen neuen Mongo-Container starten und diese Volumes mounten;
docker run -d --name mymongo \
-v 4ac8e34c11ac7955b9b79af10c113b870edd0869889d1005ee17e98e7c6c05f1:/data/db/ \
-v da0b4a7a00c4b60c492599dabe1dbc501113ae4b2dd1811527384a5dc26cab13:/data/configdb/ \
mongo
Ich schlage vor, Sie wirklich den Where to Store Data Abschnitt in der Dokumentation für das Mongo Bild auf Docker Hub lesen Sie Ihre Daten zu verhindern verlieren.
HINWEIS
ich auch festgestellt, dass Ihr letzter Befehl --name myMongo2
nach der Bildnamen setzt; Es sollte vormongo
(der Bildname) sein. Auch myMongo2
ist ein ungültiger Containername, da Großbuchstaben nicht zulässig sind.
Wenn Ihr Container "Volume" verwendet, sind die Daten wahrscheinlich noch auf Ihrem Computer verfügbar. Siehe http://stackoverflow.com/questions/26009619/how-to-retrieve-volume-from-a-removed-docker-container. Sichern Sie den Ordner, bevor Sie etwas tun, falls etwas schief geht. –
@warmoverflow Ich hatte diesen Stack-Overflow-Eintrag gesehen, aber ich habe kein '/ var/lib/docker'-Verzeichnis. Nicht sicher, ob es ist, weil ich auf El Capitan aktualisiert habe, seit ich mein mongodb letztes Mal benutzt habe, oder weil es ein Mac ist, nicht Linux. – Ferenc
@thaJeztah lieferte eine gute Antwort.Wenn Sie darüber hinaus Mac OS X verwenden, verwenden Sie die Docker Toolbox. Der '/ var/lib/docker' Ordner befindet sich in der Docker Toolbox vm, die Sie mit 'docker-machine ssh default' anmelden können. –