Docker – das Tool für DevOps in der Praxis (Teil 2) – Einführung in Docker

04.11.2015

docker-iconIm ersten Artikel dieser Serie haben wir die „DevOps“-Bewegung näher beleuchtet. Dieser Beitrag soll die Software Docker und den Zusammenhang zu DevOps erklären.

Was ist Docker und wie hilft es bei DevOps?

Docker ist hilfreich für die Umsetzung von DevOps, da es die Zusammenarbeit von Entwicklern und dem Betrieb unterstützt und Entwicklungsumgebung und Produktionsumgebung wieder näher zusammenrückt. Dieser Abschnitt zeigt, wie Docker funktioniert und beschreibt die enge Zusammenarbeit von Entwickler („Dev“) und Betrieb („Op“) mit Hilfe von Docker.

In einem sogenannten Docker Image wird die Ablaufumgebung und die Anwendung selbst integriert. Das Docker Image wird auf Basis einer Konfigurationsdatei (Dockerfile) gebaut, welche in einem Source Code Repository versioniert werden kann. Da Images aufeinander aufbauen, kann der Betrieb beispielsweise die Ablaufumgebung in einem Basis-Image sehr detailliert definieren und der Entwickler in einem darauf aufbauenden Image seine Anwendung integrieren – aber auch noch Einfluss auf die Ablaufumgebung nehmen. Durch Einsicht in das Dockerfile kann der Betrieb wiederum diese Änderungen leicht nachvollziehen.

introduction to docker grafik

Abbildung 2 – Docker Übersicht in Anlehnung an „Introduction to Docker“[1]

Das finale Image kann über eine zentrale Docker Image Registry auf die Zielsysteme übertragen werden. Das kann die Umgebung eines Entwicklers, aber auch die Produktionsumgebung unter der Kontrolle des Betriebs sein. So ist sichergestellt, dass überall die Anwendung in derselben Ablaufumgebung läuft. Dadurch ist ein gleiches Verhalten der Anwendung auf verschiedenen Systemen gewährleistet. In der Praxis besteht ein Anwendungssystem aus mehreren laufenden Docker Images, die während der Laufzeit Container genannt werden. Dies passt sehr gut zu dem weiteren neueren Paradigma Microservices, wie auch Roland Huß in einem Interview[2] ausführt.

Docker entwächst den Kinderschuhen

Docker erreichte im Juni 2014 die Version 1.0[3] und hat auch danach die rasante Entwicklungs- und Verbreitungsgeschwindigkeit beibehalten. Wie jedoch Joerg Fritsch von Gartner ausführt, existiert noch ein Nachholbedarf bei der sicheren Verwaltung und der Gewährleistung von Vertraulichkeit, Integrität und Verfügbarkeit[4], was gerade beim Unternehmenseinsatz wichtig ist. Für das Jahr 2015 wurden Lösungen für diese Probleme von Docker oder dem Ökosystem erwartet, was sich auch zum großen Teil erfüllt hat. Beispielsweise bietet Google mit Kubernetes[5] mittlerweile ein produktionsreifes Werkzeug zur Container-Orchestrierung und damit Verwaltung an, welches auch als Cloud-Service „Container Engine“ angeboten wird[6]. Docker selbst hat in der Version 1.8 das geforderte Signieren von Images eingeführt[7].

Die BANYAN-Studie zeigt außerdem, dass in der öffentlichen Docker Registry bereitgestellte (Basis-)Images noch nicht ausreichend schnell aktualisiert werden, um Sicherheitslücken zu schließen[8]. Mittlerweile hat Docker in diesem Zusammenhang die „Docker Bench for Security“[9] veröffentlicht, mit der die Sicherheit eines Docker-Hosts geprüft werden kann.

Wer einen Überblick zum sich um Docker herum entwickelnden Ökosystem behalten will, kann sich die Linkliste Awesome Docker[10] genauer anschauen.

Dieser Artikel sollte einen Überblick zu Docker geben und beispielhaft anhand der Dockerfile/Image-Verwendung zeigen wie Entwickler und Betrieb damit enger zusammenarbeiten können.

Der nächste Artikel dieser Serie wagt eine Bewertung und einen Ausblick in die Zukunft von Docker.


Quellen:

[1] Introduction to Docker
[2] Docker und Microservices – eine perfekte Symbiose
[3] It’s Here: Docker 1.0
[4] Gartner: Anwendungs-Container mit Docker für Unternehmeneinssatz nur eingeschränkt zu empfehlen, Die Sicherheit von Docker: Solide, aber noch nicht ausgereift (Security Properties of Containers Managed by Docker)
[5] Google veröffentlicht Kubernetes 1.0 (Kubernetes V1 Released – Cloud Native Computing Foundation to Drive Container Innovation)
[6] Google Container Engine ist nun vollwertiger Cloud-Dienst (Google Container Engine is Generally Available)
[7] Introducing Docker Content Trust
[8] BANYAN-Studie: Sicherheitslücken bei Docker (CIS Docker 1.6 Benchmark v1.0.0)
[9] Anwendungs-Container: Skript testet Docker-Sicherheit, Docker stellt Test-Suite für Sicherheit vor (Docker Bench for Security)
[10] Die große Docker-Linkliste: Kostenlose Tipps, Tricks und Tutorials für Docker-Fans (Awesome Docker)

Bildquelle:

Docker

 

doubleSlash-Teaser-Blog_Programmierung

Zurück zur Übersicht

Kommentar verfassen

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert

*Pflichtfelder

*