LXC (Linux Containers) und virtuelle Maschinen sind beides Methoden zur Isolierung von Applikationen, jedoch gibt es einige grundlegende Unterschiede:
1. Overhead und Performance: Virtuelle Maschinen simulieren eine vollständige Hardware-Umgebung für jedes Gast-Betriebssystem, was zu erheblichem Overhead führt. Auf der anderen Seite teilen sich alle LXC-Container denselben Kernel, was zu einem geringeren Overhead und verbesserter Leistung führt.
2. Gast-Betriebssystem: Bei einer virtuellen Maschine kann das Gast-Betriebssystem von dem auf dem Host laufenden Betriebssystem variieren, solange das Gast-Betriebssystem auf der emulierten Hardware läuft. Bei LXC-Containern muss das Gast-Betriebssystem jedoch dieselbe Kernel-Version verwenden wie der Host.
3. Sicherheit: Da virtuelle Maschinen vollständig isoliert sind, bieten sie eine höhere Sicherheitsgarantie. LXC-Container teilen sich jedoch den Kernel mit dem Host, was im Falle einer Kernel-Schwachstelle zu potenziellen Sicherheitsproblemen führen kann.
4. Ressourcen-Nutzung: Da LXC denselben Kernel nutzt und auf dem Host-System läuft, können sie effizienter starten und weniger Ressourcen (CPU, Speicher) verbrauchen als virtuelle Maschinen.
5. Portabilität: Virtuelle Maschinen sind aufgrund ihrer stärkeren Isolierung und Unabhängigkeit vom Host-Betriebssystem in der Regel portabler als LXC-Container.