HomelabIT Praxis

Portainer unter Docker installieren

Portainer ist ein Open Source Werkzeug, um Container basierte Anwendungen unter Docker, Kubernetes, Docker Swarm und Azure ACI zu verwalten. Dabei stellt Portainer eine komfortable Benutzeroberfläche für das Management der Docker-Umgebung zur Verfügung.

In diesem Beitrag zeigen wir, wie Portainer unter Docker installiert und genutzt werden kann.


Portainer installieren

Voraussetzung für die Installation von Portainer ist eine funktionierende Docker-Umgebung bzw. ein eingerichteter Docker-Host. Siehe dazu auch unseren Artikel Docker unter Proxmox installieren.

Im ersten Schritt wird ein Volume für Portainer unter Docker bereitgestellt, das von Portainer innerhalb des Portainer-Containers nach „/data“ gemountet und verwendet wird.

docker volume create portainer_data

Anschließend wird der Portainer-Container mit folgendem Kommando erzeugt:

docker run -d -p 8000:8000 -p 9000:9000 --name=portainer --restart=always -v /var/run/docker.sock:/var/run/docker.sock -v portainer_data:/data portainer/portainer-ce

Die Portainer-Image wird automatisch heruntergeladen und der Container wird erstellt. Das war es – einfacher geht es nicht!

Die Benutzeroberfläche von Portainer erreicht man jetzt über folgende Url:

http://IP_ADRESSE:9000/

Beim ersten Aufruf der GUI muss ein Passwort vergeben werden.

Hier noch ein kurzer Überblick über die Parameter:

ParameterErklärung
Port 8000Port für den SSH-Tunnel zwischen Client und der Portainer-Instanz verwendet
Port 9000Port zum Zugriff auf die GUI und die API
–nameName des Containers
–restartDer Container wird bei einem Neustart des Docker-Hosts immer (always) mitgestartet
-vEinbindung von zwei Volumes (Socket des Docker-Hosts und das zuvor angelegte Volume für Portainer)
Erklärung Parameter für Portainer-Container

Portainer aktualisieren

Selbstverständlich gibt es auch bei Portainer Updates bzw. neue Versionen, die man einspielen sollte. Aber wie macht man das? Ein laufender Portainer-Container kann nicht aus Portainer heraus aktualisiert werden (Henne-Ei-Problem).

Die Aktualisierung des Portainer-Containers erfolgt über die Kommandozeile.

Zuerst zeigen wir uns alle laufenden Container an:

# Container Id anzeigen und löschen
docker container ls

Dann wird der laufende Portainer-Container gestoppt:

# Stop portainer
docker stop portainer

Anschließend wird über die Id der gestoppt Container gelöscht:

# Container löschen
docker container rm ID

Grds. ist es dabei ausreichend Ids mit den ersten Zeichen anzugeben, sofern diese eindeutig sind.

Dasselbe erfolgt jetzt für die Images. Auch diese lassen wir uns anzeigen und löschen das Portainer-Image über die entsprechende Id.

# Images anzeigen und löschen
docker image ls
docker image rm ID

Anschließend wird Portainer wie eingangs beschrieben neu installiert. Dabei wird das persistente Volume genutzt, das bei der initialen Installation angelegt wurde, so dass uns nach einem Update alle Einstellungen, die zuvor gemacht wurden, wieder zur Verfügung stehen:

# Portainer neu installieren
docker run -d -p 8000:8000 -p 9000:9000 --name=portainer --restart=always -v /var/run/docker.sock:/var/run/docker.sock -v portainer_data:/data portainer/portainer-ce

Anschließend können wir uns wieder mit den bekannten Zugangsdaten in der Benutzeroberfläche anmelden.

8 Gedanken zu „Portainer unter Docker installieren

  • Martin

    Werden bereits in Docker vorhandene Container auch erkannt und eingebunden, wenn man nachträglich Portainer installiert oder geht das nicht (automatisch)?

    Antwort
    • Hallo Martin,

      also Docker funktioniert ohne Portainer, Portainer aber nicht ohne Docker. Ist ja nur eine Management-Oberfläche für Docker.

      Grundsätzlich solltest Du alle Container, Volumes, etc., die bereits vorhanden sind, in Portainer sehen. Da kannst zum Beispiel auch vorhandene Images in Portainer importieren.

      User-Guide: https://documentation.portainer.io/

      Am Einfachsten ist es aber, wenn Du Portainer so wie im Beitrag beschrieben, einfach mal installierst, das sind ja nur zwei Zeilen und Du kannst ja nichts kaputt machen 😉

      Antwort
      • Martin

        Hi Kayomo,
        vielen Dank für die schnelle Antwort.
        Ich habe Portainer sogar schon am Laufen, tue mich aber auf Anhieb etwas schwer, eine Anleitung, einen bestimmten Container in Docker einzubinden, so umzusetzen, dass die Installation über Portainer läuft. Konkret will ich den RPi-Monitor als Container verwenden. Für die Installation als Container gibts da, was mir als Neuling in dem Bereich entgegenkommt, auf der Seite
        https://github.com/michaelmiklis/docker-rpi-monitor gleich den passenden Befehl dazu. Ich vermute mal, wenn ich es über die GUI von Portainer machen möchte, müsste ich halt das Kommando aufdröseln und bspw. manuell die ganzen Volumes definieren. Das muss ich mal testen aber da gehts dann schnell, dass man was übersieht und dann keine Ahnung hat, was man falsch gemacht hat, fürchte ich.

        Antwort
        • Du Frage ist, ob Du verstehst, was der Befehl

          docker run --device=/dev/vchiq --device=/dev/vcsm --volume=/opt/vc:/opt/vc --volume=/boot:/boot --volume=/sys:/dockerhost/sys:ro --volume=/etc:/dockerhost/etc:ro --volume=/proc:/dockerhost/proc:ro --volume=/usr/lib:/dockerhost/usr/lib:ro -p=8888:8888 --name="rpi-monitor" -d michaelmiklis/rpi-monitor:latest

          macht?

          Wenn ja, dann kannst Du das problemlos über die Portainer-GUI „nachbauen“. Ist insbesondere bei individuellem Port-oder Laufwerksmapping sinnvoll.

          Wenn nicht, dann hau den Befehl in das CLI und schau Dir dann in Portainer an, wie die Konfiguration dort aussieht.

          Wie gesagt, Du kannst bei Docker nichts kaputt machen. Es ist nur sinnvoll, nicht mehr benutzte Container, Images, Volumes auch zu löschen. Und dann einfach neu installieren.

          Antwort
          • Martin

            Vielen Dank 🙂 Ich schau mir das auf jeden Fall mal an. Erstmal auch im Portainer selbst, weil ich es am liebsten auch selbst verstehe, was da passiert.

            Schönen Abend noch 🙂

  • Pingback: Docker unter Proxmox installieren - kayomo GmbH

  • Pingback: Proxmox / Docker - persistenten Storage in Container einbinden - kayomo GmbH

  • Pingback: Kostenlose Teamviewer Alternative - RustDesk - kayomo GmbH

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert