© Sergey Novikov./Shutterstock.com, © S&S Media
Fünf Optionen für Linux- und Windows-basierte Docker-Container unter Windows

Tief im Containerdschungel


Die leichtgewichtige Virtualisierung mit Docker-Containern hat inzwischen auch Einzug in das Windows-Betriebssystem gehalten. Dabei gibt es direkt mehrere Optionen, wie man Windows- oder Linux-basierte Container hosten kann. Dieser Artikel stellt vor, welche Möglichkeiten es gibt und wie man sie nutzt.

Docker gibt es seit dem Jahr 2013. Im Jahr 2014 wurde es erstmals in eine Linux-Distribution (Red Hat Enterprise Linux) integriert. Am 15.10.2014 gab Microsoft zunächst die Integration in Windows Server 2016 bekannt, am 8.6.2016 folgte die Ankündigung für Windows 10. Docker ist erfolgreich, weil es eine leichtgewichtige Virtualisierung auf Betriebssystemebene bietet. Ein Hypervisor ist (eigentlich) nicht notwendig; dies gilt aber nicht für Windows 10, wo man Hyper-V in jedem Fall auch für Docker-Container aktivieren muss (dazu gleich noch mehr). Aber auch dann kann man einen Docker-Container deutlich schneller starten und entfernen als eine virtuelle Maschine (VM). Ein Container verbraucht zudem weniger RAM und Festplattenplatz als eine VM.

Grundbegriffe in Docker

Ein Image ist eine Vorlage für einen Container, vergleichbar mit einer Klasse in der objektorientierten Programmierung. Ein Image enthält ein Betriebssystem – oft mit einer oder mehreren darin installierten Server- und Konsolenanwendungen (GUIs sind in Docker nicht möglich). Das Image enthält alle notwendigen Dateien dafür. Typischerweise ist ein Image in Schichten aufgebaut. Abbildung 1 zeigt das Image, das Microsoft mit einem Linux-basierten SQL Server bereitstellt. Die Grafik ist allerdings vereinfacht, tatsächlich gibt es mehr Schichten. Jede Schicht enthält gegenüber der vorhergehenden weitere oder geänderte Dateien. Schichten können viele GB oder auch nur wenige Bytes groß sein. Das Image ist read-only. Instanzen des Image sind die Container. In den Instanzen können Dateien ergänzt oder geändert werden. Es kann von einem Image beliebig viele Container geben. In Abbildung 1 sieht man drei Containerinstanzen des SQL Server Image.

schwichtenberg_docker_1.tif_fmt1.jpgAbb. 1: Ein Docker Image besteht aus Schichten

Ein neues Docker Image erstellt man durch einen bestehenden Container oder ein Dockerfile. Abbildung 2 zeigt das Anlegen eines Image auf Basis eines der drei Container aus Abbildung 1: Der Inhalt des Containers wird zu einer neuen Schicht im neuen Image. Das Image meinefirma/mein-tolles-sqlserver-image besteht aus dem von Microsoft bereitgestellten Basis-Image microsoft/msql-server-linux und einer zusätzlichen Schicht m...

Neugierig geworden?

Angebote für Teams

Für Firmen haben wir individuelle Teamlizenzen. Wir erstellen Ihnen gerne ein passendes Angebot.

Das Library-Modell:
IP-Zugang

Das Company-Modell:
Domain-Zugang