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 Befehldocker stop
oderdocker-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.
Erstelle ein neues Administratorkonto, indem du ein Passwort deiner Wahl festlegst und auf „Create user“ klickst. Anschließend wähle „Get Started“.
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.
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:
- 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.
- Lade das neueste Portainer-Image herunter:
docker-compose pull
Durch diesen Befehl wird das neueste verfügbare Image von portainer/portainer-ce
heruntergeladen.
- 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.