DockerCon: Docker stellt universelle Laufzeitumgebung für Container vor

runC enthält all den Code, den Docker dazu benutzt, um für die Container nötige System-Features anzusprechen. Der Quelltext des Projekts ist nun als Teil des neuen Open Container Project verfügbar.

In Pocket speichern vorlesen Druckansicht 11 Kommentare lesen
Docker Container
Lesezeit: 2 Min.
Von
  • Julia Schmidt

Laut der im Rahmen der DockerCon veröffentlichten Vorstellung des runC-Projekts, bestehen gut fünfzig Prozent der Docker-Infrastruktur aus kleinen Tools, die eine Reihe der für das Funktionieren der Container-Technik essenziellen Aufgaben auf die nach Empfinden der Entwickler einfachste und verlässlichste mögliche Weise erledigen. Ohne sie wäre die Kommunikation mit Betriebssystemfeatures wie systemd oder iptables nicht möglich. Dieser Teil der Infrastruktur steht nun als runC als Element des im Juni 2015 vorgestellten Open Container Project (OCP) auf GitHub bereit.

Ziel von runC sei es, standardisierte Container überall lauffähig zu machen. Die portable Laufzeitumgebung sei unter anderem so entworfen, dass sie ein möglichst hohes Maß an Sicherheit gewährleiste und es keinerlei Abhängigkeiten zur Docker-Plattform mehr gebe. runC kann mit Funktionen wie vollständigem Support für Linux-Namensräume und Windows-10-Container, Möglichkeiten zur live Migration und einem formal festgeschriebenen Konfigurationsformat (vom OCP angetrieben) aufwarten. Letztlich seien Container nichts anderes als eine Sammlung von System-Features, die in eine einheitliche Komponente integriert sind, die runC darstelle.

Der Schritt, die eingangs erwähnten Verbindungselemente und -Tools vom Rest der Plattform zu lösen, wird von den Betreibern als wichtigste architektonische Veränderung seit Beginn des Docker-Projekts bezeichnet. Gleichzeitig verspricht sich das Docker-Team viele Verbesserungen von der Separierung. Beispielsweise sei Docker so für den Betrieb leichter zu handhaben und durch das höhere Maß an Modularität einfacher zu skalieren, zu sichern, anzupassen und im Fehlerfall zu reparieren. Zudem würden alle Verbindungselemente so einheitliche Schnittstellen freilegen, die jede Komponente in einen potenziellen Integrationspunkt verwandelten.

Da die Regeln, wie die nun extrahierte Infrastruktur geschaffen wurde, zu den Grundpfeilern des Projekts gehöre, werden sie von den Mitarbeitern als "Infrastructure Plumbing Manifesto" bezeichnet. Inhaltlich besagt das Manifest, dass, wann immer es möglich ist, auf bestehende Verbindungselemente zurückzugreifen ist und Verbesserungen an ihnen weiterzugeben sind. Sollte zusätzlicher Code nötig sein, sollte er so gestaltet sind, dass sich die Ergänzungen einfach an anderer Stelle weiterverwenden lassen. Zudem habe man sich am Unix-Prinzip, dass mehrere einfache Komponenten einer komplexen allumfassenden Lösung vorzuziehen sind, zu orientieren. Bei all dem sei es immer wichtig, auf standardisierte Schnittstellen zu achten, mit denen sich einfache Komponenten bei Bedarf in komplexeren Systemen vereinen lassen. (jul)