Die Synology Diskstation kann neben der Dateisynchronisierung auch als Heimserver zum Ausführen verschiedener Webapps als Docker-Container genutzt werden. Zur Verwaltung der Docker-Container kann man entweder das Synology-Paket „Docker“ (bis einschließlich DSM 7.1) bzw. „Container Manager“ (ab DSM 7.2) oder die Open-Source Software „Portainer“ verwenden. In diesem Artikel wird erklärt, wie man Portainer auf der Diskstation installiert.
NEU Container Manager ab DSM 7.2
Projekt erstellen
Ordner anlegen

Öffne die „File Station“ in der DSM-Oberfläche.
- Lege im Hauptverzeichnis im Ordner
docker
einen Unterordnerportainer
an. - Im Ordner
portainer
legst du zwei weitere Unterordner an:data
: Hier wird Portainer später seine eigenen Daten und Konfigurationen ablegen.docker_compose_file
: Diesen Ordner werden wir gleich im „Container Manager“ als Speicherort für die von uns genutztedocker-compose.yml
angeben. Damit kannst du Portainer bei Bedarf unkompliziert neu aufsetzen.
Neues Projekt erstellen

Öffne die Anwendung „Container Manager“ auf deiner Synology Diskstation.
- (1) Klicke links auf den Menüpunkt „Projekt“.
- (2) Wähle im rechten Bereich den Button „Erstellen“, um ein neues Projekt zu beginnen.
Projekt – Allgemeine Einstellungen

Konfiguriere das neue Projekt folgendermaßen:
- (1) Gib im Feld „Projektname“ den Namen des Projekts (auch „Stack“ genannt) ein, z. B.
portainer
. - (2) Wähle mit dem Button „Pfad festlegen“ den eben erstellen Ordner
/docker/portainer/docker_compose_file
als Ablageort für die Konfigurationsdatei aus. - (3) Im Dropdownfeld „Quelle“ wählst du die Option
docker-compose.yml erstellen
. - (4) Dann fügst du im großen Textfeld folgende Docker-Konfiguration hinzu, die du folgendermaßen anpasst:
- Zeile 7: Vergib für das Hostsystem einen beliebigen Port oder nimm den hier gezeigten Beispiel-Port
39351
. Der Docker-Port ist fest und wird vom Docker-Image vorgegeben. Beachte folgendes Schema:- hostsystem_port:docker_port
Beispiel:- 39351:9443
- Zeile 10: Gib den Ordnerpfad für die Verzeichnisbindung (bind mount) aus Schritt 1 in dieser Form ein:
- /pfad/zum/ordner:/data
Wenn du die Ordnerbenennung genau wie in Schritt 1 gemacht hast, dann also:- /volume1/docker/portainer/data:/data
- Zeile 7: Vergib für das Hostsystem einen beliebigen Port oder nimm den hier gezeigten Beispiel-Port
services:
portainer-ce:
image: portainer/portainer-ce:latest
container_name: portainer
restart: always
ports:
- 39351:9443
volumes:
- /var/run/docker.sock:/var/run/docker.sock
- /volume1/docker/portainer/data:/data
- (5) Klicke auf „Weiter“.
Überschrift

Überschrift

Überschrift

Der Container-Manager lädt das Image herunter und startet den Portainer-Dienst.
Download des Image abwarten
Überschrift

Überschrift

Status checken
Anschließend wird dir das neu angelegte Projekt und der Status in der Projekt-Liste angezeigt:
Info: Überschrift

Info:
Reverse-Proxy Einstellungen
Reverse Proxy aufrufen

Öffne in der DSM-Oberfläche die Systemsteuerung
.
- Klick auf
Anmeldeportal
(1) ->Erweitert
(2) ->Reverse Proxy
(3)
Neue Reverse-Proxy-Regel erstellen

- Lege dann mit Klick auf „Erstellen“ (1) eine neue Reverse Proxy-Regel an.
Quelle und Ziel festlegen

Nimm im Tab „Allgemein“ folgende Einstellungen vor:
- Reverse-Proxy-Name (1): Der Name für die Regel; in diesem Fall z. B.
Portainer
. - Quelle:
- Protokoll (2): Da die Verbindung zum Reverse Proxy, der die Anfrage an Wekan (unsere Ziel-Anwendung) weiter gibt, verschlüsselt erfolgen soll, wählen wir als Protokoll
HTTPS
aus. - Hostname (3): Trage hier den (Sub-)Domainnamen ein, über den du die Webapp im Browser aufrufen möchtest, beispielsweise
portainer.name.synology.me
. - Port (4): Damit wir beim Aufrufen der gerade angegebenen Domain nicht noch zusätzlich eine Portnummer angeben müssen, nehmen wir den Standard-HTTPS-Port
443
. - HSTS aktivieren (5): Mit dem Haken wird HSTS aktiviert, um sicherzustellen, dass der Browser nur verschlüsselte Verbindungen akzeptiert.
- Protokoll (2): Da die Verbindung zum Reverse Proxy, der die Anfrage an Wekan (unsere Ziel-Anwendung) weiter gibt, verschlüsselt erfolgen soll, wählen wir als Protokoll
- Ziel:
- Protokoll (6): Da der Portainer-Container für den Aufruf des Webinterfaces einen HTTPS-Port öffnet (9443), erfolgt die interne Kommunikation auf der Diskstation (zwischen Portainer und dem Reverse Proxy) über
HTTPS
. - Hostname (7): Betreibst du den Docker-Container auf der selben DiskStation (was der Normalfall sein sollte), dann gibst du hier mit
localhost
an, dass die von außen kommende Anfrage an die DiskStation selbst weitergeleitet werden soll. - Port (8): Hier trägst du die interne Portnummer ein, unter der der Docker-Container „Portainer“ erreichbar ist. Das ist derselbe Port, den du oben im Schritt „Projekt – Allgemeine Einstellungen“ in das Textfeld zur docker-compose.yml eingetragen hast; in unserem Beispiel also der interne Port
39351
.
- Protokoll (6): Da der Portainer-Container für den Aufruf des Webinterfaces einen HTTPS-Port öffnet (9443), erfolgt die interne Kommunikation auf der Diskstation (zwischen Portainer und dem Reverse Proxy) über
WebSocket Kopfzeilen hinzufügen

Klicke im Tab „Benutzerdefinierte Kopfzeile“ (1) auf „Erstellen“ (2) und anschließend auf „WebSocket“ (3).
Regel mit angelegten WebSocket Headern

Dadurch werden automatisch die zwei Header „Upgrade“ und „Connection“ hinzugefügt.
Proxy Lese-Timeout erhöhen

Proxy Lese-Timeout auf 300 Sekunden setzen (entspricht 5 Minuten), damit „Recreate“ in Portainer auch mit großen Images funktioniert.
[siehe DOK]
Setze ein Proxy-Timeout:
- Im gleichen Menü kannst du das Proxy-Lese-Timeout auf 300 Sekunden (5 Minuten) erhöhen.
- Diese Einstellung stellt sicher, dass umfangreiche Aktionen wie „Recreate“ in Portainer problemlos funktionieren.
Docker/Container Manager-Paket in DSM installieren
Möchte man Docker-Container auf der Synology Diskstation laufen lassen, muss man zuallererst in der Weboberfläche (DSM) über das Paket-Zentrum das Paket „Docker“ bzw. seit DSM 7.2 „Container Manager“ installieren.


Portainer ist als Docker-Container verfügbar. Daher können wir es in der DSM-Oberfläche über „Docker“ bzw. „Container Manager“ installieren. Alle weiteren Docker-Container werden wir zukünftig über Portainer verwalten und installieren. Gut zu wissen: Beide Methoden – Docker über DSM oder in der Portainer Webapp – funktionieren parallel, das heißt man sieht alle über Portainer angelegten und laufenden Container auch in der DSM Oberfläche und kann sie mit beiden Methoden beispielsweise stoppen, neustarten oder deren Status einsehen.
Ordner anlegen
In DSM klicke auf „File Station“ und lege im Ordner „docker“ einen Ordner namens „portainer“ an.

Portainer Docker-Container installieren
Image herunterladen
- In DSM öffne „Docker“ bzw. „Container Manager“
- Klick auf
Registrierung
- Suche nach „Portainer“
- Rechtsklick auf „portainer/portainer-ce“ und auf „Dieses Image herunterladen“
- Auswahl von „latest“ und Klick auf „Auswählen“


Docker-Container anlegen
Nachdem das Image heruntergeladen wurde:
- Klick auf
Container -> Erstellen
- Image „portainer/portainer-ce:latest“ auswählen, Klick auf „Weiter“
- „bridge“ auswählen und „Weiter“
- Containername „portainer“ und „Automatischen Neustart aktivieren auswählen“, Klick auf „Weiter“
- Unter „Port-Einstellungen“
- Zeile 1: löschen
- Zeile 2:
- Lokaler Port: 39351
- beliebigen freien Port wählen, beispielsweise 39351
- diese Portnummer benötigst du erneut im Abschnitt „Sub-Subdomain für Portainer anlegen“
- Container-Port: 9000
- Typ: TCP
- Lokaler Port: 39351
- Zeile 3: löschen
- Unter „Volume-Einstellungen“
-> Ordner hinzufügen -> docker/portainer
auswählen, anschließend Mount-Pfad „/data“ eintragen und Klick auf „Weiter“ und „Fertig“





Der Docker-Container ist jetzt angelegt und sollte automatisch starten.
Sub-Subdomain für Portainer anlegen
Um per (Sub-)Subdomain auf Portainer zugreifen zu können, musst du zuerst ein Wildcard-Zertifikat anlegen.
Anschließend richtest du den Reverse Proxy-Server der Diskstation ein, unter Verwendung folgender Angaben:
- Quelle
- Protokoll: HTTPS
- Hostname: portainer.name.synology.me
- statt „name“ verwendest du hier deine selbst gewählte Synology-Subdomain
- Port: 443
- Ziel
- Protokoll: HTTP
- Hostname: localhost
- Port: 39351
- hast du im Abschnitt „Docker-Container anlegen“ unter „Lokaler Port“ eine andere Portnummer eingetragen, musst du diese hier entsprechend ändern
Zugriff auf Portainer und Benutzer anlegen
Jetzt kannst du im Browser https://portainer.name.synology.me („name“ durch deine Synology-Subdomain ersetzen) aufrufen und landest auf der Portainer-Weboberfläche.

Beim ersten Start von Portainer musst du einen Administrator-Account anlegen. Nachdem du Benutzername und Passwort festgelegt und den Benutzer erstellt hast, erscheint das „Quick Setup“. Hier wählst du „Get Started“. Die Docker-Umgebung auf deiner Diskstation wird automatisch erkannt und angezeigt. Mit einem Klick auf die Kachel mit der Bezeichnung „local“ verbindest du dich und dir werden die Details der Umgebung angezeigt. Sollte das nicht klappen, schaue zur Fehlerbehebung in den nächsten Abschnitt.

Hast du neben Portainer keine weiteren Docker-Container über die DSM-Oberfläche erstellt, wird unter „Containers“ und „Images“ jeweils eine 1 stehen.

Weitere Infos zur Einrichtung von Portainer findest du unter https://docs.portainer.io/start/install-ce/server/setup
Problem: Lokale Docker-Umgebung wird nicht gefunden
Einer unserer Leser berichtete in den Kommentaren, dass bei ihm in Portainer im Abschnitt „Environments“ nichts angezeigt wird, also die lokale Docker-Umgebung „local“ von Portainer nicht gefunden wird. Das geht einher mit folgender Fehlermeldung:
failed to retrieve docker info | error=“Cannot connect to the Docker daemon at unix:///var/run/docker.sock. Is the docker daemon running?“
Das deutet darauf hin, dass in der Konfiguration des Portainer Docker-Containers ein „volume binding“ zum Pfad „/var/run/docker.sock“ fehlt. Teilweise wird dieser automatisch hinzugefügt oder auch nicht – wie in diesem Fall. Der Eintrag kann aber leider nicht direkt über Docker/Container Manager in der DSM-Oberfläche bei den Volume-Einstellungen hinzugefügt werden, da das Dialogfenster nur entsprechende Ordner oder Dateien auf dem Festplatten-Volume (also alles innerhalb des Ordners „volume1“) zur Auswahl anbietet. Für „/var/run/docker.sock“ müssten wir aber einen absoluten Pfad angeben. Als Workaround exportieren wir die aktuelle Konfiguration, fügen den Eintrag in der Konfig-Datei hinzu und importieren diese anschließend wieder.
Export der Docker-Container-Konfiguration
- Öffne Docker/Container Manager in der DSM-Oberfläche
- Klicke links auf „Container“
- Im rechten Bereich Rechtsklick auf den Eintrag „portainer“ -> Einstellungen -> Exportieren
- Wähle „Typ: Containereinstellungen exportieren“ und „Ziel: Auf lokalen Computer exportieren“ -> Klick auf Button „Exportieren“. Es wird eine JSON-Datei heruntergeladen, die die Docker-Container-Konfiguration enthält.


Konfigurationsdatei anpassen
- Öffne die heruntergeladene JSON-Datei mit einem Texteditor, z. B. Notepad++
- Hat man mit dem oben geschilderten Problem zu kämpfen, steht in der Konfig-Datei unter „volume_bindings“ nur ein Eintrag – es sollten aber zwei sein. Ergänze den Eintrag so, wie im folgenden Code bzw. Screenshot ersichtlich: Der markierte Teil muss hinzugefügt werden.
- Speichere die JSON-Datei anschließend.
"volume_bindings" : [
{
"host_absolute_path" : "/var/run/docker.sock",
"mount_point" : "/var/run/docker.sock",
"type" : "rw"
},
{
"host_volume_file" : "/docker/portainer",
"mount_point" : "/data",
"type" : "rw"
}
]

Bisherigen Portainer Docker-Container löschen
Lösche den (nicht funktionierenden) Docker-Container über die DSM-Oberfläche, damit es nachher beim Importieren nicht zu einem Namenskonflikt oder doppelt belegten Ports kommt.
- Stoppe den Docker-Container „portainer“ mit dem Schiebeschalter.
- Anschließend mit Rechtsklick auf den entsprechenden Eintrag -> Aktion -> Löschen
- Dann mit Klick auf „Löschen“ bestätigen.

Importieren der JSON-Konfig für den Docker-Container
- Gehe in Docker/Container Manager in der DSM-Oberfläche links auf „Container“.
- Klicke rechts auf das Menü
Einstellungen -> Importieren
- Klicke im sich öffnenden Dialogfenster auf
Hochladen -> Durchsuchen
. Wähle dann die eben veränderte JSON-Datei aus und bestätige jeweils mit Klick auf „Öffnen“ und „Auswählen“.



Mit diesem Workaround sollte Portainer jetzt auch deine lokale Docker-Umgebung finden.
Fazit
Ab jetzt kannst du alle (weiteren) Docker-Container über Portainer managen, sodass du dich nicht mehr mit Docker/Container Manager in der DSM-Oberfläche „herumplagen“ musst. Portainer bietet deutlich mehr Flexibilität und kann beispielsweise auch Standard Docker Compose files einlesen.
Beitragsbild erstellt mit Hilfe von DALL-E und ChatGPT.
Schreibe einen Kommentar