"Ach, es schlagen zwei Herzen in meiner Brust..."
Vorweg: Ich habe früher xen genutzt, weil ich den vorhandenen Windows 2000 Server mittelfristig komplett ablösen wollte. Mir war aber klar, dass ich eine Software nicht für GNU/Linux bekommen werde (ETS), deshalb brauchte ich ein vollwertige Virtualisierung mit der Option, "billig" eine "kleine" Virtualisierung zu bekommen. Vor einigen Jahren bin ich dann auf Proxmox gestoßen, welches - im Gegensatz zu meinem Selbstbau xen - eine UI für die tägliche Arbeit mitbrachte (gab es auch für xen, ich hab's aber nie zum Laufen gebracht).
Und das war ein Flash, zumal ich direkt mit ZFS eingestiegen bin, vorher LVM auf Software Raid, auch ok, aber eben kein Vergleich zu ZFS. Die Kröte, plötzlich doppelt so viel RAM zu brauchen, war in Wahrheit eher eine willkommene Entschuldigung, endlich auf 64 GByte aufzurüsten. Und mit LXC stand dann auch noch eine sehr leistungsfähige Containerlösung parat.
Etwa zur gleichen Zeit kam auch Docker auf, was ich aber anfangs (falsche Literatur...) nicht verstand.
Sprung einige Jahre in die Zukunft (etwa vor eineinhalb Jahren), da kam in unserer Gemeinde der Wunsch auf, in der Kirche ein Digital Signage System einzurichten. PiSignage schien damals als einziges System einigermaßen sinnvoll nutzbar zu sein (insbesondere die Option, drei Clients kostenlos zu betreiben und auch einen eigenen Contentserver betreiben zu können, also nicht über die Herstellercloud gehen zu müssen). Und PiSignage bietet seinen Server ausschließlich als Docker Image an
Also schnell mal eine VM aufgesetzt und Docker installiert. Bisschen rumexperimentiert und festgestellt: kann viel. Also etwas weiter geforscht und festgestellt: Docker läuft auch in LXC Containern, wenn man ein paar wichtige Flags korrekt setzt. Kurze zeit später brachte Proxmox ein Update, in dem lustigerweise genau diese Flags plötzlich auch über die UI auswählbar waren...
Deshalb ist das für mich kein Entweder-Oder, sondern ein Und.
Jetzt zur anderen Seite der Medaille: Docker bietet quasi unendlich viele Container Vorlagen an, aber als Nutzer habe ich keine Ahnung, wer was wann wo angestellt hat. Natürlich gilt das letztlich für jede Software, die ich nutze, aber bei Docker ist es halt etwas problematisch, dass es für dieselbe Software zig verschiedene Container gibt und man einfach dem Anbieter vertrauen muss, dass er kein Schindluder getrieben hat. Wenn ich in debian samba installiere, bekomme ich exakt eine Software ausgeliefert, deren Version ich im Voraus prüfen kann, ich weiß, dass es viele Millionen Menschen da draußen gibt, die exakt diese Version auch einsetzen. Das mag im Einzelfall nicht vor Fehlern schützen, aber sie werden mit ziemlicher Sicherheit zügig gefunden und auch zügig beseitigt. Bei Docker Containern habe ich die Wahl, einen populären Container zu nutzen (Wahrscheinlichkeit hoch, dass Fehler schnell auffallen und hoffentlich auch rasch gefixt werden) oder vielleicht doch einen anderen, der andere Funktionen mitbringt, aber nicht so populär ist. Und da die Container aufeinander aufbauen, müssen Fehler nicht zwangsläufig im eigentlichen Programm lauern, nein, es kann jedes der verwendeten Images Übeltäter spielen, notfalls sogar die Kombination mehrerer Fehler als Paket.
Ich nutze also Docker für bestimmte Sachen, für andere Sachen habe ich LXC Container und für einiges virtuelle Maschinen mit Windows (und eine auf der FreePBX läuft, das nutzt leider CentOS als Basis)
Gerade was Backup betrifft bin ich aber mit ZFS extrem verwöhnt (ich habe noch ein zweites System mit ZFS, was automatisch in der Nacht Snapshots aller ZVOLs und Datasets pullt), das möchte ich keinesfalls missen. Docker nativ auf einer Maschine hätte natürlich auch Vorteile gegenüber der LXC-Variante, gerade was Netzwerk betrifft geht da ja einiges, was man dann im Zweifel zusätzlich in Proxmox einrichten müsste, aber dafür auf ZFS verzichten? Niemals!