Neben zahlreichen Bugfixes bringt das Virtualisierungstool Docker in Version 0.7 auch mehrere signifikante Neuerungen mit. Linux-Nutzer dürften sich vor allem über den Support auf sämtlichen Linux-Plattformen freuen.
Fortan ist dank eines Storage-Treibers von Red Hats Alexander Larsson kein gepatchter Linux-Kernel mehr nötig, um Docker unter den Linux-Distributionen zum Laufen zu bringen. Die Patches waren nötig, um AUFS-Unterstützung zu gewährleisten, die der Kernel nativ nicht bietet. Drei neue Storage Driver für AUFS, VFS und Devicemapper liegen bisher vor und helfen Docker, beim Start das passende Dateisystem auszuwählen. Weitere Treiber für Btr-FS, ZFS, Gluster und Ceph sollen folgen. Die Treiber können zwar keine Daten auf derselben Maschine teilen, aber die von ihnen produzierten Images sind kompatibel, auch mit vergangenen Docker-Versionen.
Hinzu kommen Offline-Transfers über die Save- und Load-Kommandos: Container-Images lassen sich nun als Export-Bundles in das lokale Dateisystem exportieren und von anderen Docker-Daemons laden. Die daraus resultierenden Images werden mitsamt Konfiguration, Erstellungsdatum und Build History aufbewahrt, und wie normale Dateien transferieren. Das soll insbesondere Software-Hersteller ansprechen, die Appliances an ihre Kunden liefern. Dank sicherem Offline-Transfer können Docker-Container auch für Updates zum Einsatz kommen, ohne Sicherheitskonzepte zu gefährden.
Die Port-Umleitung wurde überarbeitet, so dass sich nun statische Ports und feste Ziel-IPs einrichten lassen. Die “-expose”-Flag sorgt dafür, bestimmte Ports überhaupt nicht an die Interfaces weiterzuleiten. So lassen sich bestimmte Dienste schützen, etwa eine Datenbank, die nur aus dem Container selbst heraus zugänglich ist. Zwei weitere Features verbessern die Security nachhaltig: “docker run” leitet keine Ports weiter, diese bleiben “private by default”. Der Admin muss sie über “-p” öffentlich machen. Zugleich wird auf die “<public>:<private>”-Syntax verzichtet: “EXPOSE <private>” funktioniere aber weiterhin.
Links erlauben es Containern, sich gegenseitig zu entdecken und sicher miteinander zu kommunizieren. Diese Inter-Container-Kommunikation läst sich über “-icc=false” abschalten. Ist das False-Flag gesetzt, ist keine Kommunikation möglich, es sei denn, sie wurde explizit genehmigt, was die Sicherheit verbessern soll. Zwei verlinkte Container bilden dann ein Eltern-Kind-Paar, wobei der Eltern-Container über Environment-Variablen den Namen, die exponierten Ports, die IP-Adresse und die Umgebungsvariablen des Childs erhält. Soll ein WordPress-Container etwa auf eine MySQL-Datenbank zugreifen, ist das hilfreich.
Nicht zuletzt lassen sich Container über das “-name”-Flag unterscheidbar betiteln und wurde die Qualität der Software verbessert. Weitere Details stehen im Docker-Blog, die Software lässt sich über die Github-Webseite herunterladen.






