Portainer Tutorial (für Version 2.x)

Dieses Portainer Tutorial hilft dir Portainer unter Docker zu installieren, einzurichten und die ersten Anwendungen zu deployen.
Portainer ist eine sehr gute Software, um Docker und Kubernetes über ein Web GUI zu verwalten. Im Gegensatz zu Rancher bringt es aber erst mal keine weitere Intelligenz mit. Nichtsdestotrotz ist die Software für Homelabs mehr als empfehlenswert. In diesem Portainer Tutorial zeige ich dir alles Notwendige von der Installation über die Einrichtung bis zum Hinzufügen von Templates.
Voraussetzungen
Voraussetzungen für dieses Portainer Tutorial gibt es eigentlich fast keine. Wir beschränken uns in diesem Beitrag allerdings auf die Verwaltung von Docker. Entsprechend solltest du ein Linux-Server mit installiertem Docker vorbereitet haben. Alles weitere werden wir zusammen erarbeiten.
Installation von Portainer
Eine wirkliche Installation findet ja nicht statt. Wir starten Portainer als Docker Container und müssen uns eigentlich nur gegen diesen verbinden. Du findest eine vorgefertigte docker-compose.yaml-Datei in meiner Compose-Sammlung. Die für die Docker GUI sieht zum Beispiel so aus.
---
version: '3.3'
services:
portainer:
image: portainer/portainer-ce:2.11.1
container_name: portainer
restart: unless-stopped
volumes:
- /etc/localtime:/etc/localtime:ro
- /etc/timezone:/etc/timezone:ro
- /var/run/docker.sock:/var/run/docker.sock
- /var/docker/portainer:/data
ports:
- 9000:9000
Den Datenspeicherort der Portainer-Konfiguration kannst du dir natürlich nach Belieben anpassen (4. Zeile bei den Volumes). Anschließend können wir den Container auch schon starten.
docker-compose up
Nach ein paar Sekunden sollte die Anwendung dann vollständig gestartet sein.
portainer | INFO 2022/03/22 18:18:21 Encryption key file `portainer` not present
portainer | INFO 2022/03/22 18:18:21 Proceeding without encryption key
portainer | INFO 2022/03/22 18:18:21 Loading PortainerDB: portainer.db
portainer | level=info msg="2022/03/22 18:18:21 [INFO] [internal,ssl] [message: no cert files found, generating self signed ssl certificates]"
portainer | 2022/03/22 18:18:22 server: Reverse tunnelling enabled
portainer | 2022/03/22 18:18:22 server: Fingerprint 8f:41:d0:fc:b7:fe:45:23:9d:f1:31:5d:70:f8:38:76
portainer | 2022/03/22 18:18:22 server: Listening on 0.0.0.0:8000...
portainer | INFO 2022/03/22 18:18:22 [INFO] [cmd,main] Starting Portainer version 2.11.1
portainer |
portainer | level=info msg="2022/03/22 18:18:22 [INFO] [http,server] [message: starting HTTPS server on port :9443]"
portainer | level=info msg="2022/03/22 18:18:22 [DEBUG] [chisel, monitoring] [check_interval_seconds: 10.000000] [message: starting tunnel management process]"
portainer | level=info msg="2022/03/22 18:18:22 [DEBUG] [internal,init] [message: start initialization monitor ]"
portainer | level=info msg="2022/03/22 18:18:22 [INFO] [http,server] [message: starting HTTP server on port :9000]"
Ab jetzt können wir mit der Einrichtung beginnen.
Einrichtung von Portainer
Hierzu öffnen wir einen neuen Tab im Browser (oder gern auch ein neues Fenster) und geben die IP-Adresse des Docker-Servers gefolgt vom Port ein. Uns sollte so etwas begrüßen.
Setup des Administrator Accounts
Wenn du möchtest, kannst du den Administrator-Account gerne einen anderen Nutzernamen geben. Andernfalls lass einfach das „admin“ in der ersten Zeile stehen. Anschließend tippst du bitte zwei Mal ein selbst gewähltes Passwort ein. Nun noch unten auf „Create user“ klicken und schon erscheint der nächste Bildschirm.
Wir nutzen die „Get Started“ Schaltfläche.
Solltest du mehrere Docker Server damit verwalten wollen, wäre „Add Environment“ das Richtige. Allerdings wollen wir in diesem Portainer Tutorial lediglich den lokalen Docker Server verwalten. Wir klicken also auf „Get Started“ und landen direkt beim nächsten Fenster.
Wähle die Umgebung aus, die du haben möchtest.
Es werden hier eine Liste der möglichen Docker-Umgebungen dargestellt. Da wir natürlich nur auf die Lokale Zugriff haben, können wir nur „local“ auswählen. Genau dieses wollen wir natürlich auch.
Anschließend ist die Einrichtung auch schon abgeschlossen.
Portainer ist fertig eingerichtet und zeigt dir eine Übersichtsseite.
Anwendungen hinzufügen
Docker Container bzw. die Anwendungen werden als Stack in Portainer verwaltet. Entsprechend ist die Benennung hier ein wenig anders als du das vielleicht gewohnt bist. In diesem Portainer Tutorial gehe ich auf zwei Methoden ein eine neue Anwendung hinzuzufügen, nämlich per copy & paste der docker-compose.yaml-Datei und per Import von GitHub.
Per Copy & Paste
Diese Methode ist wohl die einfachste. Du kannst bestehende docker-compose.yaml-Dateien fast immer einfach hier rein kopieren. Allerdings ist aufzupassen, dass keine Variablen verwendet werden. Diese können in der Methodik nämlich nicht ausgefüllt werden. Gegebenenfalls ersetzt du einfach die Variablen durch die eigentlichen Werte, dann funktioniert das auch.
Jeder Stack bekommt einen eigenständigen Namen ohne Umlaute.
Als erstes vergeben wir einen Namen. Dieser Name ist eineindeutig für die jeweiligen Umgebungen. Zudem dürfen keine Umlaute oder Leerzeichen verwendet werden. Binde- oder Unterstriche, wie im Beispiel zu sehen, sind natürlich erlaubt.
Einfach die Compose-Datei rein kopieren.
Für dieses Beispiel deployen wir das Ghost CMS. Wir nehmen also einfach eine docker-compose.yaml-Datei (wie diese aus meiner Sammlung) und fügen den Inhalt einfach ein.
Weitere Felder müssen hier nicht ausgefüllt werden.
In unserem einfachen Beispiel müssen wir nichts weiter beachten und lassen alle anderen Felder und Möglichkeiten außer Acht. Wir müssen also nur noch auf „Deploy the stack“ klicken und Portainer zieht das Image aus der Registry und startet den Container.
Unser Ghost Blog ist erstellt und läuft.
So einfach war die Copy & Paste-Methode. Anschließend fügen wir jetzt noch eine compose-Datei aus GitHub hinzu.
Compose Datei aus GitHub
Diese Methode kann verwendet werden, wenn man keine Lust auf Copy & Paste hat. Allerdings hat sie nicht wirklich große Vorteile. Zumal der Stack dann auch nicht vollständig über Portainer verwaltet werden kann. Auf der anderen Seite wird der Stack über die originale Datei auf GitHub synchronisiert und entsprechend aktuell gehalten (wenn man das möchte).
Auch hier geben wir dem Stack einen Namen.
Wir verwenden die gleiche Anwendung für den GitHub pull.
Die Github Konfiguration ist nicht wirklich schwer.
Natürlich kann hier jede Art von git-Repository verwendet werden. GitHub ist nur das prominenteste Beispiel der Cloud Anbieter für git-Repositories.
Als Repository-URL gibst du den Standardpfad bzw. URL des Repos ein. Das ist meist die Startseite. Die „Repository reference“ kannst du leer lassen, denn diese nimmt immer die Dateien aus dem Master Branch. Wenn du das nicht möchtest, weißt du sicherlich selbst, was du hier einzutragen hast.
Der „Compose path“ ist im Standard nur eine einfach „docker-compose.yml“-Angabe. Ich habe für dieses Beispiel eine Anwendung aus meiner Sammlung genommen und muss entsprechend den Pfad dorthin genau angeben.
Auch hier müssen wir anschließend nur auf „Deploy the Stack“ unten klicken und schon wird die compose-Datei aus dem Repo geklont und die Anwendung deployt.
Fazit
Ich hoffe, dir hat mein Portainer Tutorial geholfen dein Portainer gut einzurichten. Solltest du dennoch Fragen haben, wäre es empfehlenswert, diese in meiner Discord-Community zu stellen (Link findest du oben in der Menüleiste). Dort können dir viele erfahrene Menschen helfen, dein Problem zu lösen.