Mit Portainer lassen sich verteilte Container-Um­ge­bun­gen kom­for­ta­bel verwalten. Die Software wird als Docker-Container in­stal­liert und läuft damit ziemlich überall. Wir zeigen die In­stal­la­ti­ons-Routine und geben nützliche Tipps.

Tipp

Nutzen Sie Portainer für die Ver­wal­tung Ihrer Ku­ber­netes-Cluster — auf einem vServer von IONOS.

Was ist Portainer?

Wir hatten Portainer bereits als flexible Al­ter­na­ti­ve zu OpenShift vor­ge­stellt. Anders als OpenShift handelt es sich bei Portainer nicht um eine eigene Ku­ber­netes-Dis­tri­bu­ti­on. Vielmehr zen­tra­li­siert und ver­ein­heit­licht die Open-Source-Software die Ver­wal­tung exis­tie­ren­der Cluster-In­fra­struk­tu­ren. Dabei kommt eine web­ba­sier­te grafische Be­nut­zer­ober­flä­che zum Einsatz. Neben der kos­ten­frei­en „Community Edition“ (CE) existiert eine bezahlte Version mit En­ter­pri­se-Support.

Das Haupt­au­gen­merk von Portainer liegt darauf, die Ver­wal­tung exis­tie­ren­der Ku­ber­netes-De­ploy­ments zu ver­ein­heit­li­chen. Portainer er­mög­licht DevOps-Teams, Multi-Cluster-Um­ge­bun­gen zentral zu verwalten, zu kon­fi­gu­rie­ren und ab­zu­si­chern. Auch Ent­wick­lungs-Teams pro­fi­tie­ren von der Software; so er­leich­tert Portainer De­ploy­ment, Ver­wal­tung und Trou­ble­shoo­ting von An­wen­dun­gen.

Prak­ti­scher­wei­se eignet sich Portainer nicht nur als Ver­wal­tungs­ober­flä­che für Ku­ber­netes; auch die Cluster- bzw. Container-Ver­wal­tung auf Basis von Docker und Docker Swarm gehört zum Funk­ti­ons­um­fang. In­stal­lie­ren lässt sich die Software so gut wie überall. So funk­tio­niert die In­stal­la­ti­on in Cloud-Um­ge­bun­gen, auf Edge-Geräten sowie auf eigener On-Premises-Re­chen­in­fra­struk­tur. Wir zeigen, wie man Portainer unter Docker in­stal­liert.

Tipp

Folgen Sie unserem an­schau­li­chen Docker-Tutorial, um Docker auf Ihrem lokalen System ein­zu­rich­ten.

Wie in­stal­lie­re ich Portainer unter Docker?

Be­trach­ten wir zunächst die grund­le­gen­de Portainer-Ar­chi­tek­tur. Diese umfasst zwei Kom­po­nen­ten, die einzeln als Docker-Container in­stal­liert werden:

  1. Ein Portainer-Server als zen­tra­li­sier­te Instanz. Der Portainer-Server enthält eine Datenbank und benötigt eine Spei­cher­schicht zum Ablegen der Daten. Der Portainer-Server verwaltet die lokale Docker-Umgebung sowie ggf. weitere, per Agenten an­ge­bun­de­ne Um­ge­bun­gen.
  2. Ggf. mehrere Portainer-Agenten zur Ver­wal­tung weiterer Um­ge­bun­gen. Eine Instanz des Portainer-Agenten läuft auf jedem zu ver­wal­ten­den Cluster-Knoten.

Sowohl Portainer-Server als auch die Agenten werden als Container auf exis­tie­ren­der In­fra­struk­tur aus­ge­führt. Die Agenten kom­mu­ni­zie­ren mit dem Server; damit dies funk­tio­niert, müssen sich der Server und die Agenten im selben Netzwerk befinden. Ferner gibt es die Edge-Agenten, die als Instanzen auf ent­fern­ten Geräten laufen. Besonders an den Edge-Agenten ist, dass sie über Netzwerk-Grenzen hinweg mit dem Server kom­mu­ni­zie­ren. Dabei kommt ein ver­schlüs­sel­ter TLS-Tunnel zum Einsatz.

Im Anschluss zeigen wir die In­stal­la­ti­on von Portainer-Server und -Agent unter Docker (Stan­da­lo­ne). 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 In­stal­la­ti­on auf Linux ist nahezu identisch. Beachten Sie, dass im Pro­duk­tiv­ein­satz Server und Agenten auf un­ter­schied­li­chen Maschinen laufen.

Portainer-Server unter Docker Desktop in­stal­lie­ren

Da der Portainer-Server als Docker-Image vorliegt, fällt die In­stal­la­ti­on 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 ver­wal­te­ten Daten enthalten wird:
docker volume create Portainer_data
  1. Im Anschluss über­prü­fen wir, ob das Docker-Volumen mit Namen 'Por­tai­ner_data' existiert:
docker volume ls
  1. Kommen wir nun zur In­stal­la­ti­on des ei­gent­li­chen Portainer-Servers. Wir starten den Server als Docker-Container aus seinem Docker-Image. Sofern das Image nicht lokal vorliegt, wird es au­to­ma­tisch her­un­ter­ge­la­den:
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 über­prü­fen wir, ob der Docker-Container mit Namen 'Por­tai­ner' läuft:
docker ps

Portainer-Server unter Docker kon­fi­gu­rie­ren

Wurde der Portainer-Server korrekt in­stal­liert, ist die Portainer-Web­ober­flä­che auf dem lokalen Host unter dem an­ge­ge­be­nen Port er­reich­bar. In unserem Fall handelt es sich um Port 9443. Nun steht an, den Portainer-Server zu kon­fi­gu­rie­ren.

  1. Zunächst rufen wir die Portainer-Web­ober­flä­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.

Stan­dard­mä­ßig kommt bei der Portainer-In­stal­la­ti­on ein selbst si­gnier­tes SSL-Zer­ti­fi­kat zum Einsatz, um die Web­ober­flä­che per HTTPS ab­zu­si­chern. Beim Zugriff wird je nach Browser und Be­triebs­sys­tem ggf. eine Warn­mel­dung im Browser aus­ge­ge­ben. Diese lässt sich mit einigen Klicks umgehen, wie in den folgenden Screen­shots gezeigt.

Portainer-Server unter Docker Desktop upgraden

Der Upgrade-Prozess des Portainer-Servers ist eng mit der In­stal­la­ti­ons-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 Vor­be­rei­tung 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 durch­zu­füh­ren, 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 in­stal­lie­ren

Der Portainer-Agent wird bei einer lokalen In­stal­la­ti­on unter Docker nicht benötigt. Möchte man mehrere Um­ge­bun­gen zen­tra­li­siert verwalten, in­stal­liert man den Agenten auf jeder an­zu­bin­den­den Maschine. Da der Portainer-Agent als Docker-Container vorliegt, geht die In­stal­la­ti­on einfach von der Hand. Es genügt, den folgenden Befehl auf dem Ziel­sys­tem aus­zu­füh­ren:

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
Zum Hauptmenü