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: true
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.
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
Hallo, die Anleitung stimmt mit Debian 11 nicht mehr.
muss geändert werden in
Dann passt es.
VG
Thilo
Edit:
Ubuntu 22.04.1 LTS hat den gleichen Fehler, funktioniert aber grundsätzlich.
Kann bestätigen, das die Anleitung noch funktioniert. Danke für die Arbeit 🙂
Hi Christian,
Ich bin ein Fan deiner Anleitungen, da sie im Gegensatz zu vielen auf Docker-Compose aufbauen und auch nicht mit Docker Volumes arbeiten, die ich für den normalen Gebrauch lästig finde. Leider komme ich mit deiner Anleitung auf keinen grünen Zweig, da mir der Browser immer ein SSL Protocol Error ausspuckt. Ich habe gesehen das bei Portainer immer drei Ports gemappt werden, kann es sein das der Container Intern auf Port 9443 umleitet?.
Wäre für deine Hilfe Dankbar mit freundlichem Gruss
Stefan
Hallo zusammen,
kurze Frage:
Habe auch alles nach deine Anleitung installiert und funktioniert auch herovrragend, aber in Portainer wird mir unter den Stacks 2x Mailcow angezeigt (mailcow….._2).
Kannst du mir sagen warum Mailcow doppelt auftaucht?
Portrainer und Treafik jeweils nur 1x, also alles ok.
Danke.
Hallo, ist mein Kommentar angekommen?
Keine Hinweise erwünscht?
LG
Matthias
Hallo Christian,
ist deine Anleitung noch aktuell?
https://hub.docker.com/r/portainer/portainer
This Repo is now deprecated, use portainer/portainer-ce instead.
https://hub.docker.com/r/portainer/portainer-ce
Ein schöne Seite hier, super Christian.
Moin,
ich habe zur Zeit das Problem das der Conatiner startet aber ich kann Ihn leider nicht erreichen.
Traefik sieht aber im System den Portainer Container.
Was mach ich verkehrt?
Hallo Christian,
erst einmal Danke, für all die ganzen Anleitungen. Ich bin selbst Liebhaber der IT, aber hatte leider nicht das Glück, zwecks Abitur und warte nun sehnsüchtig auf eine IT-Ausbildung, hoffentlich klappt dies.
Nun zu meiner Frage: Wie kommst du auf den Loadbalancerport von 9000? Sollte der nicht auf 80 gesetzt werden?
Auf meinem Root laufen einige Container über Traefik + Docker, u. a. TS3 (ohne Traefik), aber dafür mit einer gewissen Portrange, u. a. 9000. Würde sich doch dann beißen oder?
Hab das noch nicht so raus, wie das mit den Ports für die Loadbalancers am sinnvollsten ist. Kannst du dazu ein Feedback bitte geben?
Viele Grüße
Marcel
Ja habe ich gemacht. Nextcloud und Traefik funktionieren auch entsprechend ohne Probleme.
Habe exakt die yml kopiert und die Hosts an beiden Stellen mit meiner url ausgetauscht. Auch Traefik und nextcloud sind nach deiner Anleitung und funktionieren auch.
VG
Christian
Hallo Christian,
Dank deinen Anleitungen konnte ich schon einige Service mit Docker in Betrieb nehmen (z.B. Traefik, Nextcloud,etc.).
Nun wollte ich mal den Portainer ausprobieren. Wie immer nach deiner Anleitung.
Beim starten (docker-compose -f pfad/zu/docker-compose.yml up) scheint es mir auch keine Fehler zu generieren und ich kann den Container starten. Doch beim Aufrufen von portainer.domain.xy sagt er mir dann:
Beim Verbinden mit portainer.domain.xy trat ein Fehler auf. Die Gegenstelle meldet, dass sie auf einen internen Fehler gestoßen ist.
Fehlercode: SSL_ERROR_INTERNAL_ERROR_ALERT
Woran könnte das liegen? portainer.euredomain.de habe ich angepasst. Der Rest ist identisch.
Besten Dank und Gruss
Gabriel