Docker Aufgabensammlung - linux: Unterschied zwischen den Versionen

Aus Xinux Wiki
Zur Navigation springen Zur Suche springen
Zeile 154: Zeile 154:
 
</syntaxhighlight>
 
</syntaxhighlight>
 
# Nutzen Sie „docker container ls -a“, um alle Container zu sehen.
 
# Nutzen Sie „docker container ls -a“, um alle Container zu sehen.
 +
# Anschließend nutzen Sie "docker ps"
 
# Beenden Sie den Container mit:
 
# Beenden Sie den Container mit:
 
  <syntaxhighlight lang="bash">
 
  <syntaxhighlight lang="bash">

Version vom 4. November 2024, 09:06 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

  1. Öffnen Sie ein Terminal.
  2. Aktualisieren Sie Ihre Paketquellen:
sudo apt update
sudo apt upgrade
  1. Installieren Sie Docker:
sudo apt install docker.io
  1. Starten Sie den Docker-Dienst:
sudo systemctl start docker
sudo systemctl enable docker
  1. Prüfen Sie die Docker-Installation, indem Sie den Befehl „docker“ ausführen. Es sollten verschiedene Docker-Befehle angezeigt werden.
  2. Überprüfen Sie die Docker-Version:
docker version

Frage: Was sehen Sie als Ausgabe?

Kapitel 2 – Ausführen des ersten „Hello World“ Containers

  1. 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.

  1. Listen Sie die vorhandenen Images auf:
docker image ls

Frage: Was können Sie sehen?

  1. Verwenden Sie „docker help <OPTION>“ für weitere Informationen, z.B. „docker help run“.

Kapitel 3 – Das Docker Hub

  1. Besuchen Sie Docker Hub.
  2. 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

  1. Suchen Sie auf Docker Hub nach dem „Ubuntu“-Image und wechseln Sie auf die Registerkarte „Tags“ (zeigt die verfügbaren Versionen).
  2. Laden Sie die Version „ubuntu:xenial“ herunter:
sudo docker pull ubuntu:xenial
  1. 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
  1. Listen Sie die laufenden Container auf:
docker ps
docker container ls
  1. 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.

  1. 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

  1. Melden Sie sich beim Docker Hub an:
docker login
  1. 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>
  1. Überprüfen Sie Ihr Repository auf Docker Hub.

Kapitel 4.3 – Docker Container Management – Starten und Beenden

  1. Starten Sie einen Container im „detached“-Modus.
  2. Beenden Sie den Container:
docker stop <Container Name>
  1. Nutzen Sie „docker container ls -a“, um alle Container zu sehen.
  2. Anschließend nutzen Sie "docker ps"
  3. Beenden Sie den Container mit:
docker kill <Container Name>

Kapitel 5 – Eine Webseite mit NGINX erstellen

  1. Erstellen Sie einen Ordner mit einem Unterordner „html“:
mkdir -p mein-nginx/html
  1. Legen Sie eine „index.html“ in den „html“-Ordner.
  2. 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
  1. Öffnen Sie http://localhost:8080 in Ihrem Browser.

Kapitel 6 – Docker Volumes erstellen und einbinden

  1. Erstellen Sie ein Volume:
docker volume create test-volume
  1. 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
  1. 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
  1. 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