Grundverständnis: Vor- und Nachteile bei Docker

Status
Für weitere Antworten geschlossen.

Tengo

Benutzer
Mitglied seit
03. Nov 2013
Beiträge
181
Punkte für Reaktionen
3
Punkte
24
Hallo liebe Community,

ich besitze eine DS918+ und spiele gelegentlich mit verschiedenen Paketen auf meiner DS rum, um die ganzen Möglichkeiten Stück für Stück zu erforschen. Nun habe ich im Laufe der Zeit festgestellt, dass Docker auch eine von vielen Leuten favorisierte Möglichkeit ist, verschiedene "Dienste und Funktionen" auf der Syno zum Laufen zu bringen. Da so einige Anwendungen als Paket im Paketzentrum der Syno, als auch als Container für Docker zur Verfügung stehen (TeamSpeak, Plex-Server, Baikal, Jabber), stellt sich mir die grundsätzliche Frage, welche Vor- und Nachteile mit Docker vs. "Paketzentrum Syno" einhergehen. Für mich interessant sind dabei:

  • Performance (Zugriffsgeschwindigkeit aus dem INet)
  • Stabilität
  • Sicherung und Wiederherstellung
  • Installationsaufwand
  • Notwendigkeit von Ordnerzugriffen außerhalb Dockers für Datenbanken oder Dowload-Ordner etc.)
  • Sicherheitsgewinn? (mich nervt bspw. der Plex-User meines Plex-Server-Pakets ... gibt es den mit Docker auch?)
  • Performance (Auslastung CPU) und Priorisierung der Anwendungen

Könntet ihr mir diesbezüglich mal so eure Meinungen und Erfahrungen mitteilen? Also wann würde ihr bspw. ein Syno-Paket, wann einen Docker-Container bevorzugen? :confused:
 

Tengo

Benutzer
Mitglied seit
03. Nov 2013
Beiträge
181
Punkte für Reaktionen
3
Punkte
24
Ok, ich resumiere ... viele Leute nutzen Docker (Beiträge gibt es genug). Vermutlich, weil es gerade "in" ist, aber keiner kann kurz erklären, warum und wann es Sinn macht, einen Docker-Container einem Syno-Paket vorzuziehen bzw. umgedreht und was man dabei vielleicht beachten sollte.:confused:
 

haydibe

Benutzer
Sehr erfahren
Mitglied seit
12. Apr 2016
Beiträge
1.526
Punkte für Reaktionen
413
Punkte
103
Ich glaube eher, dass einfach gerade keiner Lust hat den "Erklär-Bär" zu spielen ;)
Hatte ich eignetlich auch nicht, aber irgendwie habe ich dann doch mehr geschrieben als ich ursprünglich vor hatte.

  • Performance (Zugriffsgeschwindigkeit aus dem INet)
Für netwerkintensive Anwendungen muss man ggf. die Option "selbes Netzwerk wie Host verwenden" anhaken.
NZBGet im Container: dauerhafte ~11MB/s bei 100MBit-Download möglich

Isolierte Anwendungen = Keine Seiteneffekte
Anonsten: schlechte Anwendungen bleiben auch im Container schlecht

  • Sicherung und Wiederherstellung
Entweder steht etwas dazu auf Dockerhub zum Image, oder man fährt den Container herunter und Backuped dann die entsprechenden Pfade, die man in die Container "mapped"

  • Installationsaufwand
Es gibt keine Installation, nur eine Konfiguration die beim erzeugen/starten eines Containers angewendet wird.
Wenn man einmal verstanden hat, wie die Parameter aus der Dockerhub-Beschreibung in die Syno-UI zu überführen sind, dann geht es fix.

Allerdings ist der schnellste Weg immer noch über die Shell.

  • Notwendigkeit von Ordnerzugriffen außerhalb Dockers für Datenbanken oder Dowload-Ordner etc.)
Docker Container sind als Wegwerf-Umgebungen gedacht. Bewegdaten müssen über Docker Volumes auf dem Host gespeichert werden.
Wobei hier explizit Pfade angegeben werden müssen! Sonst landen die Daten im Container und müssen aufwändig herausgepult werden.

Die rückstandlose Entfernung von Anwendungen wird zum Kinderspiel.

  • Sicherheitsgewinn? (mich nervt bspw. der Plex-User meines Plex-Server-Pakets ... gibt es den mit Docker auch?)
Sicherheitsgewinn möglich, wenn die Images konsequent auf die Sicherheit achten.
Das Gute ist, der Host kann in den Container "reinsehen", ein Container kann aber nicht auf den Host "sehen"


  • Performance (Auslastung CPU) und Priorisierung der Anwendungen
Der Ressourcen-Overhead für Containerisierung ist kaum höher als die Prozesse direkt auf dem Host zu starten.
Was das Prozess-Scheduling angeht: keine Ahnung.

Im Gegensatz zu einer VM muss bei Docker folgendes NICHT getan werden:
- Synchronisation zwischen Host-VM-Kernel und Gast-VM-Kerneln bei Treiberzugriff (Festplatte, CPU, Grafik), alle Container teilen sich den Kernel des Host -> Ersparnis RAM+CPU-Zeit
- ein vollständiges Gast-OS mitsammt unnötiger Systemprozesse gestartet werden, Container bestehen aus einem minimal OS, einer Kernawnendung, sowie den für den Betrieb notwendigen Abhängigkeiten -> Ersparnis: RAM, CPU-ZEIT, Festplattenspeicher und Startzeit!
 

4bob

Benutzer
Mitglied seit
04. Mai 2016
Beiträge
604
Punkte für Reaktionen
2
Punkte
38
Ok, ich resumiere ... weil es gerade "in" ist, aber keiner kann kurz erklären, warum und wann es Sinn macht, einen Docker-Container einem Syno-Paket vorzuziehen

Nun das ist ja mal eine plumpe Unterstellung :D

Docker bietet sehr viel Mehrwert und ist eine wirklich gute Erweiterung,
du solltest es verstanden haben wenn du es benutzen willst.

haydibe hat das auf den Punkt gebracht. :cool:

Was dir auch noch entgangen ist das Docker nicht limitiert ist auf Synology's Ökosystem, dein Paketzentrum aber :p Ich kann bspw. Anwendungen bereitstellen wie Urbackup, logstash, MongoDB usw. die gibt’s schlicht nicht als Paket. Die könnten nur über einen bootstrap oder chroot aufgebaut werden und da kommt der ein oder andere schnell an seine Grenzen - und Fehler lassen sich auch nicht mal eben löschen, wie unter Docker.

Bob
 

4bob

Benutzer
Mitglied seit
04. Mai 2016
Beiträge
604
Punkte für Reaktionen
2
Punkte
38
Könntet ihr mir diesbezüglich mal so eure Meinungen und Erfahrungen mitteilen? Also wann würde ihr bspw. ein Syno-Paket, wann einen Docker-Container bevorzugen?

Kleiner Nachtrag: Ich wähle nicht nur fehlende Anwendungen sondern auch Update schwache Anwendungen für Docker aus.
In der SynoCommunity sind viele Pakete seit dem DSM6 nicht mehr installierbar oder nur mit Nachhilfe, bspw. immer wieder gerne genommen pyload.
Im direkten Vergleich läuft bei mir Emby als Paket, ginge auch mit Docker, aber die Qualität von diesem Paket war stets einwandfrei durch alle DSM Updates seit 5.2.

Bob
 

Yippie

Benutzer
Mitglied seit
01. Feb 2011
Beiträge
643
Punkte für Reaktionen
55
Punkte
54
Ich zum Beispiel hab in einem Docker-Container den CalDav/CardDav Server Radicale am Laufen. Ganz einfach deshalb weil die Synology eigene Interpretation dieser beiden Protokoll keinen Mehrwert bietet.

Der Container läuft und läuft und läuft und ich muss nicht irgendwelche Dritt-Server, auf Basis von bspw. Rapsberry Pi oder dergleichen hochziehen um genau die gleiche Funktionalität zu erhalten. Ich kann als meine DS um mehr als nur die zur Verfügung gestellten Packages erweitern.

Viele Docker-Container stehen aber auch als Syno-Package zur Verfügung, gerade wenn es um CMS oder dergleichen geht. Dann ist es halt Geschmacksache und vor allem wie sich ein Docker-Container in die vorhandene Systemlandschaft mit Synology Active Directory Server oder der allgemeinen Benutzerverwaltung integriert.

Michael
 

Tengo

Benutzer
Mitglied seit
03. Nov 2013
Beiträge
181
Punkte für Reaktionen
3
Punkte
24
Ich bin begeistert und sage artig DANKE. Das waren ja mal ganz ausführliche Statements. Jetzt sehe ich schon etwas besser durch.

@Yippie: Genau dieser Container interessiert mich auch. Ich suche immer noch eine Möglichkeit, Gruppenadressbücher zu managen, so wie es Calendar inzwischen mit Kalenderfreigaben kann. Deshalb habe ich auch diverse Thread zu Baikal gelesen und bin auf deine Beiträge zu Radicale gestossen.Jetzt muss ich "nur noch" dahinter steigen, wie die Componenten (Syno, Container, Datenbank, Ports, Pfadangaben) zusammenspielen und konfiguriert werden müssen und dann hoffe ich, dass alles wunderbar läuft. Du hast nicht irgendwo mal ne (deutschsprachige) Anleitung zu einer kompletten Radicale-Einrichtung gepostet? So quasi Schritt-für-Schritt zum "Nachbauen"?:confused: ;)
 
Status
Für weitere Antworten geschlossen.
 

Kaffeautomat

Wenn du das Forum hilfreich findest oder uns unterstützen möchtest, dann gib uns doch einfach einen Kaffee aus.

Als Dankeschön schalten wir deinen Account werbefrei.

:coffee:

Hier gehts zum Kaffeeautomat