Bereitstellung von Portainer CE in Docker für die Containerverwaltung | INTROSERV
EUR
european

EUR

usa

USD

German De
Ex. VAT Ex. VAT 0%

Bereitstellung von Portainer CE in Docker für die Containerverwaltung

Niveau: Anfänger
Dauer: ca. 30 Minuten
Ziel: Nach Abschluss dieser Anleitung verfügen Sie über ein vollständig konfiguriertes Portainer CE-Panel, das über HTTPS gesichert ist und mit dem Sie die Docker-Infrastruktur Ihres Servers verwalten können. Nach Abschluss dieser Anleitung verfügen Sie über ein vollständig konfiguriertes Portainer CE-Panel, das über HTTPS gesichert ist und mit dem Sie die Docker-Infrastruktur Ihres Servers verwalten können.

Einleitung

Die Docker-basierte Containerisierung hat sich zum Standard für die Serverinfrastruktur entwickelt und gewährleistet eine vorhersehbare Bereitstellung sowie eine effiziente Skalierung von Diensten. Wenn jedoch Dutzende von Containern laufen, wird die Verwaltung ausschließlich über die Befehlszeile unpraktisch. Portainer CE löst dieses Problem durch eine benutzerfreundliche Weboberfläche für die Docker-Verwaltung: Sie bietet Zugriff auf alle Container, deren Status, Protokolle und Ressourcen, und die Verwaltung erfolgt mit wenigen Klicks, ohne dass die Systemkontrolle verloren geht.

Vorbereitung des Servers

Vor der Installation muss sichergestellt werden, dass der Server für die Portainer-Bereitstellung bereit ist. Portainer selbst läuft als Container, daher muss lediglich Docker installiert sein.

Systemanforderungen:

  • Betriebssystem: Jede im Hosting verwendete Linux-Distribution (Ubuntu 20.04+, Debian 11+, CentOS/Rocky Linux 8+).
  • Rechte: Root-Zugriff oder die Möglichkeit, Befehle über sudo auszuführen.
  • Hardwareanforderungen: Mindestens 1 GB RAM und 10 GB freier Festplattenspeicher.
  • Netzwerkanforderungen: Offene Ports 8000 und 9443 für den Zugriff auf Portainer, Port 443 für die Reverse-Proxy-Konfiguration.

Docker-Verfügbarkeit prüfen

Stellen Sie über SSH eine Verbindung zum Server her. Überprüfen Sie zunächst, ob Docker installiert ist und ob der Daemon läuft:

docker --version sudo systemctl status docker

Wenn die Docker-Version angezeigt wird und der Status „aktiv“ (läuft) ist, kann der Schritt zur Docker-Installation übersprungen werden.

Docker installieren (falls erforderlich)

Auf neuen Servern ist Docker in der Regel nicht vorhanden. Um es zu installieren, führen Sie das Standardskript (für Debian/Ubuntu) aus:

curl -fsSL https://get.docker.com -o get-docker.sh sudo sh get-docker.sh sudo systemctl enable docker sudo systemctl start docker

Um das Docker-Compose-Plugin zu installieren (falls es im vorherigen Schritt nicht installiert wurde), führen Sie folgenden Befehl aus:

sudo apt-get install docker-compose-plugin # For Debian/Ubuntu # or sudo dnf install docker-compose-plugin # For CentOS/Rocky Linux

Überprüfen Sie die Version des installierten Docker Compose:

docker compose version

Bereitstellung von Portainer CE in Docker

Es gibt zwei Hauptmethoden, um Portainer auszuführen: über den Befehl „docker run“ (Schnellstart) und über die Datei „docker-compose.yml“ (praktisch für die Versionsverwaltung der Konfiguration).

Methode 1: Ausführung über „docker run“

Führen Sie den folgenden Befehl auf dem Server aus:

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

Info

Der Befehl wird mit „sudo“ ausgeführt, da der aktuelle Benutzer noch nicht zur Docker-Gruppe hinzugefügt wurde. Wenn Sie Docker später ohne „sudo“ nutzen möchten, fügen Sie den Benutzer der Docker-Gruppe hinzu:

sudo usermod -aG docker $USER

Nach Ausführung des Befehls müssen Sie sich abmelden und wieder anmelden oder Ihre Sitzung neu starten.

Erläuterung der Parameter:

  • -d – Den Container im Hintergrund ausführen.
  • -p 8000:8000 – Portweiterleitung für Edge-Agenten und Tunnel.
  • -p 9443:9443 – Portweiterleitung für die gesicherte Weboberfläche (HTTPS). Portainer generiert automatisch ein selbstsigniertes SSL-Zertifikat.
  • --name portainer – Weist dem Container einen aussagekräftigen Namen zu.
  • --restart=always – Richtlinie zum automatischen Neustart des Containers bei Ausfällen oder einem Neustart des Servers.
  • -v /var/run/docker.sock:/var/run/docker.sock – Bindet den Docker-Socket innerhalb des Portainer-Containers ein. Dadurch kann Portainer mit dem Docker-Daemon auf dem Host interagieren und diesen verwalten.
  • -v portainer_data:/data – Erstellt ein benanntes Volume zur Speicherung von Portainer-Daten (Benutzer, Einstellungen, Verbindungskonfigurationen).
  • portainer/portainer-ce:latest – Das Image mit der neuesten stabilen Version der Community Edition.

Methode 2: Ausführung über docker-compose

Um diese Methode zu verwenden, erstellen Sie ein Verzeichnis und eine Datei „docker-compose.yml“:

mkdir ~/portainer-docker cd ~/portainer-docker nano docker-compose.yml

Fügen Sie den folgenden Inhalt ein:

services: portainer: image: portainer/portainer-ce:latest container_name: portainer restart: always ports: - "8000:8000" - "9443:9443" volumes: - /var/run/docker.sock:/var/run/docker.sock - portainer_data:/data volumes: portainer_data:

Speichern Sie die Datei und führen Sie den folgenden Befehl aus:

docker compose up -d

Erststart und Einrichtung der Weboberfläche

Nachdem der Portainer-Container gestartet wurde, ist er über das Netzwerk erreichbar.

Schritt 1. Verbindung zur Weboberfläche herstellen

Öffnen Sie einen Browser und rufen Sie folgende Adresse auf: https://:9443.

Info

Da ein selbstsigniertes Zertifikat verwendet wird, zeigt der Browser eine Warnung an. Dies ist beim ersten Start normal. Sie müssen den Zugriff auf die Seite fortsetzen (klicken Sie beispielsweise auf „Risiko akzeptieren“ oder „Zur Seite weitergehen“).

Aufgrund der Verwendung eines selbstsignierten Zertifikats zeigt der Browser eine Warnung an. Sie müssen die Seite aufrufen.

Schritt 2. Benutzer anlegen

Auf der Registrierungsseite müssen Sie einen Benutzernamen angeben (empfohlen wird „admin“) und ein sicheres Passwort festlegen.

Tip

Das Passwort muss komplex sein, da es den vollständigen Zugriff auf die Containerverwaltung ermöglicht.

Schritt 3. Verbinden der Umgebung

Nach der Erstellung des Benutzers fordert Portainer Sie auf, Umgebungen zu verbinden. In diesem Schritt können Sie entweder den lokalen Docker verbinden (der dank des eingebundenen Sockets bereits verfügbar ist) oder über die Schaltfläche „Umgebungen hinzufügen“ mit dem Hinzufügen von Remote-Umgebungen fortfahren.

Remote-Umgebungen sind nützlich, wenn Sie mehrere Server über eine einzige Portainer-Oberfläche verwalten müssen: zum Beispiel beim Hinzufügen von Docker-Hosts in verschiedenen Rechenzentren oder von Servern mit Kubernetes. Die Verbindung wird über Portainer-Agenten oder über die API unter Verwendung von TLS-Zertifikaten hergestellt.

  • Wählen Sie die Option „Get Started“. Dies ist das Basisszenario für einen einzelnen Server.
  • Portainer erkennt den lokalen Docker-Socket automatisch. Er wird als „local“ angezeigt.
  • Klicken Sie darauf, um die Einrichtung abzuschließen.

Die Einrichtung ist abgeschlossen. Das Portainer-Dashboard (Hauptbildschirm) wird mit kurzen Statistiken zu Containern, Images, Volumes und Netzwerken geöffnet.

Hauptfunktionen von Portainer

Sehen wir uns die wichtigsten Bereiche der Benutzeroberfläche an, die für die täglichen Verwaltungsaufgaben genutzt werden.

Dashboard

Der Startbildschirm, der einen Überblick über die Gesamtsituation bietet: die Anzahl der laufenden und angehaltenen Container sowie die Anzahl der heruntergeladenen Images. Hier können Sie den Serverstatus schnell beurteilen.

Container

  • Der zentrale Verwaltungsbereich. Zeigt eine Liste aller Container an.
  • Container-Verwaltung: Starten, Stoppen, Neustarten und Löschen eines Containers mit einem einzigen Klick.
  • Protokolle: Über die Registerkarte „Protokolle“ können Sie die Containerprotokolle in Echtzeit einsehen.
  • Untersuchen: Zeigt vollständige Informationen zum Container im JSON-Format an: Umgebungsvariablen, Einhängepunkte, Netzwerkeinstellungen.
  • Statistiken: Diagramme zur CPU-, Speicher- und Netzwerkauslastung für jeden Container. Hilft bei der Ermittlung des Ressourcenverbrauchs einzelner Dienste.
  • Exec-Konsole: Möglichkeit, ein Webterminal innerhalb eines Containers zu öffnen, um Befehle auszuführen.

Stacks

Implementierung von Docker Compose in der Weboberfläche. Ermöglicht das Hochladen oder Erstellen von YAML-Dateien direkt über den Browser zur Bereitstellung von Anwendungen mit mehreren Containern.

Images

  • Verwaltung von Docker-Images.
  • Pull: Möglichkeit, Images (z. B. nginx:latest oder mysql:8.0) direkt über die Oberfläche herunterzuladen.
  • Entfernen: Bereinigung nicht verwendeter Images, um Speicherplatz freizugeben.

Volumes

Verwaltung persistenter Datenvolumes. Zeigt vorhandene Volumes, deren Zuordnung zu Containern und den von ihnen belegten Speicherplatz an. Von entscheidender Bedeutung für Datenbanken und Benutzerdaten.

Netzwerke

Ermöglicht das Erstellen isolierter Netzwerke für die Interaktion zwischen Containern.

Änderungen rückgängig machen (Portainer entfernen)

Wenn Sie Portainer und seine Daten vollständig vom Server entfernen müssen, führen Sie folgende Schritte aus:

1. Stoppen und entfernen Sie den Portainer-Container:

sudo docker stop portainer sudo docker rm portainer

2. Entfernen Sie das Portainer-Datenvolume (Warnung: Dieser Vorgang ist irreversibel):

sudo docker volume rm portainer_data

Danger

Das Löschen des Volumes „portainer_data“ führt zum unwiderruflichen Verlust aller Benutzer, Einstellungen und Konfigurationen von Portainer.

3. Entfernen Sie das Portainer-Image (optional):

sudo docker rmi portainer/portainer-ce:latest

Sicherheit und Empfehlungen

Für den Produktiveinsatz ist eine zusätzliche Sicherheitskonfiguration von Portainer erforderlich.

Verwendung eines Reverse-Proxys (Nginx/Apache)

Es wird empfohlen, eine Subdomain (z. B. portainer.domain.com) einzurichten und den Datenverkehr über Nginx zu leiten. Dies bietet folgende Vorteile:

  • Verwendung eines gültigen SSL-Zertifikats (kostenlos von Let’s Encrypt oder ein kostenpflichtiges SSL, z. B. von Sectigo).
  • Zentrale Zugriffsprotokollierung.
  • Möglichkeit zur Konfiguration einer zusätzlichen Authentifizierung.

1. Installation und Konfiguration von Nginx

Installieren Sie Nginx:

sudo apt install -y nginx # For Debian/Ubuntu # or sudo dnf install -y nginx # For CentOS/Rocky Linux

Erstellen Sie eine Konfigurationsdatei für Portainer:

sudo nano /etc/nginx/sites-available/portainer.conf

Fügen Sie die folgende Konfiguration hinzu und ersetzen Sie durch Ihre Domain, die auf die IP-Adresse des Servers verweist:

server { listen 80; server_name <YOUR_DOMAIN>; location / { proxy_pass https://localhost:9443; proxy_http_version 1.1; proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection 'upgrade'; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Forwarded-Proto $scheme; proxy_cache_bypass $http_upgrade; # Timeouts for long operations proxy_connect_timeout 600; proxy_send_timeout 600; proxy_read_timeout 600; send_timeout 600; } }

Aktivieren Sie die Konfiguration:

sudo ln -s /etc/nginx/sites-available/portainer.conf /etc/nginx/sites-enabled/

Überprüfen Sie die Nginx-Konfiguration:

sudo nginx -t

Wenn die Überprüfung erfolgreich ist, starten Sie Nginx neu:

sudo systemctl restart nginx

2. HTTPS einrichten (empfohlen)

Installieren Sie Certbot:

sudo apt install -y certbot python3-certbot-nginx

Beziehen Sie ein SSL-Zertifikat:

sudo certbot --nginx -d <your_domain></your_domain>

Ersetzen Sie durch Ihre Domain.

Geben Sie während der Installation Ihre E-Mail-Adresse ein, zum Beispiel admin@, und drücken Sie dann zweimal Y.

Aktivieren Sie die automatische Zertifikatsverlängerung:

sudo systemctl list-timers | grep certbot

Firewall-Konfiguration

Der direkte Zugriff auf Portainer-Ports sollte eingeschränkt werden. Erlauben Sie den Zugriff auf die Ports 8000 und 9443 nur von vertrauenswürdigen IP-Adressen aus.

Danger

Seien Sie vorsichtig mit den Firewall-Regeln. Eine falsche Konfiguration kann Ihren Zugriff auf den Server blockieren.

Beispiel für UFW:

sudo ufw allow from 192.168.1.0/24 to any port 9443 proto tcp sudo ufw deny 9443

Dabei ist 192.168.1.0/24 das Subnetz der vertrauenswürdigen IP-Adressen.

Regelmäßige Updates

Es wird empfohlen, die Veröffentlichung neuer Portainer-Versionen zu verfolgen und den Container rechtzeitig zu aktualisieren, um potenzielle Sicherheitslücken zu beseitigen.

Funktionsprüfung

Um zu überprüfen, ob Portainer ordnungsgemäß funktioniert, führen Sie die folgenden Schritte durch.

  1. Sichtprüfung: Vergewissern Sie sich im Abschnitt „Container“, dass der Portainer-Container den Status „läuft“ aufweist.
  2. Erstellen eines Test-Containers:
    • Wechseln Sie zum Abschnitt „Container“ und klicken Sie auf die Schaltfläche „Container hinzufügen“.
    • Geben Sie im Feld „Name“ test-nginx ein.
    • Geben Sie im Feld „Image“ „nginx:alpine“ ein.
    • Geben Sie im Abschnitt „Portzuordnung“ den Host-Port 8080 und den Container-Port 80 an.
    • Klicken Sie auf „Container bereitstellen“.
  3. Barrierefreiheitsprüfung:
    • Warten Sie, bis der Container mit dem Status „Running“ in der Liste erscheint.
    • Öffnen Sie einen Browser und rufen Sie http://<IHRE_IP-ADRESSE>:8080 auf. Die Nginx-Begrüßungsseite sollte angezeigt werden.
  4. Verwaltungsprüfung:
    • Suchen Sie in Portainer den Container „test-nginx“ und klicken Sie auf die Schaltfläche „Stop“.
    • Aktualisieren Sie die Nginx-Seite im Browser – der Zugriff sollte nicht mehr möglich sein.
    • Klicken Sie auf „Start“ – der Zugriff auf die Seite sollte wiederhergestellt sein.

Fehlerbehebung

Problem 1: Die Portainer-Weboberfläche unter https://:9443lässt sich nicht öffnen

Mögliche Ursache: Die Firewall blockiert Port 9443.
Lösung: Überprüfen Sie die Firewall-Regeln und stellen Sie sicher, dass der Port offen ist. Für UFW: sudo ufw status | grep 9443.

Problem 2: Fehler „Verbindung zum Docker-Daemon nicht möglich“ beim Ausführen von Docker-Befehlen.

Mögliche Ursache: Der Docker-Daemon läuft nicht oder dem Benutzer fehlen die Berechtigungen.
Lösung: Starten Sie den Daemon: `sudo systemctl start docker`. Wenn Sie den Benutzer zur Gruppe „docker“ hinzugefügt haben, melden Sie sich ab und wieder an.

Problem 3: Der Portainer-Container startet nicht und wird sofort beendet (Status „exited“).

Mögliche Ursache: Portkonflikt oder ein beschädigtes Image.
Lösung: Überprüfen Sie, ob Port 9443 von einer anderen Anwendung belegt ist: `sudo ss -tulpn | grep 9443`. Versuchen Sie, den Port neu zuzuweisen, und starten Sie den Container neu: `sudo docker restart portainer`.

Fazit

Portainer CE bietet ein effektives Tool zur visuellen Überwachung und Verwaltung von Docker-Containern. Die Möglichkeit, den Status von Containern schnell zu beurteilen, Diagramme zum Ressourcenverbrauch zu analysieren und typische Vorgänge ohne Verbindung über SSH durchzuführen, verkürzt die Reaktionszeit bei Vorfällen und vereinfacht die tägliche Administration.

Dieses Tool kann nützlich sein, wenn es erforderlich ist, Entwicklern oder weniger erfahrenen Mitarbeitern eingeschränkten Zugriff auf die Containerverwaltung zu gewähren, ohne ihnen direkten Zugriff auf die Server-Befehlszeile zu gewähren. Portainer CE ist eine Standardlösung zur Visualisierung der Container-Infrastruktur und wird für den Einsatz auf Servern empfohlen.

---

Dokumentversion: 1 .1
Letzte Aktualisierung: März 2026
Verantwortlicher: Team fürtechnische Dokumentation

VAT

  • Other

    Ex. VAT

    0%
  • austria

    Austria

    20%
  • Belgium

    Belgium

    21%
  • Bulgaria

    Bulgaria

    20%
  • Croatia

    Croatia

    25%
  • Cyprus

    Cyprus

    19%
  • Czech Republic

    Czech Republic

    21%
  • Denmark

    Denmark

    25%
  • Estonia

    Estonia

    22%
  • France

    France

    20%
  • Finland

    Finland

    24%
  • Germany

    Germany

    19%
  • Greece

    Greece

    24%
  • Hungary

    Hungary

    27%
  • Ireland

    Ireland

    23%
  • Italy

    Italy

    22%
  • Latvia

    Latvia

    21%
  • Lithuania

    Lithuania

    21%
  • Luxembourg

    Luxembourg

    17%
  • Malta

    Malta

    18%
  • Netherlands

    Netherlands

    21%
  • Poland

    Poland

    23%
  • Portugal

    Portugal

    23%
  • Romania

    Romania

    19%
  • Slovakia

    Slovakia

    20%
  • Slovenia

    Slovenia

    22%
  • Spain

    Spain

    21%
  • Sweden

    Sweden

    25%
  • USA

    USA

    0%
european
states
  • germany
  • Español
  • Italiano
  • Poland
  • Русский
  • Slovenski
  • Türkçe
  • ukraine
  • kingdom
  • French
  • Hrvatska
  • Other
  • Austria
  • Belgium
  • Bulgaria
  • Croatia
  • Cyprus
  • Czech Republic
  • Denmark
  • Estonia
  • Finland
  • France
  • Germany
  • Greece
  • Hungary
  • Ireland
  • Italy
  • Latvia
  • Lithuania
  • Luxembourg
  • Malta
  • Netherlands
  • Poland
  • Portugal
  • Romania
  • Slovakia
  • Slovenia
  • Spain
  • Sweden
  • USA