Inhaltsverzeichnis

  1. Docker Installation
  2. Überprüfen der Docker Compose Installation
  3. Portainer Installation und Konfiguration
  4. Aufruf der Portainer-Weboberfläche über HTTPS
  5. Backup von Portainer erstellen
  6. Abschluss

Das Docker-Ökosystem ist ein mächtiges Ensemble aus diversen Werkzeugen und Diensten, die das Erstellen, Verteilen und Ausführen von Anwendungen in Containern ermöglichen. Diese Containerisierung erlaubt es, Anwendungen und ihre Abhängigkeiten als portable, leichtgewichtige Pakete zu verpacken, die auf nahezu jeder Maschine laufen können, unabhängig von der Umgebung. In diesem Tutorial begleiten wir Sie durch die Schritte zur Installation von Docker, Docker Compose und Portainer.

  1. Docker ist die Kernkomponente des Ökosystems, die das Erstellen und Ausführen von Containern ermöglicht. Mit Docker können Entwickler und Systemadministratoren Anwendungen in isolierten Umgebungen verpacken, was die Konsistenz über verschiedene Entwicklung, Testing und Produktionsumgebungen hinweg sicherstellt. Dies wiederum reduziert Konflikte und fördert die schnelle Bereitstellung und Skalierbarkeit von Anwendungen.
  2. Docker Compose ist ein ergänzendes Tool, das das Definieren und Verwalten von Multi-Container-Docker-Anwendungen erleichtert. Mit nur wenigen Befehlen können Sie die gesamte Anwendungsstack erstellen, starten, stoppen und herunterfahren. Docker Compose interpretiert YAML-Dateien, in denen die Services, Netzwerke und Volumes Ihrer Anwendung definiert sind, und ermöglicht es Ihnen, komplexe Anwendungen mit einfacheren Befehlen zu verwalten.
  3. Portainer ist ein leistungsfähiges, grafisches Management-Tool, das die Verwaltung von Docker-Containern, -Services, -Anwendungsstapeln und -Clustern intuitiv und benutzerfreundlich gestaltet. Mit einer übersichtlichen Benutzeroberfläche ermöglicht Portainer selbst Einsteigern einen leichten Einstieg in die Containerverwaltung und bietet erfahreneren Nutzern tiefe Einblicke und Kontrollmöglichkeiten.

Die Kombination dieser Werkzeuge schafft eine robuste, flexible und benutzerfreundliche Umgebung, die die Auslieferung und das Management von Anwendungen erheblich vereinfacht. Sie werden erleben, wie Sie durch die Verwendung von Docker, Docker Compose und Portainer, Ihre Deployment-Prozesse optimieren, die Systemressourcen effizienter nutzen und die Gesamtverwaltung Ihrer Anwendungen vereinfachen können. Durch die Modularität und Portabilität, die durch die Containerisierung ermöglicht wird, sind Sie nun in der Lage, aufkommende Herausforderungen im Software-Lebenszyklus besser zu bewältigen und die Gesamteffizienz Ihrer Entwicklungs- und Betriebsprozesse deutlich zu steigern.

Docker Installation

Stellen Sie über den Remote Desktop Manager eine Verbindung zu Ihrem Server her. Um den Befehl einzufügen, kopieren Sie diesen zunächst, klicken dann mit der rechten Maustaste in das Terminalfenster und wählen im Kontextmenü die Option ‚Einfügen – engl. Paste‘ aus. Anschließend geben Sie bitte Ihr gewähltes Passwort ein und bestätigen die Eingabe mit Enter.

curl -sSL https://get.docker.com | sh
Ausführung des Curl-Befehls zur Installation von Docker und Docker Compose auf Ihrem Server

Nach Abschluss der Installation sollte Ihre Bildschirmanzeige wie im folgenden Screenshot dargestellt aussehen:

Screenshot der erfolgreichen Installation: Ihre Bildschirmanzeige sollte nun wie abgebildet aussehen

Um dem aktuell angemeldeten Benutzer die notwendigen Berechtigungen zu erteilen, sodass Docker ohne die Verwendung von sudo ausgeführt werden kann, ist es erforderlich, diesen Benutzer zur Docker-Gruppe hinzuzufügen. Hierzu dient der folgende Befehl:

sudo usermod -aG docker $USER
Screenshot: Befehl zur Hinzufügung des aktuellen Benutzers zur Docker-Gruppe, um Docker ohne sudo ausführen zu können

Durch die Ausführung dieses Befehls wird der aktuelle Benutzer der Docker-Gruppe hinzugefügt, wodurch fortan die Ausführung von Docker-Befehlen ohne sudo ermöglicht wird.

Überprüfen der Docker Compose Installation

Da Docker Compose durch den zuvor ausgeführten Curl-Befehl bereits installiert wurde, können Sie nun die korrekte Installation von Docker Compose überprüfen. Führen Sie den folgenden Befehl aus, um die installierte Version von Docker Compose zu bestätigen:

docker compose version

Nach der Eingabe des Befehls sollte die aktuelle Version von Docker Compose im Terminal angezeigt werden. Dies bestätigt, dass Docker Compose korrekt installiert und betriebsbereit ist.

Screenshot: Überprüfung der erfolgreichen Docker Compose Installation durch Anzeige der installierten Version

Portainer Installation und Konfiguration

Portainer bietet eine einfache und intuitive Weboberfläche zur Verwaltung von Docker.

Ziehen Sie das neueste Portainer-Image:

Der Befehl sudo docker pull portainer/portainer-ce:latest ist ein Docker-Befehl, der das neueste Image von Portainer Community Edition aus dem Docker Hub herunterlädt. Dieser Schritt ist notwendig, um sicherzustellen, dass Sie die aktuellste Version von Portainer installieren. Der Teil portainer/portainer-ce:latest spezifiziert, welches Image und welche Version (in diesem Fall die neueste Version) heruntergeladen werden soll. Nachdem dieses Image heruntergeladen wurde, können Sie einen Container daraus erstellen und Portainer auf Ihrem System starten.

sudo docker pull portainer/portainer-ce:latest
Screenshot: Installation und Konfiguration von Portainer für eine einfache Docker-Verwaltung über die grafische Benutzeroberfläche

Starten Sie Portainer:

Es gibt zwei Möglichkeiten die GUI-Oberfläche von Portainer aufzurufen. Entweder über einen selbst gewählten HTTP Port oder über HTTPS via Port 9443.

Der folgende Befehl, konfiguriert Portainer so, dass es über den Port 9000 zugänglich ist, wobei die Kommunikation über das HTTP-Protokoll erfolgt. Dies bedeutet, dass Sie auf die Portainer-Weboberfläche über eine unverschlüsselte HTTP-Verbindung zugreifen können.

sudo docker run -d -p 8000:8000 -p 9000:9000 --name portainer --restart unless-stopped -v /var/run/docker.sock:/var/run/docker.sock -v /opt/portainer:/data portainer/portainer-ce:latest
Screenshot: Start von Portainer für die Bereitstellung der grafischen Benutzeroberfläche zur Docker-Verwaltung

Aufruf der Portainer-Weboberfläche über HTTP:

Der obige Befehl macht Portainer über Port 9000 zugänglich. Mit -p 9000:9000 wird der Port 9000 des Hosts auf den Port 9000 des Portainer-Containers weitergeleitet, wodurch Sie über

http://[Lokale_IP_Adresse_des_Raspberry Pi's]:9000

auf die Portainer-Weboberfläche zugreifen können. Die Portangabe 8000:8000 beim Starten des Portainer-Containers wird für den Portainer Edge Agent verwendet. Der Edge Agent ist eine Komponente, die in Umgebungen genutzt wird, wo direkte Verbindung zum Docker Daemon nicht möglich oder gewünscht ist. Der Port 8000 wird verwendet, um eine sichere Tunnelverbindung zwischen dem Portainer Server und dem Edge Agent zu etablieren, wodurch eine Fernverwaltung von Docker-Umgebungen ermöglicht wird, die sich hinter Firewalls oder in anderen Netzwerken befinden. Die Portangabe 8000:8000 ist nicht erforderlich, wenn Sie den Portainer Edge Agent nicht verwenden. Wenn Sie lediglich Portainer zur Verwaltung Ihrer Docker-Instanzen auf demselben Server (Raspberry Pi) nutzen, können Sie diese Portweiterleitung weglassen.

Sie werden nun aufgefordert, ein Administratorkennwort zu erstellen. Vergeben Sie ein mindestens 12-stelliges Passwort, um die Sicherheit zu gewährleisten. Geben Sie Ihr gewähltes Passwort in das Feld ein und bestätigen Sie es durch erneute Eingabe im zweiten Feld. Klicken Sie dann auf „Create User“, um den Administrationsbenutzer zu erstellen und fortzufahren.

Screenshot: Zugriff auf die Portainer-Web-Oberfläche über den Browser nach erfolgreicher Einrichtung
Screenshot: Erstmaliger Login in Portainer

Aufruf der Portainer-Weboberfläche über HTTPS

Im lokalen Heimnetzwerk ist die Verwendung von HTTPS für Portainer in der Regel nicht unbedingt erforderlich, aber es wird aus Sicherheitsgründen empfohlen. HTTPS bietet eine zusätzliche Sicherheitsebene, indem es die Daten, die zwischen Ihrem Browser und dem Portainer-Server übertragen werden, verschlüsselt. Dies hilft, Ihre Daten vor möglichen Abhörversuchen innerhalb Ihres Netzwerks zu schützen. Wenn Ihr Netzwerk sicher ist und nur vertrauenswürdigen Personen Zugriff gewährt wird, kann HTTP ausreichend sein, aber HTTPS ist immer die sicherere Wahl.

Wichtig: Wenn Sie Ihre Verbindung von http auf https ändern, dann legen Sie bitte zuvor unbedingt ein Backup, wie nachfolgend erläutert, für Ihre Portainer Instanz an da diese wieder wiederhergestellt werden muss.

Ich verwende selbst signierte Zertifikate und habe diese auf meinem Linux Mint Rechner erstellt. Um selbstsignierte SSL-Zertifikate zu erstellen und in Portainer einzubinden, können Sie den folgenden Prozess auf Ihrem Linux Mint System durchführen:

1. Erstellen des selbstsignierten Zertifikats:

  • Öffnen Sie ein Terminal.
  • Verwenden Sie OpenSSL, um ein selbstsigniertes Zertifikat zu erstellen. Führen Sie dazu den Befehl aus:
openssl req -x509 -newkey rsa:4096 -keyout key.pem -out cert.pem -days 365

Sie werden aufgefordert, einige Informationen einzugeben und ein Passwort für den privaten Schlüssel festzulegen.

2. Entfernen des Passworts vom privaten Schlüssel:

Das Passwort des privaten Schlüssels wird entfernt, um die Automatisierung zu erleichtern. Wenn ein Passwort gesetzt ist, muss dieses bei jedem Start des Servers oder der Anwendung, die das Zertifikat verwendet, manuell eingegeben werden. Dies kann besonders bei automatischen Neustarts oder in einem Container-Umfeld problematisch sein. Durch das Entfernen des Passworts kann der Prozess ohne menschliches Eingreifen erfolgen, was für Serveranwendungen wie Portainer wichtig ist.

  • Um das Passwort vom privaten Schlüssel zu entfernen, führen Sie aus:
openssl rsa -in key.pem -out key.pem

3: Zertifikate auf den Server übertragen

Kopieren Sie die Zertifikate vom lokalen Rechner auf den Server:

scp -i ~/.ssh/ssh_key "/path/to/cert.pem" user@server:/home/user/cert.pem
scp -i ~/.ssh/ssh_key "/path/to/key.pem" user@server:/home/user/key.pem

4: Zertifikate an die richtigen Orte verschieben

Melden Sie sich auf dem Server per SSH an und verschieben Sie die Zertifikate:

sudo mv /home/user/cert.pem /etc/ssl/certs/portainer.crt
sudo mv /home/user/key.pem /etc/ssl/private/portainer.key

5: Existierenden Portainer-Container stoppen und entfernen

Stoppen und entfernen Sie den bestehenden Portainer-Container:

sudo docker stop portainer
sudo docker rm portainer

6: Portainer mit neuen TLS-Zertifikaten neu starten

Starten Sie Portainer mit den neuen TLS-Zertifikaten neu:

sudo docker run -d \
  -p 9443:9443 \
  --name portainer \
  --restart unless-stopped \
  -v /var/run/docker.sock:/var/run/docker.sock \
  -v /opt/portainer:/data \
  -v /etc/ssl/certs/portainer.crt:/certs/portainer.crt \
  -v /etc/ssl/private/portainer.key:/certs/portainer.key \
  -e TLS_CERT_FILE=/certs/portainer.crt \
  -e TLS_KEY_FILE=/certs/portainer.key \
  portainer/portainer-ce:latest

7: Überprüfen, ob der Portainer-Container läuft

Überprüfen Sie, ob der Portainer-Container läuft:

docker ps

8: Auf Portainer zugreifen

Öffnen Sie den Browser und gehen Sie zu https://<IP-Adresse-des-Servers>:9443. Akzeptieren Sie die Warnung bezüglich des selbstsignierten Zertifikats, falls vorhanden.

9: Wiederherstellung aus dem Backup

Sie müssen nun Ihre Portainer-Konfiguration aus einem Backup wiederherstellen. Klicken Sie in der Portainer-Oberfläche auf „Upload backup file“ und wählen Sie die Option „Select file“ aus. Dort können Sie das zuvor erstellte Backup hochladen und die Wiederherstellung durchführen. Dies wird Ihre vorherige Konfiguration, inklusive Ihrer Stacks und Einstellungen, zurückbringen.

Wiederherstellung der Portainer-Konfiguration

Backup von Portainer erstellen

Es ist wichtig dass Sie in Portainer ein Backup über „Settings“ und dann „Backup“ erstellen, damit werden alle Konfigurationen gesichert. Dies umfasst die Einstellungen von Portainer, Benutzerdaten, Endpunktkonfigurationen und Registrierungseinstellungen. Wenn Sie Docker Compose-Code über Portainer deployen wie es in den kommenden Tutorials gehandhabt wird, so wird dieser Code in der Portainer-Datenbank gespeichert. Wenn Sie also ein Backup über die Backup-Funktion in Portainer erstellen, sind auch die Informationen über Ihre deployten Stacks enthalten, einschließlich des verwendeten Docker Compose-Codes. Es ist wichtig, regelmäßig Backups zu erstellen, besonders vor größeren Updates oder Änderungen, um sicherzustellen, dass Ihre Konfigurationen sicher sind und bei Bedarf wiederhergestellt werden können.

  1. Zugriff auf Portainer: Melden Sie sich bei Ihrem Portainer-Dashboard an.
  2. Navigieren zu den Einstellungen: Wählen Sie in der Seitenleiste die Option ‚Settings‘ (Einstellungen).
  3. Backup-Option finden: Scrollen Sie im Einstellungsmenü nach unten, bis Sie die Backup-Option finden.
  4. Backup erstellen: Klicken Sie auf den Button, um ein Backup zu starten. Portainer wird eine Sicherungsdatei Ihrer Konfiguration erstellen.
  5. Backup herunterladen: Sobald das Backup erstellt wurde, können Sie die Datei herunterladen. Speichern Sie diese an einem sicheren Ort.
Download der Portainer Backup Datei

Dieses Verfahren sichert Ihre Portainer-Konfiguration, inklusive aller Docker Compose-Dateien für Ihre Stacks, und stellt sicher, dass Sie Ihre Einstellungen bei Bedarf wiederherstellen können.

Abschluss

Sie haben erfolgreich das Docker-Ökosystem auf Ihrem System installiert und können nun Docker-Container über die Portainer-Weboberfläche verwalten. Für weitere Fragen oder Anregungen steht Ihnen das Kommentarfeld unter diesem Beitrag zur Verfügung, oder Sie können mich gerne über das Kontaktformular erreichen.

Schreibe einen Kommentar

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