NEWS
Docker vs. Proxmox
-
@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 -
@Marc-Berg Immer schön, auch die „Gegenmeinung“ zu hören. Wobei das ja jetzt nichts ist, wo irgendwie gegeneinander gearbeitet wird und man sich partout für eins entscheiden muss.
@woupi Docker war AFAIK ursprünglich wirklich nur zum schnellen Testen gedacht. Du brauchst schnell einen Webserver, evtl. mit MySQL und PHP um kurz eine Seite online zu stellen für Testzwecke oder so? Bevor Du da einen LXC oder eine VM aufsetzt wird kurz ein LAMP-Docker erstellt und läuft. Du brauchst kurz einen MQTT-Server um für ein Event Daten einzusammeln? Docker erstellen und läuft.Da sehe ich auch den WIRKLICH großen Vorteil. Es muss nix groß installiert werden, der Docker-Container bringt alles mit und läuft im Regelfall direkt, egal welches Betriebssystem auf dem Host läuft, Hauptsache Docker wird unterstützt.
Nur sind halt dann mehr und mehr dazu übergegangen, Docker als komplette „Virtualisierungsschicht“ im Dauerbetrieb für alle ihre Anwendungen zu verwenden. Und IMHO war Docker halt genau dafür nicht geacht. Aber, wer damit klar kommt und wem es gefällt, der soll es verwenden. Funktionieren wird dies ja, wenn es korrekt aufgesetzt ist. Und genau da liegt auch der Hase im Pfeffer. Viele Einsteiger denken, Supi, mit Docker muss ich nix installieren, das läuft ja direkt. Und übersehen halt, dass es da doch einiges zu beachten gibt. Sei es korrekte Netzwerkeinrichtung, davon abhängig korrekte Portweiterreichung, einbinden eines persistenten Ordners um Daten außerhalb des Containers zu halten und und und. Und dann kommen halt hier im Forum die ganzen Threads dass nach einem Update des Containers plötzlich alles weg ist, dass Adapter XY sich nicht verbinden kann und so weiter.
Wer sich damit beschäftigt und einarbeitet, der wird damit klar kommen und auch glücklich werden, für die breite Masse, diejenigen die „mal schnell“ iobroker ohne Grundkenntnisse aufsetzen wollen oder die ganzen Klicki-Bunti-User, die ohne Youtube-Anleitung schon daran scheitern, überhaupt Docker zu installieren sehe ich das eher nicht.Gruss, Jürgen
-
Ich bin mal so frei und werfe dazu meinen Standardsatz in den Ring.
Passend zu dieser Aussage:@wildbill sagte in Docker vs. Proxmox:
Docker war AFAIK ursprünglich wirklich nur zum schnellen Testen gedacht
kommt dann mein "Docker-Container sind Wegwerfartikel. Dazu sind sie gedacht".
Wenn man einige - wirklich wenige - Dinge beachtet, sind sie eine erstaunlich einfache Möglichkeit, auch komplexe Szenarien mit wenigen Befehlen (oder beim NAS: Klicks) aufzusetzen.
@woupi
Ich erkläre das immer so:
Container sind keine "Virtualisierungsschicht", sondern lediglich eine "Abstraktion" des darunterliegenden OS.
Das erklärt auch, dass man unter Linux keinen Windows- und unter Windows keinen Linux-Container einrichten kann.
Wer jetzt sagt "stimmt nicht, geht unter Windows", liegt auch daneben, denn es wird nicht das Windows abstrahiert, sondern das WSL (Windows Subsystem for Linux).
Container nutzen die vorhandenen Ressourcen des Host-OS und erzeugen keine virtuellen "neuen Ressourcen".Für ein "einfaches" Setup - also ohne Sondernetze und ähnliches Zeug - gibt es kaum etwas einfacheres als Docker auf einem NAS.
Zumindest solange wie man sich daran hält, die Daten außerhalb des Containers zu persistieren und man keine USB-Geräte in den Container bringen muss. Da fängt dann nämlich der "Spaß" an.@wildbill sagte in Docker vs. Proxmox:
Viele Einsteiger denken, Supi, mit Docker muss ich nix installieren, das läuft ja direkt. Und übersehen halt, dass es da doch einiges zu beachten gibt. Sei es korrekte Netzwerkeinrichtung, davon abhängig korrekte Portweiterreichung, einbinden eines persistenten Ordners um Daten außerhalb des Containers zu halten
Solange man diese Dinge beachtet ist Docker tatsächlich einfach und "läuft direkt".
Ich behaupte mal: Hätte es das auf meiner Synology nicht getan, wäre ich heute nicht hier.
Auch wenn ich mittlerweile auf einen NUC umgestiegen bin und ein ThinkCentre im Anmarsch ist, hat sich ein Update des Containers eigentlich immer auf 3 Schritte beschränkt:- Container stoppen und löschen
- Neuen Container aus aktuellem Image mit identischen Einstellungen erzeugen
- Starten und warten - voilá.
@wildbill sagte in Docker vs. Proxmox:
für die breite Masse, diejenigen die „mal schnell“ iobroker ohne Grundkenntnisse aufsetzen wollen oder die ganzen Klicki-Bunti-User, die ohne Youtube-Anleitung schon daran scheitern, überhaupt Docker zu installieren sehe ich das eher nicht.
Ich würde das unterschreiben und sogar noch einen Schritt weiter gehen:
Für eine "breite Masse ohne Grundkenntnisse" ist ein System wie ioBroker kaum einsetzbar.
Das gilt aber auch für vergleichbare Systeme. Wer die erforderliche Grundkenntnisse nicht hat, wird sie sich aneignen müssen.
Es ist halt keine "out of the box" Lösung, an die man nur noch ein Netzteil prömpelt und schon läuft die Kiste. -
@codierknecht sagte in Docker vs. Proxmox:
Wer die erforderliche Grundkenntnisse nicht hat, wird sie sich aneignen müssen.
eben, da spielt es keine Rolle, ob Docker generell gemeint, LXC/VM, Proxmox, Unraid und was es noch so alles gibt.
Einlesen muss man sich überall(hatte und habe Proxmox im Cluster (noch) am laufen, steig jetzt aktuell mit nem neuen Rechner doch mal auf Unraid um)
(jedes System hat so seine Vor und Nachteile) -
als die erklärung, das docker nur zum schnellen testen gedacht war muss ich widersprechen. docker bzw. die zugrundeliegende linux-technik "prozessvirualisierung" ist als weiterentwicklung zur virtuellen maschine zu sehen.
eine VM virtualisiert ein komplettes betriebssystem mit allen ein und ausgaben. dadurch muss man dieser maschine auch fest ressourcen zuordnen bspw RAM.
Früher auch Prozessorkerne, aber die Prozessorhersteller haben dann auch virtualisierungsfunktionen auf prozessorebene eingeführt, bei dem auch die prozessorfuntkionalitäten für verschiedene nutzer komplett gekapselt werden können.wenn eine vm das komplette betriebssystem kapsel, dan kapselt docker eine ganze Anwendung + seine Konfiguration. da diese aber oft auch von einem betriebssystem abhängig ist, bringt es das auch noch mit. allerdings kann man das so minimal und klein halten, das nur das enthalten ist, was für die Anwendung notwendig ist.
sehr beliebt dafür aktuell
https://de.wikipedia.org/wiki/Alpine_Linux#:~:text=Das Basissystem in Alpine Linux,ist (ungefähr 130 MB).
für container entwickler die sich nicht soviel gedanken machen wollen, können dann immer noch debian/ubuntu oder eine andere distribution nehmen.in diesen container packst du die anwendung, die basiskonfiguration, stellst dann die wichtigsten konfigurationsmöglichkeiten als sogenannte environvariable fest, legst sogenannte volumes fest, so das sehr einfach die daten, die man ggfs sichern möchte frei definierbar auf die festplatte des hosts gelegt werden können. diese dateibereiche werden dann im dateisystem des containers "eingeblendet".
durch dieses system wird die "installation einer applikation sehr einfach. alle abhängigkeiten und konfigurationen sind im container enthalten. wenn der container entfernt wurde bleibt auch wirklich kein rückstand mehr im aktuellen betriebssystem übrig. so kann man sein hauptsystem clean und einfach halten. idealerweise (das strebe ich an) ist auf dem hauptsystem nix anderes als docker installiert. alle server-anwendungen sind containerisiert und selbst update/upgrade des betriebssystems ist easy, da ich ja auf nix achten muss, was irgendweine anwendung betrifft. einfach alle container-definitionen mit den datei bereichen wegsichern, betriebssystem komplett aufspielen, docker installieren, alle containerdefinitionen und dateibereiche zurückspielen, starten, fertig.
evtl auch noch ein weiteres wort zur praktischen anwendung docker bzw. container (mittlerweile gibt es noch ein paar alternativen) sind heute die basis der ganzen cloud-rechenzentren. die ganze schaar von container in einem rechenzentrum wird über kubernetes gemanaged.
stellt euch vor ihr betreibt eine webseite und morgen habt ihr einen tv oder radiospot und viele leute wollen die webseite anwählen. dann war es früher so, das relativ schnell der rechner überlastet war und die seite nicht zur Verfügung steht. heute kannst du regeln definieren, bei dem dir dynamisch nach anforderung einfach mal schnell neue container mit webservern gestartet werden, die dann die erhöhte anzahl von anfragen abfangen können. diese können dann ebenso dynamisch dann auch wieder beendet werden.wenn du als unternehmen relativ failsafe arbeiten willst, setzt du auch nicht nur ein cloud rechenzentrum ein, sondern mehrere. (evtl auch von verschiedenen anbietern). darüber kann man dann container auch relativ schnell zwischen den standorten und betreibern transferieren.
-
@codierknecht sagte in Docker vs. Proxmox:
"Docker-Container sind Wegwerfartikel. Dazu sind sie gedacht"
Bin da voll und ganz bei dir! Docker-Container sollen so genutzt werden wie diese ausgeliefert werden, da installiert man nichts nach. Funktioniert der Container nicht, schmeisst man den weg und macht einen neuen.
Docker nutzt man für Dinge wo man viele Server (ich schreibe extra nicht VMs) braucht um etwas zu machen, zum Beispiel Webseiten ausliefern. Die Dinger sollen hochfahren, sich ggf. an einem zentralen Broker / Verwaltung melden, sich ihre Aufgabe holen und diese ausführen.
Zickt einer rum wird er abgeschossen und ersetzt. -
Danke an alle für die ausführlichen Antworten.
VG
Sascha