© istockphoto.com/tapilipa
Teil 2: Implementierung der einzelnen Container auf Basis der festgelegten Architektur

Aus der Architektur entsteht die Lösung


Dass Docker heutzutage als ernst zu nehmende Virtualisierungslösung eingesetzt werden kann, hat sich bereits herumgesprochen. Deshalb beschäftigte sich der erste Teil dieser Serie grundlegend mit der Technologie unter der Haube von Docker und der Möglichkeit, sie als leichtgewichtige Hostinglösung für eigene Microservices zu nutzen. Im nun folgenden zweiten Teil der Artikelserie beschreibe ich die Vorgehensweise zum Aufbau einer kompletten Webseite inklusive RESTful-API und Datenbank auf Basis der beschriebenen Architektur und ihrer Realisation mittels Docker Compose und den benötigten Docker-Containern.

Im ersten Teil der Serie haben wir Docker [1] in der Version 1.7.1 und Docker Compose [2] in der Version 1.3.1 installiert, die dank des rapiden Wachstums dieser Technologien nun bereits „veraltet“ sind. Aus diesem Grund bauen wir im zweiten Teil der Serie auf Docker 1.8.3 und Docker Compose 1.4.2 auf. Dasselbe gilt für io.js [3], dessen Entwicklung gestoppt und wieder in den Node.js-4.x-Zweig überführt wurde – ein Grund, wieder auf Node.js [4] zu bauen.

Die Architektur

Bevor wir uns an die Implementierung der Lösung mittels Docker Compose machen, müssen wir die geplante Architektur nochmals betrachten, um eine Übersicht der benötigten Docker-Images zu bekommen (Abb. 1).

sambale_docker_1.tif_fmt1.jpgAbb. 1: Webseitenarchitektur auf Basis von Docker

Für die Umsetzung der Webseite inklusive Reverse-Proxy, REST-API und Datenbank benötigen wir laut Architektur vier Docker-Container, die teilweise eine Verbindung untereinander benötigen. Das Ziel ist, dass nur der nginx-Reverse-Proxy-Container aus dem Internet erreichbar sein soll (zwei-/dreistellige Portnummer); alle weiteren Container werden intern nur über Containerlinks verknüpft (vierstellige Portnummer) und bekommen somit keine direkte Verbindung nach außen.

Wir starten mit Docker Compose

Das Management von Images und Containern mit Docker und Docker Compose umfasst drei Komponenten:

  • Dockerfile: Das Dockerfile wird für jedes zu erstellende Image benötigt und beschreibt dessen Inhalt. Hier wird unter anderem spezifiziert, welche Applikationen installiert werden, welche Dateien kopiert werden müssen und welcher Prozess beim Starten des Containers gestartet werden soll. Im Prinzip ist diese Datei mit einem Shell- oder Bash-Skript vergleichbar.

  • Docker-compose.yml: Die Grundlage für Docker Compose bildet die docker-compose.yml-Datei. Sie beinhaltet die Konfiguration aller von Docker Compose orchestrierten Do...

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