Docker Aufgabensammlung - linux: Unterschied zwischen den Versionen
Zur Navigation springen
Zur Suche springen
| Zeile 159: | Zeile 159: | ||
docker kill <Container Name> | docker kill <Container Name> | ||
</syntaxhighlight> | </syntaxhighlight> | ||
| + | # Verwenden Sie "docker top <Container Name> um sich die laufenden Prozesse eines Containers anzeigen zu lassen | ||
== Kapitel 5 – Eine Webseite mit NGINX erstellen == | == Kapitel 5 – Eine Webseite mit NGINX erstellen == | ||
Version vom 4. November 2024, 09:07 Uhr
Aufgabensammlung – Docker Container Grundlagen (Linux)
Kapitel 0 - Vorbereitung im Docker.hub
- Besuchen Sie die Webseite https://hub.docker.com
- Klicken Sie oben rechts im Eck auf Sign up und erstellen Sie sich ein Konto im Docker Hub
- Der Username wird später als ihre Docker-ID dienen
Kapitel 1 – Installation von Docker auf Linux
- Öffnen Sie ein Terminal.
- Aktualisieren Sie Ihre Paketquellen:
sudo apt update
sudo apt upgrade
- Installieren Sie Docker:
sudo apt install docker.io
- Starten Sie den Docker-Dienst:
sudo systemctl start docker
sudo systemctl enable docker
- Prüfen Sie die Docker-Installation, indem Sie den Befehl „docker“ ausführen. Es sollten verschiedene Docker-Befehle angezeigt werden.
- Überprüfen Sie die Docker-Version:
docker version
Frage: Was sehen Sie als Ausgabe?
Kapitel 2 – Ausführen des ersten „Hello World“ Containers
- Führen Sie im Terminal den folgenden Befehl aus:
sudo docker run hello-world
Erklärung: Docker sucht lokal nach dem „hello-world“ Image. Da es nicht vorhanden ist, lädt Docker es vom Docker-Hub herunter und führt es aus. Es sollte eine Nachricht erscheinen, die bestätigt, dass Docker korrekt installiert ist.
- Listen Sie die vorhandenen Images auf:
docker image ls
Frage: Was können Sie sehen?
- Verwenden Sie „docker help <OPTION>“ für weitere Informationen, z.B. „docker help run“.
Kapitel 3 – Das Docker Hub
- Besuchen Sie Docker Hub.
- Suchen Sie nach dem Image „hello-world“ und sehen Sie sich die Details an.
Tipp: Sie können die Suche auch im Terminal durchführen:
docker search hello-world
Kapitel 3.1 – Arbeiten mit Image-Versionen
- Suchen Sie auf Docker Hub nach dem „Ubuntu“-Image und wechseln Sie auf die Registerkarte „Tags“ (zeigt die verfügbaren Versionen).
- Laden Sie die Version „ubuntu:xenial“ herunter:
sudo docker pull ubuntu:xenial
- Starten Sie einen Container:
sudo docker run -t -d --name ubuntu-xenial ubuntu:xenial
- Erklärung:
- sudo -> Zum ausführen als root
- docker run -> Startet einen neuen Container
- -t -> Erstellt ein Pseudo-TTY für Standardausgabe und -eingabe
- -d -> Startet den Container im Hintergrund
- --name ubuntu-xenial Verleiht dem Container einen Namen. (Einfache für die Handhabung)
- ubuntu:xenial -> Gibt an welches Image und welcher Tag der Container verwenden soll
- Listen Sie die laufenden Container auf:
docker ps
docker container ls
- Greifen Sie mit einer Bash-Shell auf den Container zu:
sudo docker exec -it ubuntu-xenial /bin/bash
- Erklärung:
- sudo -> Zum ausführen des Befehls als root
- docker exec -> Führt einen Befehl in einem Container aus
- -i -> (interactive) Ermöglicht die Interaktion mit der Standardeingabe (STDIN) des Containers
- -t -> Erstellt ein Pseudo-TTY für Standardausgabe und -eingabe
- ubuntu-xenial -> Der Name des Containers in dem der Befehl ausgeführt werden soll
- /bin/bash -> Der Befehl der ausgeführt wird. In diesem Fall wird eine Bash-Shell geöffnet
Prüfen Sie die Umgebung: Geben Sie den Befehl „cat /etc/issue“ ein.
- Verlassen Sie die Bash-Shell des Containers mit „exit“.
Kapitel 3.2 – Transferaufgabe
- Starten Sie einen Container mit „Debian Bullseye“, benennen Sie ihn und führen Sie „cat /etc/issue“ aus.
- Informieren Sie Ihren Dozenten bei erfolgreicher Ausführung.
Kapitel 4 – Ein Image selbst bauen
Erstellen Sie einen Ordner für den Build-Kontext:
mkdir -p /mnt/mein-image
cd /mnt/mein-image
Erstellen Sie eine „hello.sh“-Datei:
nano hello.sh
Inhalt:
#!/bin/bash
echo Hallo *Ihr Name*
Erstellen Sie eine „Dockerfile“-Datei:
nano Dockerfile
Inhalt:
FROM ubuntu:latest
COPY hello.sh .
RUN chmod +x ./hello.sh
CMD ["/hello.sh"]
Bauen Sie das Image:
sudo docker build -t <Ihr Docker_ID>/<Image Name>:v1.0 .
Testen Sie das Image:
sudo docker run -i -t <Ihr Docker_ID>/<Image Name>:v1.0
Kapitel 4.1 – Transferaufgabe
- Aufgabe 1: Passen Sie „hello.sh“ so an, dass das Skript nach einem Namen fragt und eine persönliche Begrüßung ausgibt. Nennen Sie das Image <Ihr Docker_ID>/<Image Name>:v2.0
- Aufgabe 2: Erweitern Sie das Skript so, dass es wiederholt nach einem Namen fragt, bis „quit“ eingegeben wird. Nennen Sie das Image <Ihr Docker_ID>/<Image Name>:v3.0 und anschließend nochmal mit dem Namen <Ihr Docker_ID>/<Image Name>
Kapitel 4.2 – Docker Image Management im Docker Hub
- Melden Sie sich beim Docker Hub an:
docker login
- Laden Sie Ihr Images hoch:
docker push <Ihr Docker_ID>/<Image Name>:v1.0
docker push <Ihr Docker_ID>/<Image Name>:v2.0
docker push <Ihr Docker_ID>/<Image Name>:v3.0
docker push <Ihr Docker_ID>/<Image Name>
- Überprüfen Sie Ihr Repository auf Docker Hub.
Kapitel 4.3 – Docker Container Management – Starten und Beenden
- Starten Sie einen Container im „detached“-Modus.
- Beenden Sie den Container:
docker stop <Container Name>
- Nutzen Sie „docker container ls -a“, um alle Container zu sehen.
- Anschließend nutzen Sie "docker ps"
- Beenden Sie den Container mit:
docker kill <Container Name>
- Verwenden Sie "docker top <Container Name> um sich die laufenden Prozesse eines Containers anzeigen zu lassen
Kapitel 5 – Eine Webseite mit NGINX erstellen
- Erstellen Sie einen Ordner mit einem Unterordner „html“:
mkdir -p mein-nginx/html
- Legen Sie eine „index.html“ in den „html“-Ordner.
- Erstellen und starten Sie das NGINX-Image:
docker run --name nginx-container -d -p 8080:80 -v $(pwd)/mein-nginx/html:/usr/share/nginx/html nginx
- Öffnen Sie http://localhost:8080 in Ihrem Browser.
Kapitel 6 – Docker Volumes erstellen und einbinden
- Erstellen Sie ein Volume:
docker volume create test-volume
- Starten Sie einen Container und binden Sie das Volume ein:
docker run -i -t --name=vol-test --mount source=test-volume,destination=/test_data ubuntu /bin/bash
- Erstellen Sie die Datei „hello.txt“ im „/test_data“ Verzeichnis und überprüfen Sie den Inhalt:
echo "Hello World" > /test_data/hello.txt
cat /test_data/hello.txt
- Starten Sie einen weiteren Container und binden Sie das Volume erneut ein:
docker run -i -t --name=vol-test2 -v test-volume:/test_data ubuntu /bin/bash
Kapitel 6.1 – Docker Volumes entfernen
- Entfernen Sie das Volume:
docker volume rm test-volume