© Excellent backgrounds/Shutterstock.com
Kolumne: Docker rockt Java

Apache Tomcat meets Docker: Webanwendungen als Docker-Images herstellen


von Peter Roßbach

Das Docker-Ökosystem ist die ideale Umgebung, um Webanwendungen zu implementieren. Verschiedene Anwendungen auf einer Gruppe von Rechnern isoliert voneinander bereitzustellen, ist unser täglich Brot. Leider ist es mit der viel gelobten Portabilität im Java-Umfeld so eine Sache: Unsere Anwendungen müssen dennoch an die jeweilige Umgebung angepasst werden. Docker-Container können hier helfen, die Anwendungen und ihre Umgebung betriebsbereit und portabel zu produzieren. Wie in den meisten Fällen existieren unterschiedlichste Möglichkeiten, eine Anwendung zu verpacken. In diesem Beitrag werden verschiedene Bereitstellungen von Webanwendungen mit Docker beschrieben.

Video: Docker für Java Entwickler

Docker-Container basieren auf den Funktionalitäten des Linux-Kernels und können in verschiedenen Umgebungen direkt betrieben werden. Damit wird ein Versprechen von Java „Write once, run anywhere“ [1] systematisch umgesetzt: Es betrifft alle Komponenten eines Systems und nicht nur die Anwendungssoftware. Wir können somit in gleicher Art und Weise auch unsere Load Balancer, Datenbank, Caches oder Message-Systeme bereitstellen. Die Leichtgewichtigkeit beruht auf den schon lange vorhandenen Linux-APIs wie Name­spaces, cgroups, Capabilities, Software Defined Networks oder SELinux und den guten Erfahrungen von Cloud-PaaS-Providern mit der Linux-Container-Technologie. Da Docker direkt auf der Kernelvirtualisierung aufsetzt und ein Layered-Filesystem zur Bereitstellung der Software nutzt, ist Docker enorm ressourcenschonend im Vergleich zu herkömmlichen Virtualisierungslösungen. Docker fügt neben einem REST-Service für das Management der Container noch die Definition eines austauschbaren Image-Formats hinzu. Das Teilen von vorgefertigter, direkt ausführbarer Software ist mit Docker Realität geworden. Es befeuert die Idee, eine kontrollierte Umgebung von der Entwicklung bis in die Produktion zu nutzen. Webanwendungen oder gar Microservices lassen sich so einfacher realisieren und orchestrieren. Wichtiger Punkt ist, dass die Software in möglichst unabhängigen und autarken Einheiten bereitgestellt wird.

Bereitstellen von Apache-Tomcat-Docker-Images

Bekanntermaßen kann das Aufsetzen einer Entwicklungsumgebung für Java mit Apache Tomcat von vielen Tücken begleitet sein [2], [3]. Schnell kommt das Set-up einer Datenbank und weiterer Backends hinzu. Die Skalierung auf vielen Maschinen und ein unterbrechungsfreier Releasewechsel stellen sich schnell als die w...

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