Linux Virtualisierung-Software

So setzen Sie Docker-Virtualisierung richtig ein

Mit Docker isolieren Sie Software in abgeschotteten Containern. Die Technik eignet sich vor allem für die Webentwicklung und die saubere Trennung von Webdiensten und Betriebssystem.

Virtualisierung erhöht die Sicherheit, weil dabei Betriebssysteme und Programme in abgeschotteten Umgebungen (VM) laufen. Die Vollvirtualisierung wie im Artikel „Virtualbox 5.0“ ab Seite 64 beschrieben fordert allerdings erhebliche Ressourcen des Host-Systems. Zudem müssen Sie Gastsysteme und Anwendungen regelmäßig aktualisieren, um potenzielle Sicherheitslücken zu reduzieren. Docker bietet eine alternative Technik, mit der sich Pflege und Administrationsaufwand für virtualisierte Anwendungen verringern lassen. Die in diesem Artikel verwendeten Beispieldateien und Kommandozeilen können Sie über www.pcwelt.de/docker herunterladen. Entpacken Sie die Datei „docker.tar.gz“ im Home-Verzeichnis. Dabei entsteht der Ordner „docker“.

1. Dienste und Anwendungen im Container-Container

Statt eines kompletten Systems virtualisiert Docker nur Teile davon. Dabei setzt es direkt auf dem laufenden Linux-Kernel auf und nutzt dessen Fähigkeiten geschickt, um isolierte Container für Programme bereitzustellen: Control Groups (Cgroups) limitieren Speicher, CPU-Zyklen und I/O-Leistung für einen Prozess und Kernel-Namespaces isolieren Prozesse strikt voneinander. Für virtuelle Festplatten-Images, die Snapshots und Layer unterstützen, kommen wahlweise die Dateisysteme BTRFS oder AUFS zum Einsatz. Docker dient für alle Komponenten als Verwaltungswerkzeug und definiert ein portables Container-Format, das es erlaubt, Container zwischen Linux-Systemen zu verschieben. Ein weiterer Pluspunkt ist, dass man bei Docker kein Gastsystem benötigt. Docker macht System-Images verbreiteter Linux-Distributionen über ein Online-Verzeichnis verfügbar. Zum Start eines Containers kann Docker einfach das gewünschte Gastsystem über eine Internetverbindung herunterladen. Es gibt aber auch Einschränkungen: Die Technik eignet sich nicht zur Vollvirtualisierung von Systemen, da Docker-Container immer den Linux-Kernel des Host-Systems mitbenutzen. Dementsprechend können Container ausschließlich Linux-Systeme und -Programme enthalten.

Programme starten: In einem Container installieren und starten Sie Programme wie gewohnt.
Programme starten: In einem Container installieren und starten Sie Programme wie gewohnt.

Docker emuliert auch keine Hardware oder gar andere Prozessorplattformen. Das Konzept hat also mehr mit einer Chroot-Umgebung oder mit Free-BSD-Jails gemein als mit Virtualisierung. Zurzeit ist der Einsatzbereich vor allem auf typische Server-Dienste wie Content-Management-Systeme, Datenbanken oder Mailserver beschränkt. Programme für die grafische Oberfläche sind in Docker eigentlich nicht vorgesehen. Einige Gnome-Entwickler arbeiten im Projekt „Sandboxed Apps“ jedoch an dieser Option. Über ein paar Umwege können Sie schon jetzt etwa einen Firefox aus einem Docker-Container starten (-> Punkt 6).