Portainer ist eine open-source Software welche eine grafische Docker Container Verwaltung. Mittels Portainer lassen sich Container starten sowie beenden, Container Spezifikationen auslesen und vieles mehr.
Portainer ist in der Community Version kostenlos. Es wird jedoch auch eine Business Version angeboten, welche unter anderem telefonischen Support bietet. Die Community Version lässt sich aber ohne Einschränkungen nutzen und wird in dieser Anleitung verwendet.
Bei yml Dateien ist es sehr wichtig, dass die Zeilen alle richtig eingerückt sind. Die Zeilen MÜSSEN immer mit der Leertaste eingerückt werden. Es dürfen KEINE Tabs enthalten sein. Ihr könnt den nachfolgenden Code immer online „überprüfen“ lassen. Die meisten Fehler entstehen nämlich durch die falsche Formatierung. Ein Dienst zum Überprüfen ist zum Beispiel: https://codebeautify.org/yaml-validator
Diese Anleitung basiert auf dem aktuellen Debian 10 Betriebssystem. Portainer werden wir unter Docker realisieren. Dies ermöglicht uns später sehr schnelle Updates und eine schnelle Installation.
Um Portainer neben anderen Diensten auf unserem Server betreiben zu können, nutzen wir hier den Reverse Proxy Traefik. Die Anleitung dazu finden Sie hier: https://www.dogado.de/vps/vserver-anwendungsfaelle/traefik-reverseproxy-auf-vserver-installieren
Wir erstellen uns ein neues Verzeichnis, in welchem wir später alle Daten von Portainer abspeichen. Dazu geben wir folgendes in der Konsole ein:
mkdir -p /opt/containers/portainer/data
Ihr könnt hier auch ein anderes Verzeichnis verwenden. Müsst dann aber die gesamte Anleitung entsprechend anpassen.
Nun können wir mit der eigentlichen „Installation“ von Portainer beginnen. Dazu öffnet ihr folgende Datei:
nano /opt/containers/portainer/docker-compose.yml
Nun kopiert ihr folgenden Code in die Datei. Dieser Code ist unser Bauplan für unseren Portainer Container.
version: '3'
services:
portainer:
image: portainer/portainer-ce:latest
container_name: portainer
restart: unless-stopped
security_opt:
- no-new-privileges:true
networks:
- proxy
volumes:
- /etc/localtime:/etc/localtime:ro
- /var/run/docker.sock:/var/run/docker.sock:ro
- ./data:/data
labels:
- "traefik.enable=true"
- "traefik.http.routers.portainer.entrypoints=http"
- "traefik.http.routers.portainer.rule=Host('portainer.euredomain.de')"
- "traefik.http.middlewares.portainer-https-redirect.redirectscheme.scheme=https"
- "traefik.http.routers.portainer.middlewares=portainer-https-redirect"
- "traefik.http.routers.portainer-secure.entrypoints=https"
- "traefik.http.routers.portainer-secure.rule=Host('portainer.euredomain.de')"
- "traefik.http.routers.portainer-secure.tls=true"
- "traefik.http.routers.portainer-secure.tls.certresolver=http"
- "traefik.http.routers.portainer-secure.service=portainer"
- "traefik.http.services.portainer.loadbalancer.server.port=9000"
- "traefik.docker.network=proxy"
networks:
proxy:
external: true
Nun müsst ihr noch den Hostnamen anpassen, über welchen später Portainer erreichbar sein soll.
Diese beiden Zeilen müsst ihr anpassen.
- "traefik.http.routers.portainer.rule=Host('portainer.euredomain.de')"
- "traefik.http.routers.portainer-secure.rule=Host('portainer.euredomain.de')"
In meinem Fall also:
- "traefik.http.routers.portainer.rule=Host('portainer.testbereich.net')"
- "traefik.http.routers.portainer-secure.rule=Host('portainer.testbereich.net')"
Nun sind wir fertig.
Gebt nun folgendes ein, um euren Portainer Container zu starten:
docker compose -f /opt/containers/portainer/docker-compose.yml up -d
Geht nun mit eurem Webbrowser auf eure Webseite (z.B. portainer.euredomain.de). Dort sollte nach einigen Sekunden folgendes zu sehen sein:
Hier könnt / solltet ihr nun den Administrator Nutzername ändern sowie ein sicheres Kennwort vergeben.
Diesen Haken könnt ihr entfernen.
Anschließend klickt ihr auf „Create user“ und der Account wird erstellt.
Nun seht ihr folgendes:
Hier klickt ihr einfach links auf „local“ um eure Docker Container zu sehen.
Hier zeige ich euch, wie ihr Portainer nutzen könnt.
Um euch alle Container anzeigen zu lassen, klickt ihr auf „Containers“.
Nun seht ihr eine Liste aller Container.
Ihr könnt euch auch weitere Informationen zu den Containern bzw. deren Konsolenausgabe anzeigen lassen.
Dazu klickt ihr auf das „Blatt“.
Nun seht ihr die Konsolenausgabe des Containers „portainer“.
Mit einem Klick auf das „Infozeichen“ könnt ihr euch Details des Containers anzeigen lassen.
Die einzelnen Reiter hier könnt ihr noch „erweitern“ um noch mehr Details zu sehen.
Mit einem Klick auf den „Graphen“ könnt ihr euch die aktuelle Container Auslastung anzeigen lassen.
Ihr habt ebenfalls noch die Möglichkeit einen Befehl direkt auf der Konsole des Containers auszuführen. Dazu klickt ihr auf das letzte Symbol. Hier verwende ich den Container „traefik“, da dieser eine „SH Shell“ installiert hat.
Dann „/bin/sh“ auswählen und „Connect“ klicken.
Nun könnt ihr beliebige Befehle direkt auf der „SH Shell“ des Traefik Containers ausführen.