Container Praxiseinstieg: Docker unter (X)Ubuntu Linux installieren (Text + Video)

Als Video ansehen
Bereitgestellt über YouTube

Container Praxiseinstieg: Docker unter (X)Ubuntu Linux installieren (Text + Video)

Dieser Artikel zeigt, wie ihr schnell und einfach in Linux-Container mit Docker einsteigen könnt. Ich empfehle die Nutzung einer LTS-Version von Ubuntu oder dessen Derivaten wie z.B. Xubuntu, im besten Falle die aktuelle. Derzeit ist das Version 20, die im Folgenden verwendet wird. Alternativ funktionieren auch unterstützte nicht LTS Versionen, eine Liste findet ihr am Anfang der Doku. Sie ist auf Englisch und ein guter Einstieg zur Installation, auch für andere Distributionen wie z.B. CentOS oder Fedora. Um Docker zu installieren, öffnet das Terminal oder schaltet euch per SSH auf das System.

Wie bei jeder Paketinstallation sollten wir zunächst die Paketlisten aktualisieren:

sudo apt-get update

Nun stellen wir sicher, dass benötigte Abhängigkeiten installiert sind:

sudo apt-get install -y apt-transport-https ca-certificates curl gnupg lsb-release

Der Schalter -y erspart uns hierbei das händische Bestätigen. Da die Installation über Dockers eigenes Repository erfolgt, fügen wir dessen PGP-Schlüssel zu unserem Schlüsselring hinzu:

curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg

Unser System vertraut dadurch Dockers Repository, in dem alle notwendigen Pakete enthalten sind. Dieses Repository können wir nun hinzufügen:

echo \
  "deb [arch=amd64 signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/ubuntu \
  $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null

Vor der Installation ist es notwendig die Paketliste zu aktualisieren:

sudo apt-get update

Dies lädt eine Auflistung aller Pakete, die im soeben hinzugefügten Docker-Repository enthalten sind. Schlussendlich können wir Docker installieren, hierzu sind drei Pakete notwendig:

sudo apt-get install docker-ce docker-ce-cli containerd.io

Docker (hier als Community-Edition) ist aufgeteilt in einen Daemon und eine CLI. Wenn wir Docker-Befehle ausführen, leitet die CLI diese an den Daemon weiter und empfängt die Antwort. Containerd ist eine Abstraktionsschicht von Kernelfunktionen, die für Container genutzt werden. Eine Vertiefung würde an dieser Stelle zu weit führen. Stellen wir es uns für den Anfang als Client-Server Architektur vor, die in diesem Falle komplett lokal läuft.

Unser erster „Hello World“ Container

Starten wir nun unseren ersten Container: Standardmäßig müssen wir alle Docker-Befehle als root ausführen, außerhalb einer root-Shell also mit sudo. „Docker“ ist der Befehl für den CLI-Client, den wir mit „run“ dazu anweisen, einen neuen Container zu starten. Schlussendlich folgt der Name des Images, wovon wir einen Container starten können. In der Docker-Registry gibt es hierzu ein Image namens „hello world“. Wie der Name schon sagt, startet es einen Container, der uns eine kleine Demonstrationsausgabe liefert:

sudo docker run hello-world

Praxistauglicheres Beispiel: Ein Webserver

Da uns ein Hello World Container wenig nützt, starten wir einen zweiten Container. Diesmal nutzen wir das Nginx Image. Nginx ist ein effizienter, leichtgewichtiger Webserver. Das Syntax ist identisch wie oben, allerdings mit zwei Unterschieden: „hello world“ ersetzen wir durch „nginx“, da wir ja nicht das Hello World Image erhalten wollen. Da ein Webserver auf Port 80 lauscht, benötigen wir eine Portweiterleitung: Mit -p 80:80 geben wir an, dass Port 80 des Containers auf Port 80 des Hosts weitergeleitet werden soll.

sudo docker run -p 80:80 nginx

Beim ersten Start lädt Docker auch hier zunächst das Image aus dem Docker-Hub herunter und startete anschließend den Container. Durch die Portweiterleitung können wir den Webserver auf localhost erreichen. Auf der Konsole sehen wir das Zugriffslog mit unserer soeben durchgeführten Testanfrage.

Ging schnell, oder? Eben so einfach können wir den Container wieder stoppen oder zerstören – und das, ohne Reste oder gar Konflikte auf unserem System zu hinterlassen.

Weiterführende Informationen/Quellen

https://docs.docker.com/engine/install/ubuntu/
Bildquellen: Docker, Ubuntu, www.flaticons.com (Vectors Market)

Leave a Reply