Hier zeige ich euch, wie ihr Portainer mittels Docker und Traefik installieren könnt. Bei Portainer handelt es sich um eine einfache Weboberfläche mittels derer ihr bequem eure Container verwalten könnt.
| Datum | Änderungen |
|---|---|
| 27.03.2020 | Erstellung dieser Anleitung |
| 28.12.2020 | Update für Portainer 2 |
| 01.02.2022 | Anpassung an aktuelle Version |
| 24.10.2022 | Anpassung an neues Layout, neues Traefik, neue Bilder |
| 31.05.2023 | Anpassung an neue Traefik Anleitung |
| 15.10.2024 | Anpassung an neue Traefik v3 Anleitung, Socket Proxy fehlt noch |
Diese Anleitung beinhaltet noch nicht die zusätzliche Sicherheit durch den Socket Proxy, welcher mit der neuen Traefik v3 Anleitung von @psycho0verload eingeführt wurde. Diese Anleitung wird demnächst erweitert. Portainer lässt sich mit der Anleitung aber ganz normal bereitstellen und nutzen.
1. Grundvoraussetzung
- Docker & Docker Compose v2 (Debian / Ubuntu)
- Traefik V3 Installation, Konfiguration und CrowdSec-Security
2. Verzeichnis anlegen
Zuerst erstellen wir uns ein passendes Verzeichnis.
mkdir -p /opt/containers/portainer/data
3. Docker Compose Datei erstellen
Nun erstellen wir unsere Docker Compose Datei.
nano /opt/containers/portainer/docker-compose.yml
Inhalt:
services:
portainer:
container_name: portainer
image: portainer/portainer-ce:latest
labels:
traefik.docker.network: proxy
traefik.enable: "true"
traefik.http.routers.portainer.entrypoints: websecure
traefik.http.routers.portainer.middlewares: default@file
traefik.http.routers.portainer.rule: Host(`portainer.euredomain.de`)
traefik.http.routers.portainer.service: portainer
traefik.http.routers.portainer.tls: "true"
traefik.http.routers.portainer.tls.certresolver: http_resolver
traefik.http.services.portainer.loadbalancer.server.port: "9000"
networks:
proxy: null
restart: unless-stopped
security_opt:
- no-new-privileges:true
volumes:
- /etc/localtime:/etc/localtime:ro
- /var/run/docker.sock:/var/run/docker.sock:ro
- ./data:/data
networks:
proxy:
name: proxy
external: trueCode-Sprache: PHP (php)
Notwendige Anpassungen:
- Ihr müsst noch den Hostnamen anpassen (portainer.euredomain.de)
4. Portainer starten
Nun könnt ihr schon Portainer nutzen. Gebt dazu folgendes ein:
docker compose -f /opt/containers/portainer/docker-compose.yml up -d
5. Konfigurieren
Nun geht ihr auf “portainer.euredomain.de”. Dort solltet ihr jetzt folgendes sehen. Den kleinen Haken könnt ihr bei Bedarf entfernen.

Im nächsten Schritt wählt ihr “Get Started” aus.

Jetzt habt ihr einen Überblick über eure laufenden Docker Container.


Hallo zusammen,
wollte heute mal wieder Portainer schnell installieren. Aber leider funktioniert es gar nicht.
Habe Traefik V3 und andere Container laufen, die funktionieren einwandfrei. Wenn ich auf meine WebAdresse gehe, steht nur Webseite nicht erreichbar. Nicht mal “Bad Gateway” oder so. Portainer Logs sehen okay aus. Traefik logs wird nichts angezeigt. Der Port 9000 ist in der Firewall frei. Weiß nun wirklich nicht weiter. Hoffe mir kann jemand helfen, oder sagen was ich tun soll.
Hat jemand es geschafft bei Portainer das mTLS zu aktivieren ?
Es ist ein Enterprise Modul allerdings bekommt man 3 Nodes free 😉
Hat jemand Portainer und den Socket-Proxy (aus der Traefik V3 Anleitung) am Laufen?
DOCKER_HOST: tcp://socket-proxy:2375 verursacht eine Warnung:
2024/10/16 04:15AM WRN portainer/main.go:479 > unable to clean up ghost updater stack | error=”failed to list containers: error during connect: Get \”http://socket-proxy:2375/v1.45/containers/json?all=1&filters=%7B%22label%22%3A%7B%22io.portainer.updater%3Dtrue%22%3Atrue%7D%7D\”: dial tcp: lookup socket-proxy on 127.0.0.11:53: server misbehaving”
at (*Client).doRequest (request.go:195)
at (*Client).sendRequest (request.go:125)
at (*Client).get (request.go:37)
at (*Client).ContainerList (container_list.go:48)
at ScanAndCleanUpGhostUpdaterContainers.func1 (local.go:18)
at withCli (local.go:62)
at ScanAndCleanUpGhostUpdaterContainers (local.go:16)
at Retry (local.go:69)
at cleanUpGhostUpdaterStacks (main.go:477)
at goexit (asm_amd64.s:1650)
Anstatt ‘DOCKER_HOST: tcp://socket-proxy:2375‘ wäre es nicht besser ‘command: -H tcp://socket-proxy:2375‘ zu verwenden: Dieser Befehl gibt Portainer an, dass er sich mit dem Docker-Daemon über den Socket-Proxy verbinden soll.
Was ich in dem Zuge noch interessant fände, wie das ganze mit Docker Swarm funktioniert ^^
Moin,
Meine Installation endet mit folgender Fehlermeldung.
Wie kann ich das beheben?
Fragen:
Welche Vorteile hat die Nutzung von Portainer mit docker-compose (mit docker-compose.yml)
gegenüber
der Nutzung von Portainer mit docker?
Bzw. welche Nachteile habe ich, wenn ich Portainer nur mit docker starte?
Eigentlich ist docker-compose doch nur erforderlich, wenn ich zusätzliche Dienste wie z. B. Traefik integrieren möchte, richtig?
Hallo Leser, hier die Lösung für Portainer {portainer.io Community Edition 2.15.0) ohne “Traefik”, d. h. lokales Netzwerk.
Nur die ocker-compose.yml wurde geändert.
Das Aussehen von portainer-ce 2.15.0 hat sich geändert.
Viel Spaß
Thilo