Docker Container mit Synology DSM

Wie benutzt man Docker mit Synology

Synology ab DSM 6.0 kommt mit der Docker Engine. Zu finden ist die Docker App im Paket-Zentrum mit Eingabe docker im Suchfeld.

Docker ist eine schlanke Virtualisierungsanwendung, Tausende von Container erstellt von Entwickler aus der ganzen Welt können ausgeführt werden und sind auf dem bekannten Image-Repository, Docker Hub publiziert. Container Images können aus der Synology integrierten Docker App geladen und ausgeführt werden.

  Wenn die Docker App im Paketzentrum nicht erscheint, wird die Synology DSM Version höchstwahrscheinlich nicht unterstützt.

  Aufgrund der Hardware-Anforderungen wird Docker nur für Modelle mit Virtualisierungstechnik (VT-x) angeboten. Die in dieser Anleitung verwendeten Modelle sind RS818RP+, RS4018xs+ und DS218+ auf diesen Docker ausführbar ist.




Wie benutzt man Docker

Mit dem öffnen des Hauptmenu Symbol aus DSM findet sich das Icon für die Docker Engine die jetzt gestartet werden kann.

Docker öffnet den Überblick, hier sind die laufenden Container aufgeführt, die Anwendungen einschließlich zugewiesenem Speicher und CPU-Ressourcen, es ist jetzt noch kein Container gestartet.

Zusätzlich wird hier im folgenden die Docker Befehlszeile erläutert, diese alternativ für die Docker Console.

CLI   Docker Command Running Container auflisten:

Im Abschnitt Registrierung kann nach neuen Images gesucht werden (wie auf der offiziellen Website). Es können auch neue Repositories (zusätzlich zu den offiziellen) unter Einstellungen hinzugefügt werden.

CLI   Das original Docker Command ist:

Nachdem ein passendes Image (Abbild) gefunden wurde, in diesem Fall ein kleines Ubuntu 18.04 Dockerized SSH service Image, wird es mit einem Rechtsklick auf das Synology NAS herunterladen, am besten immer latest wählen. Alle Images sind schreibgeschützt und können mehrfach für weitere Container verwenden werden.

Das herunterladen kann einige Minuten in Anspruch nehmen, je nach grösse und download Bandbreite. Der Status beim herunterladen wird mit einem animierten Symbol dargestellt.

CLI   Das Docker Command ist:

Unter Abbild befinden sich die heruntergeladenen Images die auf dem Synology NAS verfügbar sind. Es können neue Container mit dem Assistenten Angedockt, gestartet werden. Hinweis: über das Link Symbol öffnet sich die Docker Hub Seite zum Container mit nützlichen Informationen.

CLI   Das Docker Command ist:

Nun auf Starten gehen um den Assistenten zu öffnen.

Auf Weiter um den Assistenten abzuschließen, und mit übernehmen den Container starten.

CLI   Das Docker Command ist:

Der laufende Container ist jetzt im Abschnitt Container zu finden.

CLI   Die vollständige Docker Ausgabe wie folgt:

Zurück in der Docker Übersicht sehen wir nun die Resourcen der gestarteten Container.

CLI   Das Docker Command ist:

Nun versuchen wir ein SSH-Terminal zum Container herzustellen. Dazu sehen wir im Abschnitt Container mit klick auf Details, auf welchem Port der SSH-Dienst horcht.

Im Überblick unter Port-Einstellungen finden wir bei Lokaler Port den gesuchten Wert, in diesem Fall ist es der Port 32789, die Port Adresse wird automatisch zugewiesen.

CLI   Ermitteln der Port Adresse

Jetzt können wir PuTTY oder KiTTY öffnen und Verbinden uns mit der IP des Synology NAS und dem Port 32789 zum Container, für CLI   Das Command wie folgt:

Anmelden mit root und dem Passwort root.

Die Docker Engine kann auch aus der Console genutzt werden, sofern das SSH Terminal unter DSM Systemsteuerung – SSH-Dienst aktiviert wurde.

Die in diesem Artikel gezeigte Anwendung von Docker soll als einfaches Beispiel darstellen, wie Docker auf einem Synology NAS anwendbar ist, natürlich gibt es nützlichere Container Anwendungen, wie Websever für das Entwickeln von Webanwendungen bis hin zu kompletten Entwicklungsumgebungen, es existieren bereits unzählige Docker Images auf Docker Hub https://hub.docker.com, und weiteren Docker Registraren. Dabei fragt mach sich schon, ob der Aufwand zur Installation seiner Entwicklerumgebung wie Xamp oder LAMP überhaupt noch zweckmäßig ist. An dieser stelle sein noch erwähnt, das alle Daten die im Container gespeichert werden, auf einem persistenten Volumen gespeichert werden müssen, denn mit beenden des Containers sind sämtliche arbeiten verloren.

Auch gibt es weitere Artikel zur Anwendung von Docker hier im Think Tank Blog, am besten einfach docker ins Suchfeld oben eingeben.

 

Nextcloud Installation auf Synology

Mit der Synology Diskstation kommen viele Pakete vorinstalliert, weitere zusätzliche Pakete können aus dem DSM Paket Manager installiert werden. Möchte man Nextcloud auf der Synology NAS haben, muss man derzeit noch manuell vorgehen. Hier wird beschrieben wie auf einer DS215 mit DSM 6 in wenigen schritten das Open Source Paket, Nextcloud 12 installiert werden kann. Das vorgehen sollte mit jeder Synology DS oder RS möglich sein.

Pre-Installation
Installation
CalDAV Integration
Absicherung und Konfiguration

Zur Vorbereitung sind einige Dienstpakete wie gewohnt aus dem DSM Paket-Zentrum zu installieren.

Pre-Installation

Die Pakete PHP 5.6 und PHP 7.0, Apache 2.4, phpMyAdmin, MariaDB und Web Station werden installiert.

Es wird der Terminal Zugang zur Synology DS benötigt, wie der SSH Daemon aktiviert wird, steht im Beitrag hier.

Um sich mit PuTTY gleich als root bei der Diskstation einloggen zu können, braucht es folgenden Befehl um root Zugang zu aktivieren. Oder man führt jeweils sudo aus.

Download von Nextcloud und entpacken des ZIP-Archives mit anschließender Besitzer und rechte Vergabe. Die Document_Root ist hier /volume1/web/nextcloud.

Es muss ein MySQL root-Passwort vergeben werden.

Das MySQL-root Passwort kann natürlich auch aus dem DSM geändert werden.

Nun wird die DSM Web Station geöffnet um die Webserver Konfiguration und ein Virtueller Host zu erstellen.

Web Station Allgemeine Einstellungen

Web Station PHP-Einstellungen. Im Feld PHP open_basedir muss none stehen.

Web Station Virtueller Host erstellen.

Installation

Nun kann im Bowser die URL geöffnet werden https://ip_adresse_od_hostname/nextcloud

Das Administrator-Konto kann ein beliebiger Name sein, dieser steht nicht im Zusammenhang mit den Synology Benutzer. Es wird MySQL/MariaDB gewählt, das MySQL-root Kennwort ist das zuvor vergebene Passwort.

Nach ca. 2 min. ist die Installation abschlossen und es erscheint die Intro-Seite.

Soll nun unsere eigene Nextcloud aus dem Internet erreichbar sein, muss eine statische NAT Port Weiterleitung zur internen Synology Diskstation auf der Firewall gemacht werden. Ferner muss die unter nextcloud/config liegende Datei config.php angepasst werden. Im array wird eine weitere Zeile mit unserem FQDN hinzugefügt, dieser zuvor in der DNS Zone foo.io eingetragen wurde.


CalDAV Integration

Mit CalDAV Synchronizer for Outlook ist es möglich den Outlook Kalender, das Adressbuch und die Aufgaben einfach zu synchronisieren, damit ist jeder Desktop und Mobile Client über die private Nextcloud integriert.

Das freie Outlook Plugin von der Fachhochschule Technikum Wien, das zwischen Outlook und CalDAV Server synchronisiert, unterstützt die Outlook-Versionen 2016, 2013, 2010 und 2007. Der Download gibt es auf Github und bei Sourceforge.

Absicherung und Konfiguration

Zur Absicherung der Synology DS die aus dem Internet erreichbar ist, sollten die Zugriffsrechte  eingeschränkt werden, mit folgendem chmod command:

Desweiteren sollte HTTPS verwendet werden, Nextcloud empfiehlt folgende Einstellung an der Apache Webserver Konfiguration vorzunehmen:

Hierdurch wird der Aufruf der Webseite von http auf https (SSL) umgeleitet, in der Virtuellen Host Konfiguration unter ServerName hinzufügen:

Damit beim versuch eine HTTP Verbindung aufzubauen diese abgewiesen wird, kann das Module mod_headers.c hinzugefügt  werden.

Den Suchmachinen Crawler soll mitgeteilt werden, das unsere Nextcloud Webseite nicht indiziert werden soll. Die Textdatei robots.txt kommt dabei in die Document Root, im Verzeichnis /volume1/web/nextcloud zu stehen.

Mit  Copy  Paste die Textdatei robots.txt erstellen.

Zur Performance Optimierung kann der PHP opcache konfiguriert werden. Die Werte wie folgt in die PHP Konfiguration user-settungs.ini hinzufügen:

Durch   Copy Paste in der Datei user-settings.ini anfügen.

Nun muss die Synology DS nur noch neu gestartet werden damit die Konfiguration aktiv ist.

Anhang

Mit Apache 2.4 und PHP 7 läuft Nextcloud einiges performanter, daher empfiehlt sich die Web Station für den Virtual Host von Nextcloud mit den aktuellen Web Services zu betreiben.

Abbildung: Synology Web Station

 

phpSysInfo Installation auf Ubuntu

phpSysInfo Ubuntu System Information

phpSysInfo zeigt Status Informationen zum Ubuntu System übersichtlich in einer PHP-Webseite.

 

INSTALLATION

Die Installation von phpSysInfo kann mit  Copy Paste der folgenden Zeilen in einer Terminal Console durchgeführt werden:

Auf Github ist jeweils das letzte phpSysInfo Release verfügbar.

Die phpSysInfo Seite durch Benutzeranmeldung und Passwort schützen, über die Apache-htaccess Authentifizierung.

Ein gewünschter Benutzer [username] und ein Passwort anlegen, und es sich merken, es wird später für die Anmeldung benötigt.

Der Vorgang sieht etwa wie folgt aus, mit Beispiel Benutzer homer.

Die Apache Zusatzkonfiguration mit der Konfigurationsdatei in das Verzeichnis „/etc/apache2/sites-available/“ erstellen:

Zielen  Copy Paste in Terminal Shell.

Stelle sicher, dass in der php.ini der safe_mode auf off gesetzt ist.
Anstelle von Domain.com den im DNS tatsächlich vorhandene Domainname einsetzen.

Nachdem wir unseren virtuellen Host erstellt haben, muss dieser aktiviert werden, dazu enthält Apache das a2ensite-Tool, damit unsere Website wie folgt aktivieren:

Fertig, jetzt muss nur noch der Apache Webserver neu gestartet werden, damit die Änderungen wirksam werden:

Aufrufen mit http://ip-oder-hostname/phpsysinfo

Abbildung: phpSysInfo

Benutzer und Passwort dieses zuvor mit htpasswd eingegeben wurde.

 

Quellen Link  phpsysinfo

ANFORDERUNGEN

PHP 5.1.3 oder höher mit der Erweiterung SimpleXML, PCRE, XML und DOM.

Empfohlene Extensions:
mbstring: Required for *nix non UTF-8 systems
com_dotnet: Required for Windows environments
xsl: Required for static mode
json: Required for bootstrap mode

AKTUELLE GEPRÜFTE PLATTFORMEN

Linux 2.6+
FreeBSD 7+
OpenBSD 2.8+
NetBSD
DragonFly
HP-UX
Darwin / Mac OS / OS X
Windows 2000 / XP / 2003 / Vista / 2008 / 7 / 2011 / 2012 / 8 / 8.1 / 10 / 2016 / 2019
Android

BEKANNTE PROBLEME

phpSysInfo ist nicht kompatibel mit SELinux.

SELinux auf disabled setzen, mit ausführen folgender Zeile wird /etc/selinux/config geändert und der Server anschließend rebootet.

 

phpSysInfo Installation auf Synology

phpSysInfo Synology System Information

phpSysInfo zeigt Status Informationen zum Synology NAS übersichtlich in einer PHP-Webseite.

 

INSTALLATION

Die Installation von phpSysInfo mit  Copy Paste der folgenden Zeilen in einer als root eingeloggten Terminal Console ausführen.

Auf Github ist jeweils das letzte phpSysInfo Release verfügbar.

Aus Synology DSM die Web Station öffnen, und auf Virtueller Host gehen.

Bei Virtueller Host auf den Button Erstellen klicken und den Hostname phpsysinfo eintragen.

Die Dokument-Root web/phpsysinfo auswählen.

Nach OK wird die Konfiguration des Virtual Host gestartet, und phpSysInfo ist bereit.

Aufrufen mit http://ip-oder-hostname/phpsysinfo

Abbildung: phpSysInfo

Quellen Link  phpsysinfo

 




 

phpSysInfo Installation auf CentOS

phpSysInfo CentOS System Information

phpSysInfo zeigt Status Informationen zu CentOS Linux übersichtlich in einer PHP-Webseite.

 

INSTALLATION

Die Installation von phpSysInfo geschieht mit  Copy Paste der folgenden Zeilen in einer Terminal Console:

Auf Github ist jeweils das letzte phpSysInfo Release verfügbar.

Ein Passwort vergeben um das System durch htaccess Autorisierung zu schützen:

Die Apache Zusatzkonfiguration mit der Konfigurationsdatei in das Verzeichnis „/etc/httpd/conf.d“ erstellen:

Zielen  Copy Paste in Terminal Shell.

Stelle sicher, dass in der php.ini der safe_mode auf off gesetzt ist.
Anstelle von [username] den zuvor erstellten Benutzername.
Bei Require ip [address] kann eine IP Adresse angegeben werden. von dieser die Benutzer Anmeldeaufforderung ausgeschlossen wird, dann das führende hash (#) Zeichen entfernen.

Fertig, jetzt muss nur noch die Änderung vom Apache Webserver eingelesen werden, damit die Änderungen wirksam werden:

Aufrufen mit http://ip-oder-hostname/phpsysinfo

Abbildng: phpSysInfo

Benutzer und Passwort dieses zuvor mit htpasswd eingegeben wurde.

Wird die phpSysInfo Seite nicht geöffnet, kann der Apache Webserver Status, und die Konfiguration überprüft werden:

 

Quellen Link  phpsysinfo

ANFORDERUNGEN

PHP 5.1.3 oder höher mit der Erweiterung SimpleXML, PCRE, XML und DOM.

Empfohlene Extensions:
mbstring: Required for *nix non UTF-8 systems
com_dotnet: Required for Windows environments
xsl: Required for static mode
json: Required for bootstrap mode

AKTUELLE GEPRÜFTE PLATTFORMEN

Linux 2.6+
FreeBSD 7+
OpenBSD 2.8+
NetBSD
DragonFly
HP-UX
Darwin / Mac OS / OS X
Windows 2000 / XP / 2003 / Vista / 2008 / 7 / 2011 / 2012 / 8 / 8.1 / 10 / 2016 / 2019
Android

BEKANNTE PROBLEME

phpSysInfo ist nicht kompatibel mit SELinux.

SELinux auf disabled setzen, mit ausführen folgender Zeile wird /etc/selinux/config geändert und der Server anschließend rebootet.

 

Scroll Up