Server-OS-Wahl: Ubuntu vs. Alpine
Für VMs ist Ubuntu seit Jahren unsere erste Wahl. Alpine dominiert bei Containern. Die Entscheidung ist weniger ideologisch als praktisch.
Ubuntu: Das Arbeitspferd
Ubuntu Server LTS bringt glibc, Systemd, breiten Hardware-Support und einen vorhersehbaren Support-Zyklus von 5+5 Jahren. Nahezu jede Software hat ein Ubuntu-Paket oder einen getesteten Installationspfad.
In VMs ist das unser Standard — Proxmox-Host, dann Ubuntu-VM, dann Docker obendrauf. Der Overhead von ein paar hundert MB Image-Größe spielt bei VMs keine Rolle. Wichtiger ist: der Betrieb ist vorhersehbar, Security-Updates kommen per unattended-upgrades, und jeder im Team kann im Notfall ohne Einarbeitung eingreifen.
Alpine: Die Container-Königin
Alpine ist winzig — ~5 MB Basis-Image. Es nutzt musl statt glibc und busybox statt GNU-Coreutils. Das reduziert die Angriffsfläche und die Image-Größe, aber es bedeutet: manche Binaries erwarten glibc und laufen nicht ohne Anpassung.
In der Container-Registry dominiert Alpine deshalb zu Recht. Für Microservices, die nur ihre eigene Binärdatei und minimale Abhängigkeiten brauchen, gibt es nichts Schlankeres.
Der musl-Unterschied
musl ist korrekt, aber DNS-Auflösung verhält sich anders als unter glibc. Manche Software (etwa Node.js in älteren Versionen, manche Python-Wheels mit C-Extensions) macht Ärger. Das ist kein Grund gegen Alpine, aber man muss es wissen, bevor man drei Stunden debuggt.
Direkter Vergleich
| Kriterium | Ubuntu LTS | Alpine |
|---|---|---|
| libc | glibc | musl |
| Basis-Image | mehrere hundert MB | ~5 MB |
| Tooling | GNU-Coreutils, systemd | busybox |
| Kompatibilität | sehr breit | gelegentlich Anpassung nötig |
| Support | 5+5 Jahre LTS | rolling, schlank |
| Ideal für | VMs & Host-Systeme | Container / Microservices |
Die dritte Option: distroless & Wolfi
Zwischen "fett, aber kompatibel" und "winzig, aber musl" hat sich eine dritte Klasse etabliert: distroless-Images (nur die Anwendung plus Laufzeit, keine Shell, kein Paketmanager) und Wolfi/Chainguard-Images — minimal, aber glibc-basiert und mit Fokus auf möglichst wenige CVEs. Wo es auf kleine Angriffsfläche und glibc-Kompatibilität ankommt, sind sie oft die bessere Antwort als Alpine.
Unsere Faustregel
Ubuntu LTS für VMs und Host-Systeme. Alpine für Container, wo es passt. Wenn ein Container-Image auf Alpine nicht sauber läuft, weichen wir auf debian:slim oder ein Wolfi-Image aus — immer noch klein genug, aber glibc-kompatibel.
Fazit
Alpine ist kein Ersatz für Ubuntu, sondern der richtige Kernel für Container-Workloads. Ubuntu ist der richtige Kernel für alles, was länger als einen Tag laufen soll und von Menschen gewartet wird.