Eine virtuelle Maschine ist ein (oder mehrere) simulierter Computer innerhalb deines Computers. Jede virtuelle Maschine enthält ein eigenständiges Betriebssystem, das Ressourcen wie Prozessor, Speicher und Festplattenspeicher zugewiesen bekommt. Das bietet eine hohe Flexibilität in Bezug auf die Unterstützung verschiedener Betriebssysteme und Anwendungen, kann jedoch auch ressourcenintensiv sein.
Ein Container hingegen teilt sich den Betriebssystemkern des Hosts, auf dem er läuft. Er enthält nur die Anwendung, ihre Abhängigkeiten und die Laufzeitumgebung, die für die Ausführung der Anwendung erforderlich sind. Container sind leichtgewichtiger als VMs, da sie keine gesamte Betriebssysteminstanz enthalten. Container kann man schnell starten, da sie ohne den Overhead eines kompletten Betriebssystems auskommen.