Einführung in die Installation von Portainer für Anfänger

  • Beitrags-Autor:
  • Beitrags-Kategorie:Docker / Server

Einleitung:

In diesem Blogartikel zeige ich dir, wie du Portainer auf einem Ubuntu-System installierst, auf dem bereits Docker und Docker Compose vorhanden sind. Portainer ist eine benutzerfreundliche Oberfläche zur Verwaltung von Docker-Containern und erleichtert die Arbeit mit Docker erheblich. Wir werden den gesamten Prozess Schritt für Schritt durchgehen, damit du am Ende Portainer erfolgreich einsetzen kannst.

Schritt 1: Erstelle das Verzeichnis für Portainer Als Erstes erstellen wir ein Verzeichnis für Portainer. Hierfür verwenden wir den Befehl mkdir. Der Befehl steht für „make directory“ und wird verwendet, um neue Verzeichnisse zu erstellen. Führe den folgenden Befehl aus:

sudo mkdir -p /opt/portainer

Dieser Befehl erstellt das Verzeichnis /opt/portainer, falls es noch nicht existiert. Der Parameter -p sorgt dafür, dass auch alle notwendigen übergeordneten Verzeichnisse erstellt werden.

Schritt 2: Erstelle die Portainer-Docker-Compose-Datei

Nun erstellen wir die docker-compose.yml-Datei für Portainer im Verzeichnis /opt/portainer. Diese Datei definiert, wie Docker Compose die Container für Portainer erstellt und konfiguriert. Öffne einen Texteditor deiner Wahl (zum Beispiel nano) und erstelle die Datei:

sudo nano /opt/portainer/docker-compose.yml

Füge den folgenden Inhalt in die Datei ein:

version: '3.3'
services:
  portainer:
    image: portainer/portainer-ce
    container_name: portainer
    restart: always
    ports:
      - "9000:9000"
    volumes:
      - /var/run/docker.sock:/var/run/docker.sock
      - portainer_data:/data
volumes:
  portainer_data:

Nachdem du den Inhalt in die Datei eingefügt oder geändert hast, drücke Ctrl + X, um den Speichern-und-Beenden-Vorgang zu starten. nano fragt dich daraufhin, ob du die Änderungen speichern möchtest.

Drücke Y (für „Yes“), um zu bestätigen, dass du die Änderungen speichern möchtest.

nano zeigt nun den Dateinamen, unter dem die Datei gespeichert werden soll, in diesem Fall /opt/portainer/docker-compose.yml. Da wir diesen Dateinamen bereits angegeben haben, als wir den Texteditor gestartet haben, musst du einfach nur Enter drücken, um den Speichervorgang abzuschließen.

Nachdem du Enter gedrückt hast, speichert nano die Datei und beendet sich.

Die docker-compose.yml-Datei definiert nun, dass wir die Portainer Community Edition (portainer/portainer-ce) nutzen und den Container unter dem Namen „portainer“ laufen lassen. Weiterhin binden wir den Port 9000 auf dem Host-System an den Port 9000 im Container und erstellen zwei Volumes für die Datenpersistenz.

Beschreibung der docker-compose.yml

In diesem Abschnitt erkläre ich dir, was jede Zeile der docker-compose.yml-Datei bedeutet:

version: '3.3'

Die version gibt die verwendete Version des Docker Compose-Dateiformats an. In diesem Fall verwenden wir die Version 3.3.

services:

Der services-Block definiert die einzelnen Container, die von Docker Compose verwaltet werden sollen.

  portainer:

portainer ist der Name des Containers, der in diesem Docker Compose-Projekt erstellt wird.

    image: portainer/portainer-ce

image gibt das Docker-Image an, das für den Container verwendet wird. In diesem Fall verwenden wir das offizielle Portainer Community Edition-Image (portainer/portainer-ce).

    container_name: portainer

container_name ist der Name, der für den erstellten Container verwendet wird. Hier wird der Container „portainer“ genannt.

    restart: always

Die Zeile restart: always wurde dem Portainer-Service hinzugefügt. Diese Anweisung legt fest, dass der Portainer-Container immer neu gestartet werden soll, wenn er stoppt oder abstürzt. Dies kann dazu beitragen, die Verfügbarkeit und Stabilität des Portainer-Dienstes zu erhöhen, da er automatisch wiederhergestellt wird, wenn Probleme auftreten.

Die möglichen Werte für die restart-Anweisung sind:

  • no: Der Container wird nicht automatisch neu gestartet (Standardverhalten).
  • always: Der Container wird immer neu gestartet, wenn er stoppt oder abstürzt.
  • on-failure: Der Container wird nur neu gestartet, wenn er aufgrund eines Fehlers stoppt (z. B. wenn der Container-Exit-Code ungleich Null ist).
  • unless-stopped: Der Container wird immer neu gestartet, es sei denn, er wurde manuell gestoppt (z. B. durch den Befehl docker stop oder docker-compose down).
    ports:
      - "9000:9000"

Der ports-Block definiert die Portweiterleitungen zwischen dem Host-System und dem Container. In diesem Fall wird der Port 9000 des Host-Systems an den Port 9000 des Containers weitergeleitet.

    volumes:
      - /var/run/docker.sock:/var/run/docker.sock
      - portainer_data:/data

Der volumes-Block definiert die Volumes, die für den Container verwendet werden sollen. Die erste Zeile bindet den Docker-Socket des Host-Systems an den Docker-Socket im Container. Dies ermöglicht es Portainer, den Docker-Daemon des Host-Systems zu steuern. Die zweite Zeile definiert ein benanntes Volume portainer_data, das an den /data-Pfad im Container gebunden wird. Dieses Volume wird zur Speicherung der Portainer-Daten verwendet.

volumes:
  portainer_data:

Der volumes-Block auf der obersten Ebene definiert die benannten Volumes, die in diesem Docker Compose-Projekt verwendet werden sollen. In diesem Fall erstellen wir ein benanntes Volume namens portainer_data. Da wir keine weiteren Konfigurationsoptionen angeben, verwendet Docker die Standardkonfiguration für das Volume.

Schritt 3: Starte Portainer mit Docker Compose

Nun verwenden wir Docker Compose, um Portainer zu starten. Führe den folgenden Befehl aus:

sudo docker-compose -f /opt/portainer/docker-compose.yml up -d

Dieser Befehl teilt Docker Compose mit, dass es die docker-compose.yml-Datei im Verzeichnis /opt/portainer verwenden soll (-f-Option) und die Container im Hintergrund laufen lassen soll (-d-Option). Docker Compose wird nun Portainer herunterladen und starten.

Schritt 4: Registriere dich bei Portainer

Öffne nun deinen Webbrowser und rufe die Portainer-Webseite auf, indem du http://<deine-server-ip>:9000 eingibst. Du solltest nun den Portainer-Anmeldebildschirm sehen.

Portainer-Benutzer-erstellen

Erstelle ein neues Administratorkonto, indem du ein Passwort deiner Wahl festlegst und auf „Create user“ klickst. Anschließend wähle „Get Started“.

Portainer Ersteinrichtung

Schritt 5: Erkunde Portainer

Nach dem erfolgreichen Login siehst du das Portainer-Dashboard, das eine Übersicht über die laufenden Container, Volumes, Netzwerke und andere Ressourcen bietet. Du kannst nun neue Container erstellen, vorhandene Container verwalten oder sogar Docker-Images suchen und herunterladen.

Portainer Übersicht

Fazit: Du hast erfolgreich Portainer auf deinem Ubuntu-System installiert und konfiguriert. Nun kannst du die einfache und benutzerfreundliche Oberfläche nutzen, um deine Docker-Container zu verwalten und zu überwachen. Portainer bietet zahlreiche Funktionen, die die Arbeit mit Docker-Containern erleichtern, wie z. B. das einfache Erstellen von Containern, das Verwalten von Volumes und Netzwerken sowie das Überwachen der Ressourcennutzung.

Portainer aktualisieren

Um Portainer zu aktualisieren, musst du zunächst den laufenden Portainer-Container stoppen, das neueste Image herunterladen und dann einen neuen Container mit dem aktualisierten Image starten. Hier ist eine schrittweise Anleitung zur Aktualisierung von Portainer unter Verwendung von Docker Compose:

  1. Wechsle in das Verzeichnis, in dem sich die docker-compose.yml-Datei befindet:
cd /opt/portainer

Stoppe den laufenden Portainer-Container und entferne ihn:

docker-compose down

Dieser Befehl stoppt den Portainer-Container und entfernt ihn, behält aber das zugehörige Volume portainer_data bei, in dem die Portainer-Daten gespeichert sind.

  1. Lade das neueste Portainer-Image herunter:
docker-compose pull

Durch diesen Befehl wird das neueste verfügbare Image von portainer/portainer-ce heruntergeladen.

  1. Starte einen neuen Portainer-Container mit dem aktualisierten Image:
docker-compose up -d

Dieser Befehl erstellt und startet einen neuen Portainer-Container basierend auf dem aktualisierten Image und verwendet weiterhin das vorhandene portainer_data-Volume.

Nachdem du diese Schritte ausgeführt hast, sollte der aktualisierte Portainer-Container nun laufen. Du kannst auf die Portainer-Web-Oberfläche zugreifen und überprüfen, ob die Aktualisierung erfolgreich war, indem du im Portainer-Dashboard auf „About“ (Über) klickst und die angezeigte Version überprüfst.

Es ist wichtig, regelmäßig nach Aktualisierungen für Portainer und andere Docker-Images zu suchen, um von Bugfixes, Sicherheitspatches und neuen Funktionen zu profitieren. Achte darauf, dass du vor der Aktualisierung von Portainer oder anderen Diensten ein Backup deiner Daten erstellst, um möglichen Datenverlust zu vermeiden.