Die Seite wurde zuletzt überarbeitet am:

Docker und Portainer in wenigen Schritten unter Debian und Raspberry Pi installieren

Ich habe mich die vergangenen Tage mal an Docker herangewagt. Docker ist ein Werkzeug, mit dem man unter Linux Anwendungen in Container verpackt laufen lässt. Diese Container werden aus fertigen Images gestartet. 

Docker wird im Terminal genutzt, wem das zu kompliziert ist oder wer es übersichtlicher mag, kann zusätzlich Portainer installieren. Portainer ist eine grafische Benutzeroberfläche im Webbrowser, mit der man seine Docker-Container, Images und Einstellungen bequem per Mausklick verwalten kann.

Beides ist wirklich ruckzuck aufgesetzt und sofort einsatzbereit. Die Anleitung kann sowohl für den Raspberry Pi mit Raspberry Pi OS - in meinem Fall Raspberry Pi OS Lite (64-bit) - als auch für Debian-Systeme genutzt werden.

Diese Anleitung ist für den lokalen Einsatz im heimischen Netzwerk gedacht.

 

Zuerst das Terminal öffen und per SSH mit Usernamen (XXXXX)/Password einloggen:

ssh XXXXX@192.168.0.91

oder wie in meinem Fall:

ssh XXXXX@test.local

 

Das System auf dem neuesten Stand bringen:

sudo apt update
sudo apt upgrade

 

Dann das Docker-Installationsskript herunterladen:

curl -fsSL https://get.Docker.com -o get-Docker.sh

Wenn an dieser Stelle die Meldung erscheint, das curl nicht vorhanden ist, curl installieren:

sudo apt install curl

und dann erneut ausführen:

curl -fsSL https://get.Docker.com -o get-Docker.sh

 

Nun das heruntergeladene Script get-docker.sh ausführen (die Installation dauert einen Moment, auf meinem Raspi 4B mit 4GB RAM ca. 70 Sekunden):

sudo sh get-Docker.sh

 

Den aktuellen Benutzer zur Gruppe docker hinzufügen und sofort wirksam machen:

sudo usermod -aG docker $USER
newgrp docker

 

Mit einem minimalem Test-Container prüfen, ob die Docker-Installation funktioniert:

docker run hello-world

Die Meldung "Unable to find image 'hello-world:latest' locally" ist keine Fehlermeldung, da dass Image erst noch heruntergeladen werden muss. Wenn u.a. die Meldung "Hello from Docker!" erscheint, war die Installation erfolgreich.

 

Screenshot einer Kommandozeilenausgabe, die den Befehl docker run hello-world und die Erfolgsmeldung "Hello from Docker!" zeigt.

 

Die Docker-Installation ist hiermit abgeschlossen.

 

 

Optional kann nun noch Portainer installiert werden:

docker volume create portainer_data
docker run -d -p 8000:8000 -p 9443:9443 --name portainer --restart=always -v /var/run/docker.sock:/var/run/docker.sock -v portainer_data:/data portainer/portainer-ce:latest

Auch hier ist die Meldung "Unable to find image 'portainer/portainer-ce:latest' locally" kein Grund zur Sorge, das Image wird hier runtergeladen.

 

Portainer kann nun über die URL https://192.168.0.91:9443 bzw. wie in meinem Fall unter https://test.local:9443 aufgerufen werden. Die Meldung, dass es sich hierbei um keine sichere Verbindung handelt, darf man an dieser Stelle getrost ignorieren, in dem man auf "Erweitert" und dann auf "Risiko akzeptieren und forfahren" (Firefox, kann in anderen Browsern anders heißen) klickt.

Screenshot der Firefox-Fehlerseite "Warnung: Mögliches Sicherheitsrisiko erkannt".
Screenshot der erweiterten Firefox-Sicherheitswarnung für test.local, die ein selbstsigniertes Zertifikat als Grund angibt und die Option "Risiko akzeptieren und fortfahren" anbietet.

 

Nun muss einmalig der Admin-User für Portainer angelegt werden. Danach kann man sich einloggen.

 

Screenshot der Portainer-Erstinstallation, bei der das Administrator-Konto mit Benutzername und Passwort angelegt wird.

 

Wird diese Erst-Einrichtung nicht binnen 5 Minuten durchgeführt, bekommt man beim Aufruf der Portainer-Seite folgende Meldung:

Your Portainer instance timed out for security purposes. To re-enable your Portainer instance, you will need to restart Portainer.

Um diese Meldung zurückzusetzen und die Erst-Einrichtung von Portainer abzuschließen, folgende Befehle ausführen:

docker stop portainer
docker start portainer

 

Nun kann man den Admin-Account für Portainer einrichten und sich einloggen.

Screenshot der Portainer-Übersichtsseite ("Home"), die eine Liste der verfügbaren Docker-Umgebungen anzeigt, hier die "local"-Umgebung.

Somit ist die Portainer-Installation abgeschlossen.

 

Klickt man links im Menü auf "Containers", sieht man zum einen den Container "portainer" (Image: portainer/portainer-ce:latest), zum anderen das Image "hello-world". Der Name dieses Image wird zufällig generiert (bei mir hieß der Container "adoring_wiles").

Screenshot der Portainer-Containerliste, die den beendeten "hello-world"-Container neben dem laufenden Portainer-Container zeigt.

Da "hello-world" nur einmalig zum testen war, hat sich dieser Container nach der Ausführung automatisch wieder beendet, weshalb dieser in der Container-Liste bei "State" mit "exited - code 0" aufgeführt ist. Dies ist kein Fehler, sondern richtig, da der Container ja nicht läuft. Sofern man diesen nicht benötigt, kann "hello-world" gelöscht werden.

 

Für evtl. Updates oder zur Überprüfung des Status:



Die aktuelle Version von docker wird mittels:

docker version

 

angezeigt, der aktuelle Status von Docker mit dem Befehl:

systemctl status docker