Docker Aufgabensammlung
Aufgabensammlung – Docker Container Grundlagen
Kapitel 1 – Installation Docker Desktop auf Windows
Besuchen Sie die Website Docker Desktop.
- Klicken Sie auf „Download for Windows“.
- Führen Sie die „Docker Desktop Installer.exe“ aus und folgen Sie der Installationsanleitung.
- Nach der Installation müssen Sie den Rechner neustarten.
Um die erfolgreiche Installation zu verifizieren, öffnen Sie die PowerShell als Administrator und führen Sie den Befehl „docker“ aus. (Nun sollten einige Befehlsoptionen gelistet werden).
- Führen Sie den Befehl „docker version“ aus. Was sehen Sie?
Kapitel 2 – Ausführen des ersten „Hello World“ Containers
- Öffnen Sie die PowerShell als Administrator.
- Führen Sie den Befehl „docker run hello-world“ aus.
Was geschieht hier?
Docker sucht nun lokal nach dem Image „hello-world“, aber kann dieses nicht finden. Im nächsten Schritt wird versucht, das Image vom Docker-Hub zu downloaden und anschließend auszuführen. Der Container sollte nun eine Hello-Meldung ausgeben und mitteilen, dass Ihre Installation vollständig ist.
- Führen Sie den Befehl „docker image ls“ aus. Was können Sie sehen? (Nähere Erklärung vom Dozent)
Wenn Sie mehr über die einzelnen Befehle wissen möchten, führen Sie folgenden Befehl aus: „docker help OPTION“ (z. B. „docker help run“).
Kapitel 3 – Das Docker Hub
- Besuchen Sie die Website Docker Hub.
- Suchen Sie nach dem Image „hello-world“.
- Wählen Sie das erste Ergebnis der Suche aus und schauen Sie sich den Eintrag an.
Zusatz: Die Suche ist auch über die PowerShell möglich. Versuchen Sie den Befehl „docker search hello-world“.
Kapitel 3.1 – Das Docker Hub – Arbeiten mit Image Versionen
- Besuchen Sie die Website Docker Hub.
- Suchen Sie nach dem Image „Ubuntu“ und wählen das erste Ergebnis.
- Öffnen Sie die Registerkarte „Tags“ (Erläuterung der Tags gibt der Dozent).
Laden Sie per PowerShell das Image „ubuntu:xenial“ herunter. Nutzen Sie dafür die Option „pull“.
- Starten Sie einen Container mit dem heruntergeladenen Image: „docker run -t -d --name ubuntu-xenial ubuntu:xenial“.
- Benutzen Sie den Befehl „docker ps“ und danach „docker container ls“. Welche Informationen können Sie hier entnehmen?
Um nun die erstellte Linux-Umgebung des Containers zu nutzen, führen Sie den Befehl „docker exec -it ubuntu-xenial /bin/bash“ aus.
Sie befinden sich nun in einer Bash-Shell des Ubuntu-Systems. Überprüfen Sie dies mit dem Befehl „cat /etc/issue“. Probieren Sie einige Linux-Befehle aus.
- Um die Ubuntu-Shell zu verlassen, tippen Sie „exit“.
Kapitel 3.2 – Das Docker Hub – Transferaufgabe
- Starten Sie einen Container für ein Linux mit der Version „Bullseye“.
- Geben Sie dem Container einen eigenen Namen und führen Sie den Befehl „cat /etc/issue“ aus.
- Rufen Sie Ihren Dozenten, sobald Sie fertig sind. Viel Erfolg 😊.
Kapitel 4 – Ein Image selbst bauen
Ziel: Ein eigenes „Hello-World“-Image auf Basis eines vorhandenen Ubuntu-Images erstellen.
- Erstellen Sie einen Ordner (dieser stellt den Build-Context dar).
- Erstellen Sie eine Datei „hello.sh“ mit folgendem Inhalt (verwenden Sie Notepad++):
#!/bin/bash
echo Hallo *Ihr Name*
- Erstellen Sie eine Datei „Dockerfile“ (ohne Dateiendung) mit folgendem Inhalt:
FROM ubuntu:latest
COPY hello.sh .
RUN chmod +x ./hello.sh
CMD ["/hello.sh"]
- Bauen Sie das Image: „docker build -t <Ihre Docker_ID>/<Image Name>“.
- Testen Sie das Image: „docker run -i -t <Docker_ID>/<Image Name>“.
Kapitel 4.1 – Ein Image selbst bauen – Transferaufgabe
Aufgabe 1: Passen Sie „hello.sh“ an, sodass das Skript nach dem Namen fragt und eine persönliche Begrüßung ausgibt.
Aufgabe 2: Erweitern Sie das Skript so, dass es immer wieder nach Ihrem Namen fragt und begrüßt, bis „quit“ eingegeben wird. Viel Erfolg 😊.
Kapitel 4.2 – Docker Image Management im Docker Hub
- Melden Sie sich mit „docker login“ beim Docker Hub an.
- Hochladen des Images: „docker push <Docker_ID>/<Image Name>“.
- Besuchen Sie Docker Hub und überprüfen Sie Ihre Repositories.
Kapitel 4.3 – Docker Container Management – Starten und Beenden
- Starten Sie den Container im „detached“-Modus.
Beenden Sie den Container mit „docker stop <Container Name>“. Starten Sie ihn erneut – was fällt Ihnen auf?
- Erklärung: Wenn ein Container mit einem bestimmten Namen existiert, muss er zuerst entfernt werden („docker rm <Container Name>“), um ihn erneut unter demselben Namen zu starten.
- Nutzen Sie beim Start die Option „–rm“, damit der Container nach Beendigung automatisch entfernt wird.
- Setzen Sie „docker container ls“ mit der Option „-a“ ein. Was stellen Sie fest?
- Beenden Sie den Container mit „docker kill <Container Name>“.
Kapitel 4.4 – Docker Container Management – Container Prozesse
- Testen Sie den Befehl „docker top <Container Name>“. Was können Sie hier erkennen?
Kapitel 5 – Eine Webseite mit NGINX erstellen
- Erstellen Sie einen Ordner mit einem Unterordner „html“.
- Fügen Sie in „html“ die bereitgestellte „index.html“ ein.
- Nutzen Sie das Image „nginx“ und bauen Sie ein eigenes Image.
- Starten Sie den Container im detached Modus und geben Sie die Option „-p 8080:80“ an.
- Öffnen Sie http://localhost:8080 in Ihrem Browser und prüfen Sie den Webserver.
- Laden Sie das Image in Ihrem Docker Hub Account hoch.
Kapitel 6 – Docker Volumes erstellen und einbinden
- Erstellen Sie ein Docker Volume: „docker volume create test-volume“.
- Anzeigen des Volumes: „docker volume ls“.
- Details zum Volume anzeigen: „docker volume inspect test-volume“.
- Starten Sie einen Container mit: „docker run -i -t --name=vol-test --mount source=test-vol,destination=/test_data ubuntu /bin/bash“.
- Erstellen Sie im Verzeichnis „/test_data“ die Datei „hello.txt“ mit Inhalt „Hello World“.
- Überprüfen Sie den Inhalt mit „cat hello.txt“ und verlassen Sie den Container.
- Erstellen Sie einen neuen Container mit der „-v“-Option, um das Volume erneut einzubinden: „docker run -i -t --name=vol-test2 -v test-volume:/test_data ubuntu /bin/bash“.
- Überprüfen Sie den Ordner „/test_data“.
Kapitel 6.1 – Docker Volumes entfernen
- Löschen Sie das Volume: „docker volume rm test-volume“ (alle Container, die das Volume nutzen, müssen zuerst entfernt werden).
Kapitel 6.2 – Docker Bind Mounts
- Starten Sie einen Container mit Ihrem erstellten NGINX-Image und binden Sie das „html“-Verzeichnis ein:
docker run --name nginx2 -d -p 8080:80 --mount type=bind,source=<Pfad zu Ihrem html Ordner>,destination=/usr/share/nginx/html <Docker_ID>/<Image_Name>
- Rufen Sie http://localhost:8080 auf.
- Ändern Sie den Inhalt der „index.html“ im „html“-Ordner und aktualisieren Sie das Browser-Fenster.