CodeGym /Kurse /Docker SELF /Verwendung von Bindings

Verwendung von Bindings

Docker SELF
Level 19 , Lektion 4
Verfügbar

5.1 Idee von gebundenen Verzeichnissen (bind mounts)

Das Mounten von Host-Verzeichnissen in Container mittels gebundener Verzeichnisse (bind mounts) ist eine leistungsstarke Funktion von Docker, die es Containern ermöglicht, direkt auf Dateien und Verzeichnisse zuzugreifen, die sich auf dem Host-System befinden. Das ist besonders praktisch für Entwicklung, Tests und Konfiguration, wenn lokale Dateien genutzt werden müssen, ohne sie in den Container zu kopieren. In dieser Vorlesung schauen wir uns an, wie man gebundene Verzeichnisse verwendet, bringen Beispiele und Best Practices.

Gebundene Verzeichnisse erlauben es, spezifische Verzeichnisse oder Dateien vom Host-System in Container zu mounten. Das unterscheidet sich von Volumes, die von Docker verwaltet werden und in einem speziellen Verzeichnis gespeichert sind.

Vorteile der Verwendung von gebundenen Verzeichnissen

  1. Direkter Zugriff auf Host-Dateien: Container können Dateien auf dem Host direkt nutzen und ändern.
  2. Bequeme Entwicklung: Entwickler können Dateien auf dem Host ändern und diese Änderungen in den Containern in Echtzeit sehen.
  3. Flexibilität: Jedes beliebige Verzeichnis auf dem Host kann in einen Container gemountet werden.

Befehl für das Mounten von gebundenen Verzeichnissen

Gebundene Verzeichnisse werden mit den Parametern -v oder --mount beim Starten eines Containers gemountet.

5.2 Beispiele für die Verwendung von Parameter -v

1. Mounten eines Host-Verzeichnisses in einen Container

Ein einfaches Beispiel für das Mounten eines Host-Verzeichnisses in einen Container:

Terminal

docker run -d --name my_container -v /path/on/host:/path/in/container nginx

In diesem Beispiel wird das Verzeichnis /path/on/host auf dem Host in das Verzeichnis /path/in/container innerhalb des Nginx-Containers gemountet.

2. Mounten einer Host-Datei in einen Container

Du kannst auch einzelne Dateien mounten:

Terminal

docker run -d --name my_container -v /path/on/host/config.conf:/etc/nginx/nginx.conf nginx

In diesem Beispiel wird die Konfigurationsdatei config.conf auf dem Host als Konfigurationsdatei nginx.conf innerhalb des Containers gemountet.

5.3 Beispiele für die Verwendung des Parameters --mount

Der Parameter --mount bietet eine detailliertere Methode zum Mounten von gebundenen Verzeichnissen mit der Möglichkeit, verschiedene Parameter anzugeben.

1. Mounten eines Verzeichnisses mit --mount

Terminal

docker run -d --name my_container --mount type=bind,source=/path/on/host,target=/path/in/container nginx

Dieses Beispiel ist identisch mit dem vorherigen Beispiel mit -v, verwendet jedoch eine detailliertere Syntax.

2. Mounten im Read-Only-Modus

Terminal

docker run -d --name my_container --mount 
type=bind,source=/path/on/host,target=/path/in/container,readonly nginx

In diesem Beispiel wird das Verzeichnis im Nur-Lese-Modus gemountet, was das Ändern von Dateien im Container verhindert.

5.4 Praktische Beispiele

Um eine Webanwendung zu entwickeln, kannst du ein Verzeichnis mit dem Quellcode vom Host in den Container mounten.

Erstellen eines Verzeichnisses mit dem Quellcode auf dem Host:

Terminal

mkdir -p ~/my_web_app
echo "Hallo, Welt!" > ~/my_web_app/index.html

Container mit Mounting eines Verzeichnisses starten:

Terminal

docker run -d --name web_dev -v ~/my_web_app:/usr/share/nginx/html nginx

Nun werden alle Änderungen im Verzeichnis ~/my_web_app auf dem Host sofort im Container sichtbar sein.

Beispiel 2: Verwendung von Konfigurationsdateien

Du kannst Konfigurationsdateien aus einem Host-Verzeichnis in den Container mounten.

Erstellen einer Konfigurationsdatei auf dem Host:

Terminal

echo "user www-data;" > ~/nginx.conf

echo "worker_processes auto;" >> ~/nginx.conf

Container mit Mounting der Konfigurationsdatei starten:

Terminal

docker run -d --name nginx_custom -v ~/nginx.conf:/etc/nginx/nginx.conf nginx

In diesem Beispiel wird die Nginx-Konfigurationsdatei vom Host innerhalb des Containers verwendet.

5.5 Prüfung von gemounteten Verzeichnissen und Dateien

Du kannst den Inhalt von gemounteten Verzeichnissen und Dateien überprüfen, indem du den Befehl docker exec verwendest, um Befehle innerhalb des Containers auszuführen.

Beispiel

Überprüfung des Verzeichnisinhalts:

Terminal

docker exec -it my_container ls /path/in/container

Überprüfung des Datei-Inhalts:

Terminal

docker exec -it my_container cat /path/in/container/config.conf

Entfernen von gebundenen Verzeichnissen

Gebundene Verzeichnisse werden nicht direkt von Docker verwaltet, daher erfolgt deren Entfernung auf der Ebene des Host-Dateisystems.

Beispiel

Entfernung eines gebundenen Verzeichnisses auf dem Host:

Terminal

rm -r /path/on/host
1
Опрос
Datenverwaltung in Docker,  19 уровень,  4 лекция
недоступен
Datenverwaltung in Docker
Datenverwaltung in Docker
Kommentare
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION