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.
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.
Über dieses Paket kann man Docker-Container installieren und verwalten. Das funktioniert allerdings viel komfortabler mit der Software Portainer. Mit Portainer kann man außerdem sehr einfach Docker Compose files nutzen, Container-Logs einsehen und einige Einstellungen ändern, die im Docker-Paket von Synology nicht möglich sind.
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“ einen 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.
Schreibe einen Kommentar