Sinn oder Unsinn einen LAMP-Stack als Docker Container für Webhosting?

XamBonX

Commander
Registriert
Nov. 2002
Beiträge
2.843
Ich bin mir nicht wirklich sicher, ob es Sinn macht auf einem VPS einen LAMP-Stack Container für produktiven Einsatz zu betreiben, im gegensatz zu Apache2, MariaDB/MySQL, php, phpmyadmin und ngnix zu installieren und zu konfigurieren, dann die Maschine halt mit Snapshots und BackUps vor Ausfall schützen.

  • Warum sollte ich es tun?
  • Warum sollte ich es nicht tun?

Kann nicht wirklich die pro / cons sehen hier. Helft mir mal, bitte!

Danke,
Bonx
 
Zuletzt bearbeitet:
Container machen Sinn, wenn mehrere Anwendungen parallel auf der gleichen Hardware laufen soll. Das kann die gleiche mehrfach sein oder verschiedene. Dank der Container stören sich die jeweiligen Installationen nicht gegenseitig. Außerdem kann man mit Container leicht die Container inkl. Daten auf andere Hardware übertragen oder die Container innerhalb einer Hardware auf eine neue Version heben.
 
Was soll sich beim normalen LAMP-Kram denn "gegenseitig stören"?

Ich habe vor Jahren mal geschaut, ob es Sinn macht, eine von mir betreute größere Website in Container für nginx+PHP-FPM+MySQL aufzuteilen. Angeschaut, was es da so an Images fertig gibt. Ich war eher underwhelmed, da gab's eigentlich nichts, was mir Arbeit abgenommen hätte, stattdessen hätte ich noch mehr Config schreiben müssen, viele Workarounds für Dinge machen müssen, an die die Ersteller der Images nicht gedacht haben, und schließlich hätte ich den Zoo von Containern auch noch aktuell halten müssen, was bei vier "Herstellern" statt einem keinen Spaß macht. Von der Sicherheit her hätten mir Container auch nichts gebracht, denn z.B. nginx und PHP greifen eh auf die gleichen Dateien zu, und alle Dienste benutzen sowieso schon unterschiedliche Benutzer.

Aber trotzdem läuft jetzt alles in einem Container, aber einfach tatsächlich in einem baseimage-docker. Da muss man dann nicht mit Container-Config basteln, aber man kann z.B. recht einfach auf dem gleichen Host eine weitere Instanz des jeweiligen Dienstes starten, um darin Upgrades zu testen. Besser als Docker wäre in dem Zusammenhang vermutlich systemd-nspawn gewesen.
 
GrumpyCat schrieb:
Aber trotzdem läuft jetzt alles in einem Container, aber einfach tatsächlich in einem baseimage-docker. Da muss man dann nicht mit Container-Config basteln, aber man kann z.B. recht einfach auf dem gleichen Host eine weitere Instanz des jeweiligen Dienstes starten, um darin Upgrades zu testen. Besser als Docker wäre in dem Zusammenhang vermutlich systemd-nspawn gewesen.
Und wie haste das gemacht? Irgendwo ne Anleitung wie ich das testen kann?
 
Du kannst ein vorerstelltes LAMP Image nutzen oder irgendeines in dem du anschließend die Anwendungen installierst. Ein laufenden Container kannst du wie ein normales Betriebssystem behandeln. Anleitungen dazu gibt es genügend.

Ich würde das alles aber nicht per Hand via docker cli machen, sondern auf eine GUI zurückgreifen.

"Docker Management" von komfortabel zu viel Einzelhandgriffe notwendig: Cloudron, CapRover und Portainer:
Portainer verwaltet wirklich nur die Container während Cloudron mit Email Support und Nutzerverwaltung aufwartet. CapRover liegt da dazwischen.
 
Ich nutze Portainer bisher. Mal gucken wie sich das fährt.
 
XamBonX schrieb:
Ich bin mir nicht wirklich sicher, ob es Sinn macht auf einem VPS einen LAMP-Stack Container für produktiven Einsatz zu betreiben, im gegensatz zu Apache2, MariaDB/MySQL, php, phpmyadmin und ngnix zu installieren und zu konfigurieren, dann die Maschine halt mit Snapshots und BackUps vor Ausfall schützen.
So richtig verstehe ich dich nicht.
Ob nun ein Lamp Stack direkt auf dem Gastbetriebssystem laufen hast oder im Container macht kaum einen Unterschied. Jenachdem was du machen willst, musst du so oder so an die Config vom Webserver, PHP Interpreter und Datenbank ran. Snapshots unterscheiden sich auch nicht groß, ob da nun ein BTRFS/ZFS Snapshot vom Betriebssystem und Lamp Stack gemacht wird oder du nur einen Snapshot vom Dockerimage ziehst.. in der Wirkung nimmt sich das nur unwesentlich was.
Selbst beim Umziehen, macht es keinen so großen Unterschied. Entweder hast du händig Arbeit oder hast ein funktionierendes Ansible Playbook.

Im Zweifelsfall bin ich dafür, dass jede Abstrakionsebene und jeder Dienst auf einem Server begründet werden muss. Wenn du das für Docker nicht kannst, wäre es ne Maßnahme Docker wegzulassen.

Edit: Wenn du ein Gastbetriebssystem im VPS selbst verwalten musst, wird es eigentlich nur aufwendiger. Du hast die Pflege vom Betriebssystem und vom Dockerimage an der Backe.
 
Zuletzt bearbeitet:
Zurück
Oben