Unverständniss über docker dateisystem.

justinh999

Experte
Thread Starter
Mitglied seit
02.05.2019
Beiträge
304
Ort
harz
Hallo
Ich habe bei mir seit einigen Jahren auf meinem Raspery Pi einen Docker Container laufen .Dieser Hostet einen kleinen uvicorn Webserver mit https.

Ich wollte jetzt noch einen zweiten Container hinzufügen und bei der Recherche , wie ich dass mache( der Container den ich am laufen hatte hat seit Jahren kein Update mehr bekommen, weshalb ich mich auch jahrelang nicht mehr mit Docker beschäftigt habe ) bin ich auf den interessanten Fakt gestoßen, dass die Daten in einem Docker Container nach dem Neustart gelöscht werden .Außer mann erstellt ein Docker Volume oder verweist via Mounth Path auf ein Pfad im "echten " Dateisystem.

Mein eigener Docker Container hat kein Volume oder ein Mounth Path .
Ich habe manuell per docker cp in das Docker Container Verzeichniss /home/app ein paar Zertifikate kopiert, die Uvicorn braucht um korrekt per https laufen zu können .

Diese Zertifikate müssten ja rein theoretisch nach einem Neustart des Containers weg sein, sind sie aber nicht .

Verstehe ich hier einfach Dockers Dateisystem falsch oder hat dass eventuell eine andere Ursache?
 
Wenn Du diese Anzeige nicht sehen willst, registriere Dich und/oder logge Dich ein.
Wenn du nichts besonderes unternimmst liegen die Daten deines Containers in einem anonymen 10 GB Standard-Volume. Die bleiben dort und überleben auch einen Neustart des Containers, z.B. mit "restart".

Was sie aber nicht überleben ist ein Entfernen des Containers mit "rm". Dann ist das an dem Container hängende Volume und damit deine Daten weg.

 
Ja gut , dieses anonyme 10 GB Volume reicht aufjedenfall für die Container von mir , die kein eigenes Volume haben. Die Container die kein eigenes Volume bei mir haben , legen entweder keine Daten an (beziehungsweise benötigen irgendwelche Daten von mir) oder ich kann die Daten mit 1-2 Befehlen wieder reinkopieren (also ein Neueinrichtungsuafwand von 2 min). Ich schätzte mal , diese 10 GB Volumen wird mann nicht so einfach Backupen und Wiederherstzellen können , wie ein "echtes " Volume.
 
Ja gut , dieses anonyme 10 GB Volume reicht aufjedenfall für die Container von mir , die kein eigenes Volume haben. Die Container die kein eigenes Volume bei mir haben , legen entweder keine Daten an (beziehungsweise benötigen irgendwelche Daten von mir) oder ich kann die Daten mit 1-2 Befehlen wieder reinkopieren (also ein Neueinrichtungsuafwand von 2 min). Ich schätzte mal , diese 10 GB Volumen wird mann nicht so einfach Backupen und Wiederherstzellen können , wie ein "echtes " Volume.

Solange der Container läuft oder gestoppt ist (nicht entfernt) kannst dir anschauen, wo die Daten auf dem Host landen:
Code:
docker ps -a
zeigt dir alle laufenden und gestoppten Container an.
Code:
docker inspect <Container Id>
mit der Container Id die dich interessiert, bekommst du unter "mounts" Infos, wo die Dateien liegen, die der Container auf dem Host gemountet hat.

Du kannst dich auch anders herum nähern.
Code:
docker volume list
zeigt dir die vorhandenen Volumes an.
Code:
dockder volume inspect <Name des Volumes>
mit dem jeweiligen Volumenamen eingesetzt, zeigt dir wo Docker-Volume-Daten auf dem Host liegen.

Damit ausgestattet sollte es möglich sein zu schauen, wo die Zertifikate auf dem Host liegen. Die Info müsstest du erstmal ermitteln.

Liegen die Daten in einem Named Volume, was jetzt bei dir wohl nicht der Fall ist, würde das benannte Volume immer wieder verwendet. Egal ob docker stop oder sogar docker rm.

Liegen die Daten in einem Anonymen Volume würde ein neues Anonymes Volume verwendet werden, wenn der Container einmal den Zustand deleted (docker rm) erreicht hat und man einen neuen Container erzeugt.

Die "alten" Anonymen Volumes sind nicht sofort weg. Sie liegen unreferenziert auf dem Host. Erst nach "docker prune" werden sie wirklich gelöscht. Daher Vorsicht mit dem Befehl.

Weitere Infos


 
Docker ist schon was feines. Wenn du es noch nicht nutzt, empfehle ich dir den Container: Portainer zum verwalten aller Container. Wichtig ist immer die Pfade zu beachten die bei den Container angegeben werden. Ohne einen direkten Speicherofad ist halt nach ein Update alles weg. Min einen für die Configs anlegen.
 
Hardwareluxx setzt keine externen Werbe- und Tracking-Cookies ein. Auf unserer Webseite finden Sie nur noch Cookies nach berechtigtem Interesse (Art. 6 Abs. 1 Satz 1 lit. f DSGVO) oder eigene funktionelle Cookies. Durch die Nutzung unserer Webseite erklären Sie sich damit einverstanden, dass wir diese Cookies setzen. Mehr Informationen und Möglichkeiten zur Einstellung unserer Cookies finden Sie in unserer Datenschutzerklärung.


Zurück
Oben Unten refresh