NEWS
Docker vs. Proxmox
-
Gruss in die Runde,
ich versuche gerade zu verstehen, was für Proxmox spricht - ich weiss, gleich kommen Komentare bzgl Snapshot und schnellem Restore, ich finde, man kann aber genauso gut die persistenten Volumes der Docker images sichern und wieder herstellen ....
Was für mich für Docker spricht:
-
Schmal - es werden nur benötigte Pakete mit installiert
-
Portabel - ich kann die config Dateien und das Setup einfach auf einen anderen Host schieben
-
Rollout ist schnell - ich muss kein OS installieren, ich setze nur einen Service auf
Dagegen sehe ich bei Proxmox
- jede VM braucht ein komplettes OS
- grosse Snapshots/Backups
Da ja so viele Proxmox nutzen, übersehe ich anscheinend etwas - nur was?
Christian
-
-
ich bin pro docker, allerdings
hängt die größe deiner vm auch vom verwendeten betriebssystem ab.
auch für eine vm kannst du ein schmales os wie bspw alpine verwenden. muss ja nicht immer ein ubuntu, debian oder ähnliches sein. allerdings bei docker wie auch bei einer vm muss man schon genau wissen, was der service tatsächlich brauch und alles zusätzliche muss dann installiert bzw im container definiert werden.
wenn ich ein großes betriebssystem nehme dann ist halt meist schon alles dabei und muss mich auch nicht um soviele details kümmernpro docker spricht für mich
- absolut gekapseltes betriebssystem
- update/upgrade wirklich flux, muss keine neue vm aufsetzen mit allen installationen. das hat der container maintainer für mich schon gemacht
- konfigurationsanpassungen, sofern im container berücksichtigt ebenfalls sehr einfach. ich setze hier mittlerweile immer auf docker-compose bzw. in portainer die stacks. da hat alles seinen platz und ist dokumentiert falls ich mal ein jahr später was anpassen muss.
pro vm ist für diejenigen, die alle konfigurationen direkt anpassen wollen, das ist bei docker nicht so einfach, hindert einen aber auch daran evtl so etwas zu tun bzw bewusst zu tun, falls das vom container maintainer nicht so vorgesehen ist
zum ram-verbrauch weiß ich nicht genau wie da das verhältnis ist. wenn man bei der vm immer fix den speicher zuordnen muss, dann ist er schnell weg. bei docker wird das ram gemeinschaftlich verbraucht und auch da muss ich mich um nix kümmern
externe hardware einem container/vm verfügbar machen. da mag die vm einen vorteil zu haben, da ich hier notwendige treiber einfach installieren kann. bei docker benötige ich auch einen container (etwa schon vorgefertigt oder selber gemacht) bei dem ich die treiber selbst installieren muss.
beim durchreichen der hardware vom host zum docker-container bzw zu einer vm gibt es glaube ich vom vor/nachteil kein so ein großer unterschied.auch bei backups könntest du nur die Nutzdaten sichern. bequem ist halt ein kompletter snapshot zu machen. festplattenplatz kost ja fast nix
-
Also ich habe alles im Einsatz. Sowohl VM und LXC unter Proxmox, als auch Docker-Container, zum Beispiel auf meiner Synology.
Der große Nachteil von Docker ist für mich, dass so ein Container irgendwie zu kastriert ist. Wenn ich bloß schnell mal zum testen was aufsetzen will, oder es etwas ist, was ich einmal aufsetze und danach maximal mittels neuem Docker-Image aktualisiere, ist das OK. Spätestens, wenn ich im Terminal was machen muss/will, waren mir die meisten Docker-Images zu kastriert, es haben immer wieder Dinge einfach gefehlt, es gab keine saubere User-Verwaltung usw. Irgendwie ist man da immer etwas auf das Wohlwollen des Docker-Maintainers angewiesen. Auch das Durchreichen von Hardware scheint nicht ganz so trivial, was man so hier im Forum liest. Für die restliche Konfiguration des Containers sollte man sich auch einmal Zeit nehmen und sich einlesen, sonst vergisst man schnell, Ports durchzureichen oder weiss gar nicht, ob man macvlan, bridge oder hiost verwenden muss. Für Anfänger IMHO absolut nichts!Im Gegensatz habe ich auch unter Proxmox exakt eine VM im Einsatz. Das ist ein Linux mit Desktop, welches mir dann auch grafischen Zugang von außen per Fernwartung ermöglicht, wenn ich es brauche. Das ist einfach nix, was als Docker oder LXC gescheit laufen würde. Auch wenn man ein Windows unter Proxmox installieren wollte (wer braucht Windows?) bleibt nur VM übrig. Zumden ist das Einrichten und zum beispiel Durchreichen von hardware ein Kinderspiel. Das bekommt jeder hin, der ein Betriebssystem installiert bekommt.
Der Rest läuft bei mir auf zwei Proxmox-Nodes als LXC. Ist irgendwie "best of both worlds" (Docker oder VM). LXC sind schön schlank, rasend schnell, ich habe mittels Snapshots jederzeit die Möglichkeit zum testen mal schnell was zu machen und auch wieder zurück zu kommen. Aber im terminal fühlen sie sich auch exakt so an, als wäre man in einer VM oder auf bare metal unterwegs. Ich kann alles machen, was das zugrundeliegende System her gibt und habe ein vollwertiges Linux vor mir (ja ich weiss, LXC sind kein vollwertiges Linux, aber es fühlt sich zumindest so an und es lässt sich vergleichbar damit arbeiten). Durchreichen von hardware ist auch problemlos, wenn auch, dass man nicht einfach was durchklicken muss, sondern sich vielleicht auch hier etwas Wissen aneignen muss. Aber IMHO lange nicht so "kompliziert" wie bei einem Docker-Container und für mich alles schlüssiger.
Letztendlich soll jeder das verwenden, womit er am besten klar kommt. Nur auf einem Intel Core i5 Windows zu Installieren und darin dann iobroker, das wäre etwas, was ich sofort und immer und überall ablehnen müsste.
Gruss, Jürgen
-
@wildbill sagte in Docker vs. Proxmox:
Irgendwie ist man da immer etwas auf das Wohlwollen des Docker-Maintainers angewiesen
du kannst jederzeit auf Basis eines vorhandenen Images per dockerfile einen zusätzlichen Layer mit deinen eigenen Ergänzungen in einem eigenen Image erstellen.
https://docs.docker.com/get-started/02_our_app/ -
@wildbill said in Docker vs. Proxmox:
Spätestens, wenn ich im Terminal was machen muss/will, waren mir die meisten Docker-Images zu kastriert, es haben immer wieder Dinge einfach gefehlt, es gab keine saubere User-Verwaltung usw. Irgendwie ist man da immer etwas auf das Wohlwollen des Docker-Maintainers angewiesen.
Ja, aber das ist doch genau der Grund einen Docker zu nehmen. Bspw muss ich bei meinem ioBroker Setup nichts im Terminal machen, da ich das einfach nicht brauche. Auch bei einem Homebridge Docker muss ich nicht ins Terminal. Das läuft halt.
Wenn ich natürlich was administrieren will/muss, komplexere Installationen usw benötige, dann brauch ich Vollzugriff zu diesem System... dann ganz klar VM.
Bei mir bspw laufen neben ioBroker noch homebridge, owntone-Server und pihole im Docker. Bei allen vieren muss ich eigentlich nichts machen als hin und wieder via portainer ein neues Image zu ziehen.
Zusätzlich läuft noch ein Windows 10 auf einer VM und ein Linux. Beide eher zum testen. -
@oliverio Da mag viel mehr möglich sein, wie sich mir erschließt (bisher erschlossen hat). Aber meines Erachtens eben viel zu kompliziert, erst Recht falls man Einsteiger ran lässt.
LXC oder VM installiere ich und weiss was ich habe. Sieht immer gleich aus, funktioniert immer gleich. Anleitungen aus dem netz, wie man XY aufsetzt oder YZ konfiguriert passen 1:1, da es aufs Gleiche raus kommt, ob ich es bare, als VM oder LXC verwende. Solange das Betriebssystem kompatibel ist, passt es.
XY als Docker installieren mag OK sein, wenn es angeboten wird. Je nach Maintainer/Anleitung ist auch das Konfigurieren einfach. Oftmals ja nur Port durchreichen und data- oder config-ordner reinschieben. Dennoch schon mehr Aufwand als bei LXC oder VM und fehlerträchtiger. Im Docker was nachinstallieren?! Kann schon ausarten. Auf jeden Fall stehen die Chancen gut, dass es nicht mit dem einen Befehl getan ist. Wird auch, je nach Forum/Ansprechpartner/... als verpöhnt angesehen. Docker-Container verwendet man so, wie sie im Image kommen und basta. Wer mehr oder was anderes will, hat wohl das falsche Image.@toralt Nicht falsch verstehen! Ich sehe absolut die Existenzberechtigung für Docker und verwende es auch gerne für spezialisierte Zwecke. Aber ich würde NIE einem Einsteiger z.B. in iobroker empfehlen, das mittles Docker-Container zu tun. Viel zu kompliziert, fehlerträchtig und der Lerneffekt, wie man ein System administriert und in Schuss hält, geht gegen 0. Wie Du ja auch schreibst. Für irgendeinen Dienst, nehmen wir mal einen mosquitto, ist das voll OK und habe ich so auch am Laufen. Aber iobroker ohne Terminal administrieren oder nur mal dort in ein Log schauen oder einen Befehl absetzen, den es im Admin nicht gibt, das ist ja nur das halbe Ding. Wie oft kam es vor, dass im Admin was nicht so geht, wie es soll und erst ein abgesetzter Befehl mit debug im Terminal die Ursache zu Tage bringt?
Pihole ab und an im Terminal aktualisieren schadet auch nix, mal nach dem rechten sehen. Spätestens wenn Du z.B. zwei Pihole mittles keepalived eine IP-Adresse teilen lassen willst, wird es mit den Standard-Dockern für Pihole schwierig, da es dort AFAIK nicht von haus aus verfügbar ist. Dann musst Du schauen, wie Du das rein bekommst, wenn überhaupt, und schon ist es gar nicht mehr so einfach...Aber, wie gesagt, jeder, wie er mag und kann. Wer mit Docker zufrieden ist, soll es sein und verwenden. Wer neu zu iobroker stößt, sollte IMHO aber zwingendst auf bare metal, oder LXC oder VM setzen und die Grundlagen lernen.
Gruss, Jürgen
-
@ch90045 sagte in Docker vs. Proxmox:
Dagegen sehe ich bei Proxmox
jede VM braucht ein komplettes OS
Das ist der Unterschied der für Proxmox spricht.
Du kannst außer mit Containern auch mit VMs arbeiten, die selbstständige Rechner sind und (wenn du denn willst) sogar unterschiedliche OSe haben können. Diese VMs bergen nicht die Probleme die bei "nicht-Wissenden" mit Containern auftreten. -
Also der vergleich Docker vs. Proxmox ist wie Äpfel mit Birnen zu vergleichen.
Proxmox ist ein Betriebssystem bzw. eine Virtualisierungsplattform.
Docker hingegen ist ein Containersystem das man auf einem Betriebssystem installiert und dann Container Ausführt.Richtig wäre also der vergleich Docker vs. LXC, denn LXC ist wie Docker ein Containersystem das man auf einem Betriebssystem installieren kann.
-
Also der Vorteil einer VM ist doch gerade das ein komplettes Betriebssystem in einem komplett simulierten Hardware ist. Ja, es ist größer / fetter. Es werden ggf. mehr Ressourcen gebraucht. Was aber im Jahre 2022 nicht mehr das Problem ist, was sind den 2 CPU Kerne und 4 GB RAM heutzutage.
Die Backups sind größer. Weil eben die komplette VM gesichert wird.
Das ist auch der größte Pluspunkt. Ein Backup der VM an einem anderen Ort (Netzlaufwerk etc.)
Wenn der Host-Server abraucht kannst du die VM auf jedem System auf dem du Proxmox wieder installiert einfach starten. Und so kannst du auch das ganze System umziehen (bei in VMware sogar im laufenden Betrieb von einem System zum anderen)Keine Ahnung inwiefern das mit den Docker Container geht - keine Ahnung ob man einen Synologie Docker Container auch auf einer QNAP oder unter einem Linux mit Docker zum laufen bekommen würde.
-
Eine vm und ein Container benötigt jeweils beides ein komplettes Betriebssystem.
Wie oben geschrieben. Wenn man nur einen speziellen Dienst da laufen lassen hat, dann kann man nur das notwendigste laufen lassen.Wenn einem kurzfristig in einem Container ein Tool fehlt dann kann man das auch über die console nachinstallieren. Allerdings ist es beim Neustart des Containers rückstandsfrei wieder weg.
-
Ok, danke für euren Input - da ich Dinge wie FHEM und IoBroker als SaaS sehe, will ich keinen Zugriff auf das minimale OS unter dem App Layer - da scheint mir Docker die bessere Idee zu sein. Wenn ich ein BS brauche, dann kann ich noch immer etwas auf einem Pi oder einer Synology ausrollen.
Sollte ich mir einen Beelink besorgen, dann wohl als Docker Host.
Gruss
Christian
-
Kleine Anmerkung:
Infrastruktursysteme (DNS, dhcp, Firewalls, Proxy, caches, etc.) sollten nicht in einer VM oder container betrieben werden.
Die werden immer nativ auf Servern betrieben.Bei Firewalls kann man sich streiten wenn es reine application Firewalls sind. Aber Firewalls die netzsegmente schützen definitiv nicht.
-
@oliverio Wer es sich leisten kann, soll das gerne so tun. Nur sehe ich erstens für den "Privatgebrauch" überhaupt kein Problem, derartige Dienste wie beispielsweise Pihole als DNS auf mehrere Proxmox-Nodes so zu verteilen, so dass bei Ausfall eine möglichst automatisch zuschlagende Redundanz vorhanden ist. Entweder, weil der Router mehrere Server gleich mitgibt, oder eben per keepalived mit einer geteilten IP-Adresse.
DHCP, Firewall und Proxy übernimmt bei mir der Router (Edgerouter 4), unter Anderem, weil es mit mehreren VLAN, diversen Routen und dergleichen mit Pihole einfach nicht geht. Ich selbst würde das auch nie auf irgendeinen Proxmox-Host auslagern wollen oder auf einen Raspi oder dergleichen. Aber wenn jemand eine Fritzbox als Router hat und nur ein Netzwerk so sähe ich da überhaupt kein Problem, diese Aufgaben auf ein anderes Gerät "auszulagern". Und wenn einer einen kleinen Proxmox-Node hat, so warum nicht. Selbst in vielen großen Firmen werden derartige Dinge mittlerweile teilweise virtualisiert. Da läuft nicht mehr für jede kleine Aufgabe ein eigener Server. Zumindest in den Firmen, die ich kenne. Und da gehört auch eine größere dazu mit >5000 Ma an einem Standort und viermal so viel weltweit.
Wie gesagt, wer sich privat für jede Aufgabe eigene Hardware hinstellen und leisten will, soll es tun, nur sehe ich da eher keine Vorteile. OK, wenn ein Proxmox-Host mal abschmiert (was er aber normalerweie nicht einfach so tut) dann bricht gleich mehr weg, denn für alles hat man keine Redundanz. Aber wenn ich für 10 Aufgaben 10x Hardware hinstelle, dann habe ich da 10 x mehr Geräte, die kaputt gehen können, mehr Investition, höhere Stromkosten usw. Das gesunde Mittelmaß muss da wohl jeder für sich selbst finden.Gruss, Jürgen
-
@ch90045 said in Docker vs. Proxmox:
Was für mich für Docker spricht:
-
Schmal - es werden nur benötigte Pakete mit installiert
-
Portabel - ich kann die config Dateien und das Setup einfach auf einen anderen Host schieben
-
Rollout ist schnell - ich muss kein OS installieren, ich setze nur einen Service auf
- begrenzt portabel, läuft nur mit Docker oder kompatiblen Lösungen
- Rollout ist ein großer Aufwand, je nach Plattform musst du alles von Hand installieren und es gibt kein zentrales Management (OS, Storage, Backup, Updates, Firewall,..)
Dagegen sehe ich bei Proxmox
- jede VM braucht ein komplettes OS
- grosse Snapshots/Backups
Da ja so viele Proxmox nutzen, übersehe ich anscheinend etwas - nur was?
Christian
- du kannst VM´s oder Container verwenden und hast sämtliche Funktion in einem zentralen Management
- Backups und Snapshots sind ootb möglich und voll integriert
- ZFS ootb dabei, somit benötigen Snapshots kaum Platz und können in nahezu beliebiger Anzahl erstellt werden (zb alle 5 Minuten)
- VM´s sind portabel und können ohne großen Aufwand in anderen Virtualisierungslösungen oder direkt auf einem PC wiederhergestellt werden
- in wenigen Minuten fix und fertig eingerichtet
-
-
@melonea sagte in Docker vs. Proxmox:
@ch90045 said in Docker vs. Proxmox:
Was für mich für Docker spricht:
-
Schmal - es werden nur benötigte Pakete mit installiert
-
Portabel - ich kann die config Dateien und das Setup einfach auf einen anderen Host schieben
-
Rollout ist schnell - ich muss kein OS installieren, ich setze nur einen Service auf
- begrenzt portabel, läuft nur mit Docker oder kompatiblen Lösungen
- Rollout ist ein großer Aufwand, je nach Plattform musst du alles von Hand installieren und es gibt kein zentrales Management (OS, Storage, Backup, Updates, Firewall,..)
Da werfe ich doch mal unraid in den Ring...
-
-
Dieses Thema ist ja schon etwas älter, aber ja immer noch aktuell, darum möchte ich jetzt kein neues öffnen, sondern hier mal in die Runde fragen.
Falls das nicht gewünscht ist, gerne auch verschieben, oder ich mache dann ein neues auf.Ich habe überhaupt keine Ahnung von Docker und von Proxmox hatte ich vor 1-2 Jahren auch keine Ahnung.
Ich wollte mir einen kleinen Server bauen. Er sollte stromsparen rund um die Uhr laufen.
Angefangen wie wahrscheinlich die meisten, habe ich mit einem Pi.
Der war mir schnell zu klein, zu langsam und die Sache mit der SD-Karte hat mir auch nicht gefallen.Dann habe ich etwas länger gesucht und mich dann für einen NUC entschieden. Das habe ich bis heute nicht bereut.
Dann musste ich mir noch überlegen, was ich genau darauf mache.
Damals habe ich mich auch mal kurz mit Docker beschäftigt und eben auch mit Proxmox.
Für mich als Ahnungslosen (auch wenn ich vor über 20 Jahren mal einen IT-Systemelektroniker Ausbildung gemacht habe), hat sich Docker überhaupt nicht erschlossen.
Ich habe aufgegeben, da ich überhaupt nicht verstanden habe, was ich eigentlich jetzt genau tun muss. Dazu muss ich sagen, dass mein Englisch aus den 80er stammt und das auch nur von der Hauptschule. Und auch wenn ich mittlerweile Handwerksmeister und Ingenieur bin, hat sich an den Englisch Kenntnissen nie etwas geändert.
Wahrscheinlich ist und war das mein größtes Problem, dass ich keine Anleitung von 0 bis 100% auf Deutsch gefunden habe.Proxmox hingegen, habe ich recht schnell installiert gehabt und auch verstanden. Inzwischen habe ich mehrere lxc und auch eine VM. VM kenne ich noch aus der Ausbildung und lxc habe ich vom Prinzip auch schnell verstanden.
Eventuell kann mir hier ja einmal einer einfach erklären was Docker genau ist und wie ich da anfangen müsste.
Eventuell würde ich mich dann damit auch auf meine alten Tage doch nochmal auseinandersetzen.Es würde mich jedenfalls freuen.
VG
-
@woupi Meine ehrliche Meinung: Wenn Du mit Proxmox, LXC und VMs gut klarkommst (so wie ich auch) gibt es, in meinen Augen, keinen einzigen Grund sich Docker anzutun. Du gewinnst dadurch nix.
Ich habe ein paar Docker-Container auf der Synology laufen und es ist für mich jedesmal ein Graus, wenn ich da was ändere, ja es beginnt schon das große Zittern, wenn ich nur mal einen Container auf die neueste Version heben will. Ich muss dann jedesmal kurz mal überlegen, wie es genau ging, was ich tun muss und dass ich nix vergesse. In LXC oder VM hau ich die Befehle dazu blind in die Tasten, aber bei Docker ist mir echt alles zu kompliziert.
Es ist OK, um mal schnell was Neues zu starten und schauen, ob es mir überhaupt zusagt. Aber ich sehe Docker als das, was sie (ursprünglich) mal waren: Wegwerfartikel, die man zum Testen mal startet und gut.
Wirklich produktiv für sowas wie iobroker möchte ich Docker definitiv nicht einsetzen. Da fühlte ich mich nicht wohl, zu eingeschränkt und hätte immer das Gefühl, da läuft nix Halbes und nix Ganzes.Gruss, Jürgen
-
MOD-Edit: Vollzitat entfernt
Danke für deine Einschätzung.
So wie Du es beschreibst habe ich es empfunden.
Und ja, dann bleibe ich lieber bei proxmox. Da komme sehr gut mit zurecht und es läuft auch alles echt gut.VG
Sascha -
@woupi sagte in Docker vs. Proxmox:
Es würde mich jedenfalls freuen.
Um auch noch eine Gegenmeinung kundzutun:
Letzlich ist das wie vieles in der IT eine Glaubensfrage und ein Frage, womit man sich tiefer beschäftigen möchte. Mit Vor- und Nachteilen hier und da.
Der Vorteil von Docker ist für mich, dass ich mich an fertigen, ausgereifen Images bedienen kann, die an zwei, drei Stellen an meine Bedürfnisse anpasse und fertig. Keine Installationen, Updates, Unverträglichkeiten und Abhängigkeiten mehr und ich muss mich nicht mehr mit dem x-ten Repository beschäftigen, dass mal wieder der Meinung war, seine Schlüssel auszutauschen. Das machen andere für mich und ich kann mich mit dem beschäftigen, was ich möchte, mit Funktionen.
Wenn eine Docker Umgebung richtig aufgesetzt ist, kann man Updates mit zwei Befehlen auf der Kommandozeile oder drei Klicks auf einer Oberfläche völlig schmerzfrei ausführen. Mittlerweile lasse ich das automatisiert ablaufen, weil es einfach funktioniert.
Die Configs meiner ca. 30 Container und vier Docker-Netzwerke stecken in genau zwei Dateien. Mit diesen zwei Dateien kann ich meine komplette Umgebung von (praktisch) Null aufbauen lassen.
Die Kehrseite: Um eine etwas größere Umgebung aufzubauen, die man auch gut versteht, muss man einmalig richtig Zeit aufwenden. Aber dann hat man eine stabile Landschaft, mit der man absolut keine Bauchschmerzen haben muss.
-
MOD-Edit: Vollzitat entfernt
Danke für deine Meinung.
Hilft mir allerdings leider nicht um zu verstehen, was Docker überhaupt ist und wo ich anfangen müsste.
Da ich das vor 2 Jahren schonmal versucht hatte und gescheitert bin, bleibe ich wohl besser bei proxmox, VM und lxc.VG
Sascha