Was wird innerhalb eines Docker-Containers verwendet?
sobes.tech KI
Antwort von AI
Docker-Container verwenden eine Reihe von Technologien zur Isolierung von Prozessen und Ressourcen:
-
Namespaces des Linux-Kernels: Bieten Isolation für verschiedene Systemressourcen, wie:
- PID (Prozess-ID): Isolieren Prozesse.
- Net (Netzwerk): Isolieren den Netzwerk-Stack.
- Mount (mnt): Isolieren die Einhängepunkte des Dateisystems.
- UTS (Unix Timesharing System): Isolieren den Hostnamen und den Domänennamen.
- IPC (Interprozesskommunikation): Isolieren die Mechanismen der Interprozesskommunikation.
- User (Benutzer- und Gruppen-ID): Isolieren Benutzer- und Gruppen-IDs.
-
Control Groups (cgroups): Verwalten und begrenzen die Nutzung von Hardware-Ressourcen für Prozesse innerhalb des Containers, einschließlich:
- CPU: Begrenzung der CPU-Zeit.
- Memory: Begrenzung des Arbeitsspeicherverbrauchs.
- Block I/O: Begrenzung der Bandbreite für Festplatten-Ein- und Ausgabe.
- Net I/O: Begrenzung der Bandbreite für Netzwerk-Ein- und Ausgabe.
-
Union-Dateisysteme: Bieten ein zusammengeführtes Dateisystem, das aus mehreren Schichten besteht. Docker verwendet Dateisysteme wie OverlayFS, AUFS, Btrfs, ZFS. Dies ermöglicht eine effiziente Verwaltung der Bildspeicherung und das Erstellen von Schichten nur für Änderungen.
-
Docker Daemon-Prozess: Verwalten den Lebenszyklus der Container (Erstellung, Start, Stopp, Löschen).
-
Container-Laufzeit: Niedrigstufige Ausführung des Containers. Docker hat verschiedene Laufzeiten wie
runc(OCI-Spezifikation),containerdunterstützt. -
Container-Image: Ein Satz von Dateisystem-Schichten und Metadaten, die zum Starten der Anwendung erforderlich sind.
-
Anwendung: Ausführbarer Code, Bibliotheken, Abhängigkeiten und Konfigurationsdateien, die das Programm selbst bilden, das innerhalb des Containers läuft.
Im Wesentlichen ist ein Container ein isolierter Prozess (oder eine Reihe von Prozessen), der in einer eingeschränkten Umgebung läuft, die vom Linux-Kernel bereitgestellt und von Docker verwaltet wird.