CodeGym /Kurse /Docker SELF /Einbinden von Volumes in Container

Einbinden von Volumes in Container

Docker SELF
Level 19 , Lektion 2
Verfügbar

3.1 Grundlagen des Mountens von Volumes

Das Mounten von Volumes in Container ist eine der Schlüssel-Funktionen von Docker, die es erlaubt, Daten außerhalb von Containern zu speichern, um deren langfristige Speicherung und Verfügbarkeit sicherzustellen. Volumes können für verschiedene Zwecke verwendet werden, einschließlich der Speicherung von Konfigurationsdateien, Datenbanken, Logs und anderen wichtigen Daten. In dieser Vorlesung schauen wir uns an, wie man Volumes in Container mountet, und geben praktische Beispiele.

Grundlagen des Mountens von Volumes

Wie wir bereits gesagt haben, existieren Volumes unabhängig vom Lebenszyklus eines Containers. Sie werden in einem speziellen Verzeichnis auf der Host-Maschine gespeichert und können mit jedem Container verbunden werden.

Befehl zum Mounten von Volumes

Volumes werden in Container mithilfe der Parameter -v oder --mount beim Starten eines Containers gemountet.

3.2 Parameter -v

Beispiele für die Verwendung des Parameters -v

1. Ein Volume in einen Container mounten

Ein Volume erstellen und es in einen Container mounten:

Volume erstellen:

Terminal

docker volume create my_volume

Container mit gemountetem Volume starten:

Terminal

docker run -d --name my_container -v my_volume:/app nginx

In diesem Beispiel wird das Volume my_volume in das Verzeichnis /app des Containers my_container gemountet.

2. Mehrere Volumes mounten

Du kannst mehrere Volumes in einen Container mounten:

Terminal

docker run -d --name my_container -v volume1:/app/data -v volume2:/app/logs nginx

In diesem Beispiel wird das Volume volume1 in das Verzeichnis /app/data gemountet, und das Volume volume2 — in das Verzeichnis /app/logs.

3.3 Parameter --mount

Der Parameter --mount bietet eine detailliertere Möglichkeit, Volumes einzubinden, mit der Option, verschiedene Parameter anzugeben.

1. Einbindung eines Volumes mit --mount

Terminal

docker run -d --name my_container --mount source=my_volume,target=/app nginx

Dieses Beispiel ist ähnlich wie das vorherige Beispiel mit -v, verwendet jedoch eine ausführlichere Syntax.

2. Einbindung mit zusätzlichen Parametern

Terminal

docker run -d --name my_container --mount source=my_volume,target=/app,readonly nginx

In diesem Beispiel wird das Volume im Nur-Lese-Modus (readonly) eingebunden.

3.4 Praktische Beispiele

Beispiel 1: Verwendung von Volumes für eine Datenbank

Erstellen und Verwenden eines Volumes zum Speichern von Daten der Datenbank.

Volume erstellen:

Terminal

docker volume create db_data

Starten eines Datenbank-Containers mit gemountetem Volume:

Terminal

docker run -d --name postgres -e POSTGRES_PASSWORD=mysecretpassword -v 
db_data:/var/lib/postgresql/data postgres

In diesem Beispiel werden die Daten der PostgreSQL-Datenbank im Volume db_data gespeichert.

Beispiel 2: Verwendung von Volumes für Konfigurationsdateien

Erstellen eines Volumes zum Speichern von Konfigurationsdateien und Mounten in einen Container.

Volume erstellen:

Terminal

docker volume create config_data

Kopieren von Konfigurationsdateien ins Volume:

Terminal

docker run --rm -v config_data:/app busybox sh -c "echo 'Konfigurationsdaten' > /app/config.txt"

Starten eines Containers mit einem Volume für Konfigurationsdateien:

Terminal

docker run -d --name my_app -v config_data:/app/config nginx

In diesem Beispiel werden die Konfigurationsdateien im Volume config_data gespeichert, das ins Verzeichnis /app/config des Containers gemountet wird.

Beispiel 3: Container-Logs

Erstellen eines Volumes zum Speichern der Logs des Containers und Mounten in den Container.

Volume erstellen:

Terminal

docker volume create logs_data

Starten eines Containers mit einem gemounteten Volume für Logs:

Terminal

docker run -d --name my_app -v logs_data:/var/log/nginx nginx

In diesem Beispiel werden die Logs von Nginx im Volume logs_data gespeichert.

3.5 Überprüfung des Inhalts von Volumes

Du kannst den Inhalt eines Volumes überprüfen, indem du ihn in einen temporären Container einhängst.

Beispiel

Start eines temporären Containers mit gemountetem Volume:

Terminal

docker run --rm -v my_volume:/app busybox ls /app

Dieses Beispiel zeigt den Inhalt des Volumes my_volume.

Löschen von Volumes

Löschen eines Volumes, das nicht mehr verwendet wird.

Beispiel

Löschen eines Volumes:

Terminal

docker volume rm my_volume

Wenn das Volume von einem Container verwendet wird, gibt Docker einen Fehler aus. Stelle sicher, dass Container, die das Volume benutzen, gestoppt und gelöscht sind.

Kommentare
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION