Welchen Teil des Betriebssystems läßt Docker denn wegfallen? Nur so als Info für mich, damit ich weiß, was ich darin nicht laufen lassen kann.
Das ist einfach beantwortet: den Kernel.
Allerdings sind es nicht nur Teile eines Betriebssystems, die wegfallen, sondern auch Emulierung von Hardware. Festplatten und Netzwerkadapter können viel effizienter an den Gast weitergereicht werden. Es muss nicht umständlich eine Hardware emuliert werden um sie anschließend per Treiber wieder anzusprechen. Auch ein BIOS wird nicht benötigt.
Docker läuft innerhalb eines Linux-Systems und schottet "nur" Prozesse gegeneinander ab (und alles was dran hängt, Netzwerk, Dateisystem,...), was Linux von Haus aus schon unterstützt. Deswegen kann in einem Container immer nur ein Prozess laufen, z.B. der Web-Server. Brauch man eine
DB, benötigt man einen weiteren Container. usw. Das muss man bei der Wahl VM oder Docker ebenfalls beachten.
Das erste ist richtig. Containerlösungen schotten quasi den Userspace des Kernels ab. Es läuft weiterhin nur ein Kernel, aber alles was auf diesem läuft ist dann quasi einem Container (oder dem Host) zugeordnet. Es kann dann mehrere Prozesse mit einer PID geben. Diese PID ist natürlich nur innerhalb des eigenen Containers aussagekräftig.
Dass nur ein Prozess in einem Container laufen kann stimmt aber nicht. Es können beliebig viele Prozesse laufen. Ein Web- oder Datenbankserver benötigt ja auch mehrere Prozesse um richtig zu funktionieren.
Man könnte allenfalls behaupten, dass die Abschottung in mehrere Container durchaus sinnvoll ist, um eine gewisse Unabhängigkeit zu erreichen. Man hat eventuell bessere Portabilität oder ein einfacher durchzuführende Backups. Das sind aber alles keine notwendigen Gründe für alles einen eigenen Container zu verwenden.