Mit der stabilen 1.0 in Reichweite liefern die Docker-Entwickler für die Version 0.9 nochmal Neues: Libcontainer löst LXC ab und Execution Driver isolieren die Container.
Ein Execution Driver API soll den Entwicklern laut Ankündigung dabei helfen, die Umgebung, in der sie die Container ausführen wollen, anzupassen. Docker kann hier von den zahlreichen Isolationstools der verschiedenen Systeme profitieren. Konkret zählt das Projekt Open VZ, “systemd-nspawn”, “libvirt-lxc”, “libvirt-sandbox”, Qemu/KVM, BSD Jails, Solaris Zones sowie “chroot” auf. Diese Werkzeuge lassen sich ergänzend zu LXC einsetzen.
Libcontainer ist eine in Go verfasste Bibliothek, die eine direkte Kommunikation zwischen Docker und dem Container-API im Kernel ermöglichen soll. Sie spart so den Umweg über Libvirt, LXC oder “systemd-nspawn”. Auf diese Weise kann Docker ohne fremde Hilfe Namespaces, Control Groups, Capabilities, Apparmor-Profile, Netzwerkgeräte sowie Firewall-Regeln modifizieren. Der neue Weg sei so zuverlässig, dass man ihn ab Version 0.9 zum Standard mache, während LXC nur noch eine optionale Lösung sei. Man werde LXC weiter unterstützen, wer es nutzen möchte, startet Docker über “docker -d -e lxc”.
Mit dem Einsatz von Libcontainer macht sich das Projekt unabhängig von Änderungen an LXC. Zugleich empfehlen die Macher den Einsatz von Libcontainer auch in anderen Bereichen. Neben den beiden großen Änderungen gibt es Dutzende von Reparaturen, die nächste Version 0.10 soll dann zugleich der Release Candidate für Docker 1.0 werden. Auf Github warten das komplette Changelog und die Software zum Download.







