Anfängerfrage: werden Docker Container rückstandslos gelöscht?

wired2051

Benutzer
Mitglied seit
17. Mrz 2010
Beiträge
903
Punkte für Reaktionen
12
Punkte
44
Ich habe Docker installiert, erst einmal um rsnapshot auf der DS zu nutzen. Auf meiner DS und unter hub.docker.com werden verschiedene Container angeboten - allerdings kein offizieller. Der mit den meisten Downloads/Sternen (50k+) wurde vor 13 Tagen aktualisiert, der aktuellste (2 Tage) hat nur 10k+ Downloads. Und in der DS steht an Position 1 elkarbackup/elkarbackup, eine backup solution based on RSync/RSnapshot, also gar nicht was ich suche.

Kann ich die Container unbeschwert durchprobieren, werden sie im Zweifel rückstandslos gelöscht oder bleiben Konfigurationsdateien o.ä. übrig?
 

Ulfhednir

Benutzer
Sehr erfahren
Mitglied seit
26. Aug 2013
Beiträge
3.475
Punkte für Reaktionen
1.087
Punkte
194
Wenn du keine persistenten Speicher verwendest, sollte, mit Ausnahme des Images, alles restlos entfernt werden.
Das Image musst du dann manuell löschen.
o314Af9.png


Wenn du deinen Container produktiv verwenden möchtest, sollten deine Einstellungen (Configs) natürlich in einem persistenten Storage abgelegt sein, damit sie auch ein Container-Update überleben und du nicht permanent die Einstellungen neu vornehmen musst.
 

wired2051

Benutzer
Mitglied seit
17. Mrz 2010
Beiträge
903
Punkte für Reaktionen
12
Punkte
44
Ich glaube, ich beginne zu begreifen. Ich kann ein Image mehrmals starten und auf seiner Basis mehrere Container erstellen. Also könnte man sagen, der Container ist die (laufende) Anwendung und das Image enthält den Code? Wird das Image dabei verändert oder ist das immer read only?

Wie erkenne ich, ob die Einstellungen (Configs) in einem permanenten Speicher liegen, bzw. sie dort ablegen? Container > Bearbeiten > Volume?
 

haydibe

Benutzer
Sehr erfahren
Mitglied seit
12. Apr 2016
Beiträge
1.519
Punkte für Reaktionen
404
Punkte
103
Ein Image ist ein Abbild, dass die Anwendung, all ihre Abhängigkeiten, Konfigurationen und in den meisten Fällen ein mehr oder weniger cleveres Entrypoint-Skript enthält (welches beschreibt was beim Start eines Containers auf Basis dieses Images passieren soll) kapselt.

Ein Container basiert auf einem Image und ist dessen Laufzeitausprägung. Ein Container bindet die read-only Layer eines Images + eine Copy-on-Write Layer ein. Nur in letzteres kann geschrieben werden. Dieser Layer wird mit einem Contaienr zusammen gelöscht. DIe Image Layer bleiben bestehen, da sie ja anderweitig wiederverwendet werden könnten... Die muss man explizit selbst löschen, wenn man sie nicht mehr haben will.

Ansonsten gibt es noch Volumes, die erlauben ein Host-Verzeichnis in ein Container-Verzeichnis zu mappen (in Wahrheit mounten) um darüber Daten außerhalb des Containers permanent zu speichern. Die Container-Verzeichnisse die man sinnvoll mappen kann, sollten in der jeweiligen Dockerhub-Beschreibung des Images stehen.
 
  • Like
Reaktionen: geimist

Ulfhednir

Benutzer
Sehr erfahren
Mitglied seit
26. Aug 2013
Beiträge
3.475
Punkte für Reaktionen
1.087
Punkte
194
Das Image ist als Bauplan zu verstehen auf dessen Grundlage der Container erstellt wird. Eine Änderung innerhalb des Containers führt nicht zu einer Änderung am Image.
Wie erkenne ich, ob die Einstellungen (Configs) in einem permanenten Speicher liegen, bzw. sie dort ablegen? Container > Bearbeiten > Volume?

Das setzt voraus, dass du vorab ein lokales Laufwerk als Volume eingebunden hast. Hier einmal ein Beispiel eines leeren Volumes.
VLNU0aF.png
 

wired2051

Benutzer
Mitglied seit
17. Mrz 2010
Beiträge
903
Punkte für Reaktionen
12
Punkte
44
Danke für die Erklärungen! Bisher habe ich nur mit hello-world rumgespielt...

Wo werden Image Layer gespeichert und wie löscht man sie (ich halte gerne Ordnung)?

Wenn ich also in der Dockerhub-Beschreibung Container-Verzeichnisse finde, muss ich sie beim Erstellen des Containera unter Image > Starte > erweiterte Einstellungen > Volume > Ordner hinzufügen angeben?
 

Ulfhednir

Benutzer
Sehr erfahren
Mitglied seit
26. Aug 2013
Beiträge
3.475
Punkte für Reaktionen
1.087
Punkte
194

wired2051

Benutzer
Mitglied seit
17. Mrz 2010
Beiträge
903
Punkte für Reaktionen
12
Punkte
44
..das ist das Löschen von Images. @haydibe schrieb von Image Layern, die man explizit selbst löschen müsse.
 

haydibe

Benutzer
Sehr erfahren
Mitglied seit
12. Apr 2016
Beiträge
1.519
Punkte für Reaktionen
404
Punkte
103
Ignorier meinen "unter der Haube" Hinweis mit den Image-Layern. Wenn man ein Image so löscht wie Ulfhednir beschrieben hat, dann werden auch die Layer mitgelöscht. Natürlich klappt das löschen nur, sofern kein Container existiert (egal ob gestopped oder laufend), der das Image nutzt.
 

wired2051

Benutzer
Mitglied seit
17. Mrz 2010
Beiträge
903
Punkte für Reaktionen
12
Punkte
44
Na, dann kann ich morgen ja sorglos experimentieren.

Danke, Ihr habt mir sehr geholfen! (y)
 


 

Kaffeautomat

Wenn du das Forum hilfreich findest oder uns unterstützen möchtest, dann gib uns doch einfach einen Kaffee aus.

Als Dankeschön schalten wir deinen Account werbefrei.

:coffee:

Hier gehts zum Kaffeeautomat