Sobes.tech
Junior

Was ist der Unterschied zwischen Containerisierung und Virtualisierung?

sobes.tech KI

Antwort von AI

Virtualisierung emuliert die Hardware, sodass mehrere Betriebssysteme auf einem einzigen physischen Server laufen können. Jede virtuelle Maschine (VM) hat ihr eigenes Betriebssystem, Kernel, Bibliotheken und Anwendungen. Dies bietet eine starke Isolation, erfordert jedoch erhebliche Ressourcen (Speicher, CPU, Festplattenspeicher) für jede VM.

Containerisierung arbeitet auf Betriebssystemebene, wobei der Kernel des OS zwischen den Anwendungen geteilt wird. Der Container enthält nur die Anwendung, ihre Abhängigkeiten und Bibliotheken. Das macht Container leichter, schneller beim Start und ressourcenschonender als VMs. Die Isolation erfolgt auf Prozessebene und durch Namespaces des OS.

Hier sind die wichtigsten Unterschiede:

Parameter Virtualisierung Containerisierung
Ebene der Arbeit Hardware Betriebssystem
Isolation OS und VM-Kernel Prozesse und Namespaces des OS
Ressourcen Hoch (für jede VM) Gering (Kernel-Sharing)
Geschwindigkeit Langsamer VM-Start Schneller Container-Start
Image-Größe Groß (inkl. OS) Klein (nur Anwendung und Abhängigkeiten)
Portabilität Erfordert Kompatibilität auf VM-Ebene Hoch (läuft auf jedem Host)

Beispiel für eine VM-Konfiguration:

// Konfigurationsdatei für qemu/kvm
[drive]
file=/var/lib/libvirt/images/meine-vm.qcow2
if=virtio
bus=virtio
cache=none

[cpu]
type=host

[memory]
size=4g

Beispiel für eine Dockerfile-Definition für einen Container:

# Basis-Image verwenden
FROM ubuntu:20.04

# Abhängigkeiten installieren
RUN apt-get update && apt-get install -y nginx

# Anwendungsdateien kopieren
COPY html /var/www/html

# Port öffnen
EXPOSE 80

# Anwendung starten
CMD ["nginx", "-g", "daemon off;"]