Laufen mehrere Workloads auf einem Server, isoliert die Containertechnik Docker sie voneinander, sodass die einzelnen Anwendungen voneinander nichts mitbekommen. Das realisiert Docker durch eine Reihe von Bordmitteln, die der Linux-Kernel mitbringt. Der Namespace-Mechanismus sorgt dafür, dass ein eigener Namensraum für jeden Container bereitsteht. Damit kann es mehrere Prozesse mit der gleichen PID geben, jeder Container kann seinen eigenen Hostnamen vergeben oder individuell seine Netzschnittstellen konfigurieren. Wenn Anwender Garantien für einen bestimmten Anteil der Systemressourcen wie CPU, Speicher oder Netzbandbreite benötigen, kontigentiert Docker diese mit dem Cgroup-Mechanismus.
Dennoch laufen im Containerbetrieb alle Instanzen auf dem gleichen Kernel. Namespaces und Cgroups sorgen innerhalb des Kernels dafür, dass die Isolation aufrechterhalten wird. Um aber auch für Notfälle gewappnet zu sein, kann Docker zusätzlich die Frameworks AppArmor, SELinux und Seccomp einsetzen. Alle drei Subsysteme sind eine Art Firewall für Kernelressourcen: Mittels AppArmor
...Der komplette Artikel ist nur für Abonnenten des ADMIN Archiv-Abos verfügbar.