Jump to content

Unterschied zwischen verschiedenen Docker Containern (z.B. Alpine vs. Apache)?


hawihoney

Recommended Posts

Was ist eigentlich der Unterschied für mich als Benutzer zwischen den verschiedenen Containern? Ich las vor einiger Zeit das ich777 Container auf Apache basieren, andere auf Alpine. Was bedeutet das für mich? Sind die kleiner, größer, schneller, langsamer oder gibt es gar Unterschiede im Funktionsumfang bzw. dem Handling?

 

Vielen Dank.

 

Link to comment
22 minutes ago, hawihoney said:

Apache

Meine basieren auf Debian, bin einfach ein Debian Mensch. 😅

 

22 minutes ago, hawihoney said:

Alpine

Alpine ist nur eine andere Linux Distribution, die zugegebener maßen auch kleiner ist von der größe her, jedoch für mich nicht praktikabel ist da dort SteamCMD, das ich in vielen Containern verwende, nicht funktioniert weil es verschiedene Libraries für x86 für Alpine einfach nicht gibt.

 

22 minutes ago, hawihoney said:

Sind die kleiner, größer, schneller, langsamer oder gibt es gar Unterschiede im Funktionsumfang bzw. dem Handling?

Unterschiede wird es kaum geben, ich versuch wenn möglich immer verschiedene Sprachen zu integrieren und versuche alles so einfach als möglich für den Benutzer zu gestalten.

 

Jedoch habe ich bei den meisten Containern eine andere Update Strategie als die anderen das die beim start/neustart auf Updates Prüfen und nicht der Docker selbst upgedated wird (steht aber immer in der containerbeschreibung).

Das der Container upgedated wird hab ich nur ganz vereinzelt.

 

Meine GUI Container nutzen alle TurboVNC in Kombination mit noVNC für das Webinterface mit der Option das man den Port von TurboVNC im Template eintragen kann und dann nativ im LAN einen VNC client nutzen kann und sich direkt verbinden kann ohne noVNC.

 

 

Liegt immer an der persönlichen Preferenz was du auf deinem Server installierst, ich versuch auch so schnell wie möglich Support zu geben wenn mal was nicht funktioniert, aber das machen die anderen natürlich auch, schätze ich zumindest... ;)

  • Thanks 1
Link to comment

...zu Zeiten wo man viele 100GB auf dem Cache hat und viel RAM, ist das auch garnicht mehr so wichtig.
Interessant zu wissen ist, das Docker die einzelnen images effizient verwaltet.
Basieren zB mehrere Docker auf dem gleichen Image, zB Debian xxxx, dann liegt das Image (bzw der jeweilige Teil) nur einmal auf dem Cache.

Wird ein Docker gestartet hängt dann der RAM Verbrauch auch davon ab, wie komplex das Image ist...viele grosse Libraries brauchen eben mehr davon. Hier gilt aber nicht, dass sich die Container die Ressourcen zur Laufzeit teilen. Drei Container vom gleichen Image benötigen dann Ressourcen für drei Instanzen.

Alpine ist dafür gemacht klein zu sein, beim Image und zur Laufzeit. Mein mosquitto/MQTT Container schluckt nur wenige MB RAM, aber neben Alpine ist auch nur misquitto drin, sonst nix.

Gesendet von meinem SM-G780G mit Tapatalk

  • Thanks 1
Link to comment
23 minutes ago, Ford Prefect said:

Basieren zB mehrere Docker auf dem gleichen Image, zB Debian xxxx, dann liegt das Image (bzw der jeweilige Teil) nur einmal auf dem Cache.

Genau das ist auch mein Ansatz hier. ;)

Hab ein Debian-Baseimage dann ein Debian-VNC-Baseimage das wiederum auf dem Debian-Baseimage basiert usw...

 

Bei mir im Baseimage ist zB auch nur das wichtigste drin, zumindest für mich, wget, locales & procps

 

Sieh dir zB meinen DoH Container an der brauch wenn er läuft auch nur wenig MB RAM.

Link to comment
28 minutes ago, Ford Prefect said:

zu Zeiten wo man viele 100GB auf dem Cache hat und viel RAM, ist das auch garnicht mehr so wichtig

 

ich will das jetzt nicht groß zum Thema machen, aber für mich ist das wirklich kein Argument. Wie man hier vielleicht mitbekommen hat, stamme ich aus einer ganz anderen Generation - bin schon lange Privatier. Ich musste noch kommerzielle Assembler Programme in 1 KB RAM unterbringen. Der verschwenderische Umgang mit Resourcen - nur weil man sie hat - lehne ich bei Programmen/Anwendungen kategorisch ab. Wie gesagt, das ist meiner EDV/IT Ausbildung geschuldet die in den 70ern des letzten Jahrhunderts startete. So manches Framework ist so groß, da passten meine dutzend letzten kommerziellen Anwendungen (C, Android/Java) aus Anfang 2000 locker zusammen rein - ohne zusätzliche Frameworks.

 

Wenn es keinen gravierenden fachlichen oder sachlichen Unterschied zwischen zwei gleichartigen Anwendungen gibt, werde ich immer die kleinere nehmen.

 

Edited by hawihoney
Link to comment
2 minutes ago, hawihoney said:

Wenn es keinen garvierenden fachlichen oder sachlichen Unterschied zwischen zwei gleichartigen Anwendungen gibt, werde ich immer die kleinere nehmen.

Aber vergiss nicht das Baseimage verbraucht auch speicher und wenn du zB einen container von mir hast du installierst einen 2. ist das Baseimage schon vorhanden und verbraucht mehr oder weniger keinen zusätzlichen Speicher.

 

Deswegen hab ich mir auch mein eigenes Baseimage gemacht.

Link to comment

Letztlich ist das Ganze eine Architektur und man muss eben verstehen, welche Grundzüge dahinter stecken um diese effizient auszunutzen.

In letzter Konsequenz sollte Jemand, der es versteht und kann, seine Docker selbst bauen bzw. andere nach seinem Verständnis modifizieren. Das man es kann ist ja das schöne an dieser Architektur.
Wer aber fertige Images nur benutzen will und das ist wohl die Mehrheit der aktuellen, neuen Nutzer, der muss sich da eigentlich keine Gedanken machen.
Beim Einsatz auf einem kleinen System, einem RPi - übrigens bringt Mikrotik jetzt Docker Support für RouterOS - oder so, sieht das anders aus.

Ich habe auch noch die erste 40GB SSD aus 2007 in meinem Backup Server aber würde mir heute eben keine 40GB mehr kaufen, sondern für den gleichen Betrag eine 1TB NVMe.



Gesendet von meinem SM-G780G mit Tapatalk

Link to comment
16 minutes ago, Ford Prefect said:

In letzter Konsequenz sollte Jemand, der es versteht und kann, seine Docker selbst bauen bzw. andere nach seinem Verständnis modifizieren.

Das war ein Grund warum ich damit angefangen hab Container zu erstellen, bei mir laufen nur mehr 4 Container die nicht von mir sind und der Hauptgrund war das es keine GameServer gab damals, jetzt hab ich keine Zeit mehr selbst zu Spielen. :D

 

17 minutes ago, Ford Prefect said:

Beim Einsatz auf einem kleinen System, einem RPi

Hab übrigens auch ein paar ARM v7 und ARM v8 Container (Firefox, Thunderbird zB)... ;)

 

Link to comment
31 minutes ago, ich777 said:

Aber vergiss nicht das Baseimage verbraucht auch speicher

 

Hab gerade mal nachgeschaut. Bis auf zwei, sind alle Container von Linuxserver.IO (swag, mariadb, nextcloud, nzbget, plex). Die beiden anderen von jlesage. Wobei ich mich gerade frage, wieso makemkv und mkvtoolnix nicht von Linuxserver.IO zur Verfügung gestellt werden ...

 

Link to comment
4 minutes ago, hawihoney said:

Hab gerade mal nachgeschaut. Bis auf zwei, sind alle Container von Linuxserver.IO (swag, mariadb, nextcloud, nzbget, plex).

Auch wenn du viele von Linuxserver.IO hast heißt das nicht die alle das selbe Baseimage haben... MariaDB haben die beispielsweise erst auf Alpine umgestellt und soweit ich weiß basiert Plex auf Ubuntu und dann gibt es noch ein paar variablen das evtl MariaDB ein anderes oder älteres baseimage als SWAG hat.

 

6 minutes ago, hawihoney said:

Wobei ich mich gerade frage, wieso makemkv und mkvtoolnix nicht von Linuxserver.IO zur Verfügung gestellt werden ...

Weil das auch nur Hobbyisten sind die sich zu Linuxserver.io zusammengeschlossen haben und evtl. keiner von denen eine Verwendung dafür hat.

Deswegen laufen bei mir am Server auch noch andere Container die nicht von mir sind weil mir der Aufwand zu groß ist für jede Anwendung einen Container zu erstellen und den zu Pflegen.

Bei images die eine WebGUI benötigen überleg ich immer 2 mal weil die schon ordentlich Platz brauchen, die sind zB bei mir am Server alle von mir.

Link to comment
29 minutes ago, mgutt said:

Das eine benötigt mehr Ressourcen und kann mehr

Jein... Im Container trifft das nicht ganz zu, kommt auch immer drauf an was alles im Container installiert ist und läuft, genau so verhält es sich auch mit der Sicherheit.

 

Der Container basiert auf Debian und da läuft praktisch nichts drin außer der DoH-Client (hab ich nur zum testen aufgesetzt deswegen die komischen port mappings... :D ) :

grafik.thumb.png.e1ad40c9651ebb552f7d53063a71706b.png

 

EDIT: Na gut vielleicht lässt sich mit Alpine noch was einsparen bin ich mir aber nicht sicher, das Baseimage ist bzw. wäre aber auf jeden Fall kleiner von Alpine.

Link to comment

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...