Portainer auf der Synology DiskStation

Bei Portainer handelt es sich um eine Weboberfläche zur grafischen Bedienung des Docker Dienstes die selbst als Docker Container daher kommt und somit in der Regel einfach und schnell auf jedem Docker Host installiert werden kann.

Wie ihr dies, wenn ihr wollt sogar gänzlich ohne Kommandozeile, auf einer Synology DiskStation mit DMS 6 bewerkstelligt, zeige ich euch in diesem Tutorial. 

Hinweis

Das Docker Paket auf der Synology DiskStation kommt bereits mit einer Weboberfläche, die in den DSM integriert ist. Allerdings ist der Funktionsumfang relativ beschränkt. So lassen sich hier einige Funktionen schlicht nicht konfigurieren. Aus diesem Grund empfehle ich grundsätzlich die Nutzung von Portainer. 

Schritt 1 - Vorbereitungen

Ich gehe mal davon aus, dass euer Docker Dienst auf der Disk Station bereits läuft. Prüfen könnt ihr dies ganz einfach über die „Paketverwaltung“. Oder falls ihr Zugriff darauf habt auch über die Kommandozeile:

docker info

Weiterhin benötigen wir ein Volume oder einen Ordner den wir zur Speicherung der Konfiguration des Portainer Containers beim Starten in diesen einbinden. Auf der DiskStation verwende ich einen Ordner. Dieser lässt sich ganz einfach über die FileStation anlegen. In meinem Beispiel heißt der Ordner „portainer_data“ und liegt auf volume1. Der Pfad im Filesystem der DiskStation lautet daher:

/volume1/docker/portainer_data

Schritt 2 - Portainer Container starten

Jetzt gilt es den Portainer Container zu erstellen und zu starten. Wer Zugriff auf die Kommandozeile der DiskStation hat, erledigt dies durch den folgenden „docker run“-Befehl:

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

Zur Erläuterung hier die einzelnen Teile des Befehls kurz erklärt:

  • docker run
    …zum Starten des Containers
  • -d
    …Container läuft im „detached mode“
  • -p 9000:9000
    …öffnet den Port 9000 für den Zugriff auf die Weboberfläche
  • -name portainer
    …setzt den Namen des Containers
  • -restart always
    …aktiviert den automatischen Neustart des Containers bei Fehler
  • -v /var/run/docker.sock:/var/run/docker.sock
    …bindet die angesprochene docker.sock-Datei ein
  • -v /volume1/docker/portainer_data:/data
    …bindet das Data-Verzeichnis ein
  • portainer/portainer-ce
    …verwendetes Image für den Container

Hinweis

Wer vor hat auf dem selben Host wie den Portainer Container später auch den ioBroker Container laufen zu lassen, dem empfehle ich den Port für den Zugriff auf die Weboberfläche um zu leiten, da der Port 9000 auch vom ioBroker verwendet wird.

Wenn ihr also statt „-p 9000:9000“ lieber „-p 8889:9000“ verwendet, dann wird die Weboberfläche auf dem Port 8889 geöffnet und ihr lauft später nicht in einen Portkonflikt. Der Zugriff auf die Weboberfläche (siehe unten) erfolgt dann natürlich über http://[IP_oder_Name_der_DiskStation]:8889

Wer den Container auf der DiskStation ohne Kommandozeile in Betrieb nehmen will, der kann den ersten Start des Containers auch über den Synology Aufgabenplaner im DSM (“Systemsteuerung > Aufgabenplaner”) initiieren. Dazu legen wir einfach eine neue “geplante Aufgabe > benutzerdefiniertes Skript” an. Im Register “Allgemein” geben wir dem Vorgang einen Namen und lassen den Benutzer unter dem der Befehl ausgeführt wird auf “root”. Den Haken “Aktiviert” entfernen wir:

Auf der Registerkarte “Zeitplan” können wir zu Sicherheit “Am folgenden Datum ausführen” auswählen und ein Datum aus der Vergangenheit konfigurieren.

Auf der Registerkarte “Aufgabeneinstellungen” kopieren wir den oben aufgeführten Startbefehl in das Feld unter “Benutzerdefiniertes Skript”. Mit OK wird gespeichert und die Aufgabe ist erstellt:

Die neu erstellte Aufgabe können wir nun auswählen und über den Button “Ausführen” den Container starten.

Anschließend wird der Container gestartet. Dies sollte nicht allzu lange dauern. Um zu überprüfen ob der Container korrekt gestartet ist können wir einen kurzen Blick in die im DSM integrierte Docker Oberfläche werfen.  Unter Container sollte jetzt ein Container mit dem Namen „Portainer“ laufen.

Analog zur Prüfung über den Disk Station Manager kann man natürlich auch über die Kommandozeile auf laufende Container prüfen:

docker inspect portainer

In der folgenden Ausgabe sollte, relativ weit oben, eine Zeile mit „Status: running“ zu finden sein. Diese Zeigt an, dass der Container korrekt angelegt wurde und sich im erwarteten Status befindet.

Schritt 3 - Zugriff und Einrichtung der Weboberfläche

Nachdem der Container gestartet ist, ist die neue Weboberfläche unter folgender Adresse erreichbar:

http://[IP_oder_Name_der_DiskStation]:9000

Beim ersten Aufruf möchte Portainer einen Benutzer und ein Kennwort zum Schutz anlegen. Die Daten können natürlich frei gewählt werden.

Nachdem der erste Benutzer angelegt ist, möchte Portainer wissen welche Instanz wir damit verwalten wollen. Da wir den lokalen Host verwalten möchten wählen hier “Local” aus und bestätigen mit “Connect”

Dann gelangen wir schließlich auf die Übersichtsseite der Portainer-Weboberfläche. Unten sehen wir den Host (local) mit einem grünen Symbol (up) daneben. Dies bedeutet, dass die Verbindung zur Docker-Instanz erfolgreich hergestellt wurde.

Unser Portainer ist nun einsatzbereit.

Bonus - Portainer aktualisieren

Wie bei jeder Software erhält natürlich auch der Portainer regelmäßig Updates. Diese werden, wie bei Docker üblich über die Aktualisierung des Docker Images gemacht und sind fix erledigt. Ob ein Update für Portainer vorliegt sehen wir in der Portainer Weboberfläche. 

Der Updateprozess für einen Container gestaltet sich in der Regel nach folgendem Muster: 

1. Löschen des alten Containers

2. Laden der neuen Image Version 

3. Erstellen des neuen Containers

Da wir ja unsere Konfigurationsdaten für den Portainer in das Verzeichnis „portainer_data“ ausgelagert haben, erfolgt das Update (natürlich) ohne Datenverlust und der Portainer muss anschließend nicht wie ab Schritt 3 beschrieben erneut eingerichtet werden.

Beginnen wir also mit dem Löschen des alten Containers. Dazu nutzen wir die im DSM eingebaute, funktionsreduzierte Administrationsoberfläche für Docker.

Unter dem Menüpunkt „Container“ finden wir unseren Portainer Container und stoppen ihn. Über den Menüpunkt „Aktion“ > „Löschen“ wird der Container entfernt.   

Damit wir beim Neuerstellen des Containers auch wirklich ein frisch heruntergeladenes, aktuelles Image verwenden, entfernen wir auch noch das Portainer Docker Image. Dazu wechseln wir in dem Menüpunkt „Image“, markieren das Portainer Image und klicken den „Löschen“-Button.  

Optional können wir das aktuelle Image nun noch über den Menüpunkt „Registrierung“ auf die DS herunterladen. Die Klickerei können wir us aber auch sparen, da der Docker Dienst dies beim Erstellen des Containers automatisch erledigt wenn das Image lokal noch nicht zur Verfügung steht.  

Was nun noch bleibt ist das Neuanlegen bzw. Starten des neuen Portainer Containers. Dies erfolgt wie in Schritt 2 beschrieben entweder über die Kommandozeile oder den Aufgabenplaner der Disk Station. Anschließend können wir die Weboberfläche neu laden und wie gewohnt darauf zugreifen.  

Das sollte es zu diesem Thema erst einmal gewesen sein. Bei Fragen und Anregungen nutzt gerne die Kommentare oder kontaktiert mich über einen der öffentlichen Kanäle wie z.B. über das ioBroker Forum oder den ioBroker Discord Channel.

Grundsätzlich biete ich keinen persönlichen Support per Messenger bzw. E-Mail an. Fragen sollten meiner Meinung nach immer öffentlich gestellt und beantwortet werden, damit auch andere User mit der selben Frage Zugriff auf die Antworten bekommen. 🙂 Falls ihr mal irgendwo keine Antwort bekommt, nutzt gerne das Kontaktformular und macht mich auf euren Kommentar, Post, Beitrag oder Thread aufmerksam! Danke.

MfG,
André

Änderungshistorie

2021-05-03 Bonus-Teil hinzugefügt – Portainer aktualisieren

2021-01-10 Aktualisierung der Anleitung auf das neue Portianer Image (portianer/portainer-ce)

2020-12-28 Überarbeitung des Tutorials im Zuge der Umstrukturierung.

2020-09-15 Überarbeitung und Umzug von buanet.de/tutorials zu smarthome.buanet.de