Server administrieren - wo fange ich an?

  • Mach es, kann ich da nur empfehlen. Es existiert definitiv eine Umstiegs- und Lernhürde. Aber wenn die überwunden ist wirst Du Dich fragen, wieso Du es jemals anders gemacht hast.


    Docker verlagert den Aufwand vom Howto befolgen auf die passende Erstellung der Containerumgebung


    Vorteile:

    - viele Anwendungen voneinander getrennt auf ein und derselben Kiste

    - keine Abhängigkeitskonflikte (wenn eine Anwendung eine bestimmte PHP, Node.js oder DB Version braucht: egal, jede Anwendung bekommt unabhängig was sie braucht).

    - hast Du ein "Kochrezept" (=docker-compose.yaml File), hast Du es für immer und überall. Egal ob Du es einmal oder 100x brauchst, Du kannst es immer und überall verwenden.

    - Updates: Container löschen, neues Image ziehen, Container neu spawnen. Das geht auch z.B. mit Watchtower automatisch. Damit sind Updates (oder auch Backgrades) absolut trivial.

    - https://hub.docker.com/ als Repository von extreeeem vielen Containern.

    - Quasi jede Anwendung bietet mittlerweile ein Setup via Docker (Compose) an.

    - Es gibt nette Verwaltungssoftware wie https://www.portainer.io/ oder https://github.com/louislam/dockge , die einen unterstützt.

    - Machst Du Dir ein privates Repo auf Github oder einem privaten Git Server (z.B. Gitea, Gitlab) und syncst dort die compose Files hin, kannst Du Deinen Stack überall hin pushen und laufen lassen.


    Und noch so viel mehr.


    Einfach mal nen Server oder ne VM zu Hause machen und loslegen. TIP: NICHT auf Windows machen, sondern gleich vernünftig auf nem Linux Host.

    RS Ostern L OST22 (~RS "3000" G9.5) (8C,24GB,960GB) | RS Cyber Quack (1C,2GB,40GB)

    Like 5
  • fällt ja dann der Groschen und ich merk: Geile Sache

    100%


    Ansonsten machen wir hier mal ein "wie fange ich mit Docker an" Thema auf und dann gehts los.


    Oder ne Docker Discord Session.

    RS Ostern L OST22 (~RS "3000" G9.5) (8C,24GB,960GB) | RS Cyber Quack (1C,2GB,40GB)

    Like 1
  • Sogar ich, der docker nicht so ganz dolle mag, habe eben auf einem ARM-Server docker installiert und dann seafile darin. ^^

    Es gab zwar ein paar kleine Stolpersteine, aber funktionieren tut es, sogar mit reverse proxy. :thumbup:

  • Ja. Ist bei mir ähnlich.

    Ich nutze zwar den nginx-proxymanager nicht, sondern Apache auf den hosts, aber bei jeder Anwendung gibt es beim reverse proxy andere Fallstricke. ;(

    Meine Strategie: Solange rumprobieren bis es klappt. ^^

  • Wenn sich jeder Container am Host OS bedient, is es dann sehr wichtig welches Host OS ich für Docker verwende?

    [RS] 2000 G11 | 1000 G11 | 500 G8 | 2x Cyber Quack | Vincent van Bot

    [VPS] 2000 ARM G11 | 1000 G9 | mikro G11s | 4x nano G11s
    [WH] 8000 SE | 4000 SE | 2000 SE

  • Wenn sich jeder Container am Host OS bedient, is es dann sehr wichtig welches Host OS ich für Docker verwende?

    Es sollte natürlich ein Host-OS sein, für welches sowohl aktuelle Docker- als auch Systemupdates verfügbar sind. Ubuntu bietet hier mit dem Livepatch-Dienst ein wenig Entlastung ggü. zeitkritischen Kernel-Updates. Zudem hat man hier Zugriff auf aktuelle LXD-Versionen (ebenfalls via Snap), wodurch man verschiedene Docker-Instanzen ihrerseits in eigene Container verfrachten kann. Das verkompliziert die Konfiguration ein wenig, sorgt aber dafür, dass Docker die Kontrolle über die Netzwerkschnittstellen (Routing, offene Ports) "aus der Hand geschlagen" wird (und somit logischerweise manuell nachgezogen/abgenickt werden muss).

    VServer IOPS Comparison Sheet: https://docs.google.com/spreadsheets/d/1w38zM0Bwbd4VdDCQoi1buo2I-zpwg8e0wVzFGSPh3iE

    Edited 3 times, last by m_ueberall ().

  • Ja, herrlich dieses Docker. Da kann man so richtig schön veraltete Images veralteter Distributionen mit entsprechenden Abhängigkeiten generieren, unnötig freien Festplattenplatz eindampfen, bindings auf localhost generieren und sich so richtig schön im gepolsterten Container austoben, solange man nicht zum falschen Repository pardon Hub greift. Und das alles nur mit dem richtigen yaml und docker-compose up und down. Hurrayhurray!


    Ist ja ganz lustig. Es ist auch praktisch, wenn man sich nicht das System mit kaputten Abhängigkeiten beschädigen möchte, wenn man für ein Projekt was machen möchte. Aber Herrjemine... effizient, überschaubar und gut zu administrieren?!?


    Hat sich hier schon mal jemand mit Docker unter Windows befasst?

  • Was mich bis jetzt von Docker abhielt, sind Instanzen (wenn nicht deklariert wo ich nicht mehr wissen konnte was wo durch Docker am laufen ist.


    Ich sah Mal vor fast 2 Jahren zu wo jemand Docker für sich verwendete. Da war damals nichts strukturiert.

    Ich bin der Anfang, das Ende, die Eine, die Viele ist.

    Ich bin die Borg.

  • Was mich bis jetzt von Docker abhielt, sind Instanzen (wenn nicht deklariert wo ich nicht mehr wissen konnte was wo durch Docker am laufen ist.


    Ich sah Mal vor fast 2 Jahren zu wo jemand Docker für sich verwendete. Da war damals nichts strukturiert.

    Ach komm so, ein bisserl docker ps macht doch Spaß. Nicht.

  • Ach komm so, ein bisserl docker ps macht doch Spaß. Nicht.

    Ich konnte mir vor 23 Jahre (Jahr 2000) als ich das erste Mal Linux auf einen Rechner installierte, in den kühnsten Gedanken nicht vorstellen, dass ich 23 Jahre später insgesamt 16 Rechner mit Linux habe bzw. 4 davon betreue.


    Als die sozialen Einschränkungen durch die Corona losgingen wollte ich nur einen eigenen Jitsi-Server auf einem Server in einem Rechenzentrum. Aktuell habe ich 7 Server (verteilt auf zwei Provider) und auf 4 davon lauft jeweils ein Jitsi-Server.


    Ich bin mittlerweile 57 Jahre alt und verwende 23 Jahre Linux (viele Jahre neben Android & Windows, seit fast einem Jahr nur noch Android und Linux).


    Je oller, desto doller.

    Daher schließe ich es nicht aus, dass ich irgendwann noch Docker unter Linux verwenden werde.

    Ich bin der Anfang, das Ende, die Eine, die Viele ist.

    Ich bin die Borg.

  • Wenn sich jeder Container am Host OS bedient, is es dann sehr wichtig welches Host OS ich für Docker verwende?

    Um die Frage etwas einfacher zu beantworten:

    - es sollten Updates für das OS verfügbar sein (logisch)

    - man kann jederzeit Container, die auf anderen Linux Distris aufbauen, auf seinem Host laufen haben

    - der Container bringt alles mit, was zum Betrieb der Anwendung benötigt wird


    So bauen manche Container z.B. auf index | Alpine Linux auf, das sich dadurch auszeichnet, dass es auch extrem klein kommen kann (z.B. 7 Mbytes , damit die App laufen kann). Das heißt aber nicht, dass der Host Alpine Linux sein muss. Da geht alles für was Docker funktioniert.

    RS Ostern L OST22 (~RS "3000" G9.5) (8C,24GB,960GB) | RS Cyber Quack (1C,2GB,40GB)

    Like 1
  • Da kann man so richtig schön veraltete Images veralteter Distributionen mit entsprechenden Abhängigkeiten generieren

    Kann man machen, ja. Ebenso einfach kann man aber auch das Basisimage durch die neue Major Version austauschen, den Container neu builden und schon läuft die Anwendung nicht mehr auf z.B. Debian 11, sondern Debian 12. Davon abgesehen ist das OS des Containers ja nicht von außen erreichbar (nur der Applikationsport) und hat auch keinen veralteten SSH Server der gehackt werden könnte.

    unnötig freien Festplattenplatz eindampfen

    Wofür? Immer mal wieder unbenutzte Images cleanen und fertig. Wie schon an anderer Stelle erwähnt: wenn Deine Container viele Gigabytes groß sind, sind sie falsch gebaut oder konfiguriert.


    bindings auf localhost generieren

    Man kann überall Fehler machen, wenn man nicht weiß was man tut.

    sich so richtig schön im gepolsterten Container austoben, solange man nicht zum falschen Repository pardon Hub greift. Und das alles nur mit dem richtigen yaml und docker-compose up und down. Hurrayhurray!


    Ist ja ganz lustig. Es ist auch praktisch, wenn man sich nicht das System mit kaputten Abhängigkeiten beschädigen möchte, wenn man für ein Projekt was machen möchte.

    Ja genau darum gehts unter anderem. Es gibt nicht nur eine Version von einer Ressource, sondern genau die, die die App braucht und jederzeit pro Container eine unterschiedliche.

    solange man nicht zum falschen Repository pardon Hub greift. Und das alles nur mit dem richtigen yaml und docker-compose up und down. Hurrayhurray!

    Es gibt in erster Linie https://hub.docker.com/ . Daran bedient sich die überwältigende Mehrheit. Naja, die Arbeit fließt bei Docker in die richtige Konfiguration des docker-compose Files und nicht in die Abarbeitung eines Howtos. Der Vorteil ist, dass wenn man die richtige Konfig mal hat, man sie für immer und beliebig viele Hosts hat. Wie gesagt: die meisten Anwendungen werden mit einem Docker Setup angeboten. Installier mal Informationen & Support - mailcow: dockerized Dokumentation manuell - mit 16 Containern für einen vollständigen Mailserver via Docker kein Thema. Manuell wird eine so komplexe Sache gar nicht zur Installation beschrieben.



    Aber Herrjemine... effizient, überschaubar und gut zu administrieren?!?

    Effizient? Ich finde schon. Denn anders als bei VMs werden nicht unnötig Systemressourcen reserviert, sondern ein Container benötigt nur so viele Ressourcen, wie er verwendet.

    Überschaubar? Absolut! Alles was zu einer Anwendung gehört, steht in einem Compose File und wird in ein Netzwerk gepackt. Es ist klar definiert was rein und was raus geht und wo die persistenten Dateien und Ordner liegen. Du kannst jederzeit jeden Container löschen und neu spawnen.

    Gut zu administrieren? Ja. Wie gesagt, die Trennung ist vorteilhaft. Es gibt zudem Unterstützungstools (auch über Container installiert), die die Anzeige, Administration und die Updates der Container unterstützen. Schau Dir mal das recht neue louislam/dockge: A fancy, easy-to-use and reactive self-hosted docker compose.yaml stack-oriented manager (github.com) an. Super Sache.

    Hat sich hier schon mal jemand mit Docker unter Windows befasst?

    Nicht Dein Ernst!? =O Puh.

    TLDR: es geht, aber mach es nicht. Unter MacOS ist das jedoch ganz gut machbar, das hat aber ja auch einen unixoiden Unterbau.

    RS Ostern L OST22 (~RS "3000" G9.5) (8C,24GB,960GB) | RS Cyber Quack (1C,2GB,40GB)

    Like 2
  • Was mich bis jetzt von Docker abhielt, sind Instanzen (wenn nicht deklariert wo ich nicht mehr wissen konnte was wo durch Docker am laufen ist.


    Ich sah Mal vor fast 2 Jahren zu wo jemand Docker für sich verwendete. Da war damals nichts strukturiert.

    Was meinst Du genau?


    Natürlich kann man auch Docker "schlecht" verwenden, wenn man keinen Plan und kein System hat.


    Ansonsten fasst man, wie mehrfach beschrieben, alles was man für eine Anwendung braucht in Stacks (in einem docker-compose.yaml File) zusammen. Und für eine andere Anwendung macht man einen anderen Stack.


    Es scheiden sich die Geister, ob man einen Datenbankcontainer für alle Anwendungen, die einen benötigen, macht und diesen überall einbindet, oder jedem Applikationscontainer seine eigene DB mitgibt. Ich finde das zweite Modell - auch wenns mehr Ressourcen benötigt - sinnvoller, da dann die Apps eigenständig sind und sich nicht gegenseitig beeinflussen können.

    RS Ostern L OST22 (~RS "3000" G9.5) (8C,24GB,960GB) | RS Cyber Quack (1C,2GB,40GB)

  • Ich wurde von einem von Docker auf Windows enttäuschten Kollegen und von einem Docker-fanatischen Freund auf das Thema Docker (natürlich unter Linux) gebracht und habe gemischte Erfahrungen damit gemacht. Gerade das Container-Management mit den Instanz-Aliases, das von den Images an sich getrennt ist, hat zu Beginn etwas der Gewöhnung bedurft - neben dem, dass man die Datenstrukturen, die man behalten möchte als „Volumes“ als path-mounts benötigt. Danach ging es eigentlich ganz gut. Problematisch sehe ich halt die alten Berichte über kompromittierte Images, dass, wie Du richtig schreibst, das compose.yaml einiger Arbeit bedarf, dass mE nicht alles so wirklich gut dokumentiert ist, wenn es um das Zusammenspiel mehrerer Services über die configs-Sektion geht. Wenn Du das erstmalig siehst, braucht das eine Weile, bis das gesickert ist.

    Aber ganz ehrlich: ich mag es immer noch nicht, obwohl ich verstehen kann, dass manche es lieben. Nur, für die Fehlersuche im Containerwald habe ich die Zeit nicht. Dafür werde ich zu alt.