Photo by Rubaitul Azad / Unsplash

Docker - Installation auf Server

docker 9. Nov. 2022

Docker bietet eine einfache Möglichkeit, schnell Dienste isoliert in einem Container auf seinem Server auszuführen. Nach der Docker-Philosophie enthält dabei jeder Container genau einen Dienst inklusive aller Abhängigkeiten, die er für den Betrieb benötigt. In diesem Beitrag geht es um die initiale Installation auf einem Debian-basierten Server. Da Raspberry Pi OS auf Debian basiert, gilt sie auch dort.

Die offizielle Docker Dokumentation hat bereits eine sehr gute Installationsanleitung, die genau so genutzt werden kann. Dennoch werde ich hier die einzelnen Schritte nochmal beschreiben, da die offizielle Dokumentation nur auf englisch verfügbar ist.

Paketquellen hinzufügen

Unser Paketmanager apt greift standardmäßig nur auf Software zurück, die offiziell von Debian zur Verfügung gestellt werden. Damit jetzt auch die offiziellen Pakete von Docker geladen werden können, müssen wir diese in apt hinzufügen. Im Endeffekt werden zusätzliche URLs hinterlegt, bei denen apt nach Software suchen kann.

Um die neuen Quellen hinzuzufügen, benötigen wir ein paar Zusatztools. Diese installieren wir mit:

sudo apt update
sudo apt install ca-certificates curl

Falls du den Beitrag Nützliche Tools auf dem Server bereits gelesen und alle dort aufgeführten Tools installiert hast, ist bereits alles installiert.

Anschließend laden wir den GPG-Schlüssel von Docker. Dieser wird benötigt, damit der verschlüsselte Zugriff auf die Docker Quellen möglich ist und damit auch die Echtheit bestätigt werden kann.

sudo install -m 0755 -d /etc/apt/keyrings
sudo curl -fsSL https://download.docker.com/linux/debian/gpg -o /etc/apt/keyrings/docker.asc
sudo chmod a+r /etc/apt/keyrings/docker.asc

Danach können die Docker Repositories in apt eingetragen werden.

echo \
  "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.asc] https://download.docker.com/linux/debian \
  $(. /etc/os-release && echo "$VERSION_CODENAME") stable" | \
  sudo tee /etc/apt/sources.list.d/docker.list > /dev/null

Installation von Docker

Um die Informationen aus dem neu eingetragenen Repository abzurufen, führen wir ein Update der Paketquellen aus:

sudo apt update

Hier können wir bereits sehen, dass nun auch Informationen von den neu eingetragenen Docker Repositories geladen werden:

Docker URLs bei apt update

Jetzt können wir Docker installieren:

sudo apt install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin

Installation prüfen

Um zu prüfen, ob Docker ordnungsgemäß funktioniert, laden wir das "hello-world" Image von Docker Hub, erstellen daraus einen Container und führen diesen aus. Dies geht einfach mit dem Befehl:

sudo docker run hello-world

In der Ausgabe sehen wir, dass das Image aus dem Internet geladen wird, der Container startet und eine "Hello World" Nachricht ausgegeben wird.

Ausgabe des hello-world Containers von Docker

Damit ist bestätigt, dass Docker funktioniert.

Benutzerberechtigungen

Der Befehl docker kann nur von root ausgeführt werden, deswegen muss jedes Mal ein sudo vorangestellt werden. Es gibt zwei Methoden, dies zu vermeiden.

Methode 1: Gruppe "docker"

Wenn man einem Benutzer zusätzlich die Gruppe "docker" zuweist, ist er zur vollumfänglichen Nutzung berechtigt. Dies geht mit folgendem Befehl:

sudo usermod -aG docker viertelwissen

Methode 2: Alias

Möchte man die sudo-Hürde behalten, aber nicht jedes Mal sudo eingeben müssen, kann man einen Alias anlegen. Dazu öffnet man die Datei .bashrc im Verzeichnis seines Benutzers

nano $HOME/.bashrc

und ergänzt diese am Ende mit folgender Zeile:

alias docker='sudo docker'

Speichern und schließen mit
Win: STRG+O, ENTER, STRG+X
Mac: CONTROL+O, ENTER, CONTROL+X

Die Datei .bashrc wird immer ausgeführt, wenn man sich einloggt. Damit die Änderungen also übernommen werden, schließen wir die Verbindung mit exit und verbinden uns einmal neu mit dem Server.

Ab sofort müssen wir nur noch den Befehl docker eintippen, ausgeführt wird aber sudo docker.

ctop - Optional, aber hilfreich

Wer top, htop oder iftop schon kennt wird sich denken können, worum es bei ctop geht. Es ist eine übersichtliche Anzeige von laufenden Containern und deren genutzten Ressourcen auf der Kommandozeile. Ich installiere das gerne auf meinen Servern, da man schnell einen Überblick bekommt und darüber auch in die Logs der einzelnen Container schauen kann.

Zur Installation müssen wir wieder Paketquellen hinzufügen und nach einem Update die Installation starten:

curl -fsSL https://azlux.fr/repo.gpg.key | sudo gpg --dearmor -o /usr/share/keyrings/azlux-archive-keyring.gpg
echo \
  "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/azlux-archive-keyring.gpg] http://packages.azlux.fr/debian \
  $(lsb_release -cs) main" | sudo tee /etc/apt/sources.list.d/azlux.list >/dev/null
sudo apt update && sudo apt install docker-ctop

Anschließend kann das Tool mit ctop aufgerufen werden, wenn der Benutzer Mitglied der Gruppe "docker" ist, ansonsten muss sudo ctop genutzt werden.

Aktuell sehen wir dort nur den gestoppten "Hello world" Container mit einem zufälligen Namen:

ctop Übersicht - Gestoppter Hello World Container

Mit den Pfeiltasten kann man den gewünschten Container auswählen. Mit der Pfeiltaste nach links kommt man zum Log des Containers, mit der Pfeiltaste nach rechts zu einer Detailansicht der genutzten Ressourcen des Containers.

Abschluss

Docker ist damit fertig installiert und einsatzbereit. Ihr könnt jetzt Container erstellen, starten, stoppen, löschen und seid damit bereit, Docker-basierte Beiträge auszuprobieren.

Bei Anmerkungen oder Fragen kommt gerne auf unseren Discord.

Join the IceFlom & maarsellow & Viertelwissen Discord Server!
Gemeinschaftsdiscord von IceFlom, Maarsellow und Viertelwissen

Tags