Volumen
Docker Compose Volume
In dieser Aufgabe lernen wir wie in docker compose ein Volumen erstellt und in den Container "gemountet" werden kann. Dadurch können Dateien ein Löschen des Containers überlegen.
Die Docker Befehle ohne Compose lauten:
docker volume create ubuntu-volume
docker run --name compose-uebung02 -v ubuntu-volume:/volume ubuntu
Auftrag
-
Erstellen Sie eine Datei
docker-compose.yml -
Erstellen Sie darin einen Service
ubuntumit dem offiziellen Docker Imageubuntuund demcontainer_name"compose-uebung02". -
Damit das Image nach dem Starten nicht direkt wieder gestoppt wird, müssen wir unter dem Service den Wert
tty: truesetzen. -
Erstellen Sie ein Volumen mit dem Namen
ubuntu-volume.- Achtung, nicht unter
services, sondern auf toplevel!
- Achtung, nicht unter
-
Mounten Sie das Volumen im Service
ubtuntuauf dem Pfad/volume.- Hier nun unter
services.ubuntu.volumesund nicht im Toplevel.
- Hier nun unter
-
Starten Sie den Container mit dem Befehl
docker compose up -d -
Öffnen Sie eine bash im container mit dem Befehl:
docker exec -it compose-uebung02 /bin/bash -
Erstellen Sie eine neue Datei im gemounteten Volumen:
echo "hallo welt" > /volume/hallo-welt.txt -
Prüfen Sie, ob die Datei hier ist:
cat volume/hallo-welt.txt -
Gehen Sie aus dem Container mit
exit, oder öffnen Sie ein neues Terminalfenster. -
Stoppen und Löschen Sie den Container mit dem Befehl:
docker compose down --remove-orphans -
Starten Sie den Container erneut mit und schauen Sie, ob die Datei noch da ist und schliessen Sie das Terminal wieder.
docker compose up -d
docker exec -it compose-uebung02 /bin/bash
cat volume/hallo-welt.txt
exit -
Schauen Sie nun ob docker compose das Volumen erstellt hat mit dem Befehl:
docker volume ls -
Es sollte ein Volumen sichtbar sein das auf
_ubuntu-volumeendet. Der Prefix ist der Ordnername, indem sich dasdocker-compose.ymlbefindet. -
Löschen sie nun das Volumen mit dem Befehl:
docker volume rm <ordnername-unterschiedlich>_ubuntu-volume -
Es sollte der Error "...: volume is in use" erscheinen.
-
Stoppen Sie den Container mit dem Befehl:
docker compose down -
Löschen Sie jetzt das Volumen nochmals mit demselben Befehl. Diesmal sollte es gehen.
docker volume rm <ordnername-unterschiedlich>_ubuntu-volume -
Das Volumen sollte nun wieder weg sein.
docker volume ls -
Erstellen Sie ein Diagramm mit dem Befehl:
info- Bechten Sie, dass die docker-compose.yml Datei mit einer
version: "3"starten muss, damit die Visualisierung funktioniert.
docker run --rm -it --name dcv -v $(pwd):/input pmsipilot/docker-compose-viz render -m image docker-compose.yml - Bechten Sie, dass die docker-compose.yml Datei mit einer
-
Öffnen Sie die erstellte Datei
docker-compose.png