Portainer unter Docker installieren

Mit Portainer lassen sich verteilte Container-Umgebungen komfortabel verwalten. Die Software wird als Docker-Container installiert und läuft damit ziemlich überall. Wir zeigen die Installations-Routine und geben nützliche Tipps.

Tipp

Nutzen Sie Portainer für die Verwaltung Ihrer Kubernetes-Cluster — auf einem vServer von IONOS.

Was ist Portainer?

Wir hatten Portainer bereits als flexible Alternative zu OpenShift vorgestellt. Anders als OpenShift handelt es sich bei Portainer nicht um eine eigene Kubernetes-Distribution. Vielmehr zentralisiert und vereinheitlicht die Open-Source-Software die Verwaltung existierender Cluster-Infrastrukturen. Dabei kommt eine webbasierte grafische Benutzeroberfläche zum Einsatz. Neben der kostenfreien „Community Edition“ (CE) existiert eine bezahlte Version mit Enterprise-Support.

Das Hauptaugenmerk von Portainer liegt darauf, die Verwaltung existierender Kubernetes-Deployments zu vereinheitlichen. Portainer ermöglicht DevOps-Teams, Multi-Cluster-Umgebungen zentral zu verwalten, zu konfigurieren und abzusichern. Auch Entwicklungs-Teams profitieren von der Software; so erleichtert Portainer Deployment, Verwaltung und Troubleshooting von Anwendungen.

Praktischerweise eignet sich Portainer nicht nur als Verwaltungsoberfläche für Kubernetes; auch die Cluster- bzw. Container-Verwaltung auf Basis von Docker und Docker Swarm gehört zum Funktionsumfang. Installieren lässt sich die Software so gut wie überall. So funktioniert die Installation in Cloud-Umgebungen, auf Edge-Geräten sowie auf eigener On-Premises-Recheninfrastruktur. Wir zeigen, wie man Portainer unter Docker installiert.

Tipp

Folgen Sie unserem anschaulichen Docker-Tutorial, um Docker auf Ihrem lokalen System einzurichten.

Wie installiere ich Portainer unter Docker?

Betrachten wir zunächst die grundlegende Portainer-Architektur. Diese umfasst zwei Komponenten, die einzeln als Docker-Container installiert werden:

  1. Ein Portainer-Server als zentralisierte Instanz. Der Portainer-Server enthält eine Datenbank und benötigt eine Speicherschicht zum Ablegen der Daten. Der Portainer-Server verwaltet die lokale Docker-Umgebung sowie ggf. weitere, per Agenten angebundene Umgebungen.
  2. Ggf. mehrere Portainer-Agenten zur Verwaltung weiterer Umgebungen. Eine Instanz des Portainer-Agenten läuft auf jedem zu verwaltenden Cluster-Knoten.

Sowohl Portainer-Server als auch die Agenten werden als Container auf existierender Infrastruktur ausgeführt. Die Agenten kommunizieren mit dem Server; damit dies funktioniert, müssen sich der Server und die Agenten im selben Netzwerk befinden. Ferner gibt es die Edge-Agenten, die als Instanzen auf entfernten Geräten laufen. Besonders an den Edge-Agenten ist, dass sie über Netzwerk-Grenzen hinweg mit dem Server kommunizieren. Dabei kommt ein verschlüsselter TLS-Tunnel zum Einsatz.

Im Anschluss zeigen wir die Installation von Portainer-Server und -Agent unter Docker (Standalone). Wir beziehen uns dabei auf die Portainer Community Edition (CE) in der Version 2.9.3 und nutzen Docker Desktop als Basis. Docker Desktop läuft auf Windows und macOS; die Installation auf Linux ist nahezu identisch. Beachten Sie, dass im Produktiveinsatz Server und Agenten auf unterschiedlichen Maschinen laufen.

Portainer-Server unter Docker Desktop installieren

Da der Portainer-Server als Docker-Image vorliegt, fällt die Installation denkbar einfach aus. Wir leiten Sie Schritt für Schritt durch den Prozess.

  1. Zunächst legen wir ein Docker-Volumen an, das die vom Portainer-Server verwalteten Daten enthalten wird:
docker volume create Portainer_data
  1. Im Anschluss überprüfen wir, ob das Docker-Volumen mit Namen 'Portainer_data' existiert:
docker volume ls
  1. Kommen wir nun zur Installation des eigentlichen Portainer-Servers. Wir starten den Server als Docker-Container aus seinem Docker-Image. Sofern das Image nicht lokal vorliegt, wird es automatisch heruntergeladen:
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 \
    cr.Portainer.io/Portainer/Portainer-ce:2.9.3
  1. Im Anschluss überprüfen wir, ob der Docker-Container mit Namen 'Portainer' läuft:
docker ps

Portainer-Server unter Docker konfigurieren

Wurde der Portainer-Server korrekt installiert, ist die Portainer-Weboberfläche auf dem lokalen Host unter dem angegebenen Port erreichbar. In unserem Fall handelt es sich um Port 9443. Nun steht an, den Portainer-Server zu konfigurieren.

  1. Zunächst rufen wir die Portainer-Weboberfläche im Browser auf: "https://localhost:9443"
  2. Bei der ersten Benutzung von Portainer legen wir einen Admin-Nutzer an und richten im Anschluss Portainer ein.

Standardmäßig kommt bei der Portainer-Installation ein selbst signiertes SSL-Zertifikat zum Einsatz, um die Weboberfläche per HTTPS abzusichern. Beim Zugriff wird je nach Browser und Betriebssystem ggf. eine Warnmeldung im Browser ausgegeben. Diese lässt sich mit einigen Klicks umgehen, wie in den folgenden Screenshots gezeigt.

Portainer-Server unter Docker Desktop upgraden

Der Upgrade-Prozess des Portainer-Servers ist eng mit der Installations-Routine verwandt. Wir zeigen den Prozess daher hier ebenfalls:

  1. Zunächst stoppen wir den laufenden Container des Portainer-Servers:
docker stop Portainer
  1. Im Anschluss entfernen wir den Container:
docker rm Portainer
  1. Zur Vorbereitung des Upgrades laden wir das aktuelle Portainer-Server-Image herunter:
docker pull cr.Portainer.io/Portainer/Portainer-ce:2.9.3
  1. Um das Upgrade durchzuführen, starten wir den Portainer-Server-Container aus dem aktuellen Image neu:
docker run -d -p 8000:8000 -p 9000:9000 -p 9443:9443 \
    --name=Portainer --restart=always \
    -v /var/run/docker.sock:/var/run/docker.sock \
    -v Portainer_data:/data \
    cr.Portainer.io/Portainer/Portainer-ce:2.9.3

Portainer-Agent unter Docker installieren

Der Portainer-Agent wird bei einer lokalen Installation unter Docker nicht benötigt. Möchte man mehrere Umgebungen zentralisiert verwalten, installiert man den Agenten auf jeder anzubindenden Maschine. Da der Portainer-Agent als Docker-Container vorliegt, geht die Installation einfach von der Hand. Es genügt, den folgenden Befehl auf dem Zielsystem auszuführen:

docker run -d -p 9001:9001 --name Portainer_agent \
    --restart=always \
    -v /var/run/docker.sock:/var/run/docker.sock \
    -v /var/lib/docker/volumes:/var/lib/docker/volumes \
    cr.Portainer.io/Portainer/agent:2.9.3