cgroups begrenzt die Ressourcen, die ein Prozess oder eine Gruppe von Prozessen verwenden kann. Diese Ressourcen können CPU, Arbeitsspeicher, Netzwerk-E/A oder Zugriff auf das Dateisystem sein während Namespace die Sichtbarkeit einer Gruppe von Prozessen auf den Rest des Systems beschränkt.
Weitere Informationen finden Sie unter Wie Linux-Kernel-Cgroups und -Namespaces moderne Container ermöglichten
Die richtigen Links für diese beiden Begriffe wurden in PR 14307 behoben:
Unter der Haube basiert Docker auf den folgenden Komponenten:
Die cgroups und namespaces
Fähigkeiten des Linux-Kernels
Mit:
- cgroup :Kontrollgruppen bieten einen Mechanismus zum Zusammenfassen/Aufteilen von Aufgabensätzen und all ihren zukünftigen Kindern in hierarchische Gruppen mit spezialisiertem Verhalten.
- Namensraum :verpackt eine globale Systemressource in eine Abstraktion, die den Prozessen innerhalb des Namensraums den Eindruck vermittelt, dass sie ihre eigene isolierte Instanz der globalen Ressource haben.
Kurz:
- Cgroups =begrenzt, wie viel Sie verwenden können;
- Namespaces =schränkt ein, was Sie sehen (und daher verwenden) können
Weitere Informationen finden Sie unter „Anatomy of a Container:Namespaces, cgroups &Some Filesystem Magic“ von Jérôme Petazzoni.
Cgroups beinhalten Ressourcenmessung und -begrenzung:
- Erinnerung
- Prozessor
- E/A blockieren
- Netzwerk
Namensräume bieten Prozessen eine eigene Sicht auf das System
Mehrere Namespaces:
- pid
- Netz
- mnt
- uts
- ipc
- Benutzer:Benutzer es graduiert von experimentell in Docker 1.10
(Pro-Daemon-Instanz-Neuzuordnung von Container-Root zu einem unprivilegierten Benutzer ist im Gange:PR 12648:siehe Design)