Anleitung für den Container Manager Portainer hinter Traefik
In dieser Anleitung geht es um den Container Manager Portainer, der hinter Traefik als Reverse-Proxy Manager eingerichtet werden soll.
Inhaltsverzeichnis
Mir ist grundsätzlich lieber meine Docker-Container direkt über meinen Server zu steuern oder Lazydocker zur visuellen Hilfe dazuzunehmen. Manchmal (insbesondere unterwegs) ist es jedoch auch praktisch keine SSH-Verbindung zum Server herstellen zu müssen, um bestimmte Container zu verwalten oder mir die Logs anzusehen. An dieser Stelle kommt Portainer ins Spiel.
Portainer | Open Source Container Management GUI for Kubernetes, Docker, Swarm Portainer is the definitive open source container management GUI for Kubernetes, Docker, Swarm and ACI.
Als Reverse-Proxy sollte für meine Konfigurationsdatei Traefik, wie hier beschrieben, eingerichtet sein. Anschließend brauchen wir einen Ordner für die Daten und die Docker-Compose Datei.
cd ~/docker
mkdir appdata/portainer/data -p
nano docker-compose-portainer.yml
In diese Datei fügen wir folgenden Text ein.
version: "3.7"
### NETWORKS ###
networks:
web:
external:
name: web
default:
driver: bridge
### Services ###
services:
portainer:
container_name: portainer
image: portainer/portainer-ce:latest
restart: unless-stopped
command: -H unix:///var/run/docker.sock
networks:
- web
security_opt:
- no-new-privileges:true
volumes:
- /var/run/docker.sock:/var/run/docker.sock:ro
- $DOCKERDIR/appdata/portainer/data:/data
environment:
- TZ=$TZ
labels:
- "traefik.enable=true"
- "traefik.http.routers.portainer-rtr.entrypoints=https"
- "traefik.http.routers.portainer-rtr.rule=Host(`portainer.$DOMAINNAME`)"
- "traefik.http.routers.portainer-rtr.tls=true"
# - "traefik.http.routers.portainer-rtr.middlewares=chain-basic-auth@file" # Basic Authentication
- "traefik.http.routers.portainer-rtr.middlewares=chain-oauth@file" # Google Authentication
- "traefik.http.routers.portainer-rtr.service=portainer-svc"
- "traefik.http.services.portainer-svc.loadbalancer.server.port=9000"
Wir nutzen dabei das offizielle Image.
docker-compose -f docker-compose-portainer.yml up -d
Fertig. Unter unserer Portainer-Subdomain sollte nun Portainer zu sehen sein.
Ein Update auf einen späteren Release lässt sich auch sehr einfach durchführen.
docker-compose -f docker-compose-portainer.yml pull
docker-compose -f docker-compose-portainer.yml down
docker-compose -f docker-compose-portainer.yml up -d