Docker, rumspielen mit Containern

Diese Woche geht’s um Container, Java,  Tomcat, Jetty, Railo , lucee , Enterprise und Amazon.

Eine Enterprise Lösung soll mit docker in eine Testumgebung gebracht werden.

Die Grundlage bildet ein beliebiges Unix in meinem Fall centos oder wheezy (debian). Der erste Container beinhaltet Java 7 und bildet somit einen wichtigen Grundstein. Ich habe Java in einem eigenen Container damit ich diesen leichter verändern kann ohne die anderen Komponenten zu verändern.
                                                                  
Als nächster Container steht Tomcat, alternativ Jetty auf dem Plan. Diese werden furbdie Java compilierung benötigt.

Der dritte Container ist ein servlet für die jvm dies wird benötigt um coldfusion zu interpretieren. Hier kann noch das letzte stabile railo servlet genutzt werden oder schon der Nachfolger lucee verwendet werden.

Der vierte Baustein ist die Enterprise Lösung als application selbst.

Nun können die verschidenen Container wahlweise aufeinander aufbauen um meine Application auf jetty und tomcat zu testen kann ich natürlich auch zwei verschiedene Testsenarien aufbauen eben so die Verwendung von lucee und railo.

Natürlich kann ich auch noch weitere Java Container einrichten um zu sehen wie es mit Java 8 läuft.

Wenn alle Container eingerichtet sind und ich das Produktions System nachgebildet habe können die Tests der enterprise auch schon losgehen.

Durch das flexible tauschen der Container ist es problemlos möglich upgrades von wichtigen Komponenten schnell und einfach in einer testumgebung laufen zu lassen um zu prüfen ob die produktiv Systeme ein entsprechendes upgrade bekommen können.

Entsprechende Dockerfiles und eine Übersicht nützlicher Befehle werden in kürze folgen.

Docker erste Erfahrung

Docker ist ein auf Linux basierender Virtuallisierungs Service der es ermöglicht verschiedenste Anwendungen in kleinen in sich geschlossenen Containern zu hosten.

Für Windows Nutzer gibt es boot2docker (http://boot2docker.io/ OpenSource). Hier wird eine VirtualBox installiert auf welcher der Linux Servic läuft. Gleichzeitig wird noch eine Shell (msys-git) und VirtualBox selbst heruntergeladen um fehlende Komponenten zu ersetzten.

Docker läuft nur auf 64 Bit Systemen und benötigte bei meinem Arbeitsrechner noch eine Zusätzliche Bios einstellung für die Virtuallisierung (Virtualization , Hyperthreading).

Nach der Installation von Boot2Docker, VirtualBox, der Shell und den Einstellungen im Bios konnte es dann ach schon fast losgehen. Ich hab in VirtualBox boot2docker das geteilte Verzeichniss (c/Users) Lokal :C:\Users) auf  Lokal : D:\dev geändert.

Jetzt aber los:

Schnell die Tasten Kombination: Windows + R gedrückt und in das Ausführen Feld „boot2docker start“ eingetippt. Die VirtualBox startet und meine Shell verbinden sich direkt hinein.

Als erstes habe ich mir einen MongoDB Container erstellt der auf den Standartports läuft:

docker run -d -p 27017:27017 –name mongodb dockerfile/mongodb

Erklärung

-d für deamon damit das ganze meine shell nicht blockiert,

-p für die Ports damit ich auch extern darauf zugreifen kann  ,

–name um einen eindeutigen Bezug  auf den Container zu bekommen

Dann hab ich mir eine einen Railo Container zum testen gebaut:

docker build -t railohttps://github.com/chapmandu/docker-railo.git

und ihn starten

docker run -d -t  -p 80:8080 –name webserver1 –link mongodb:mongodb railo

Damit habe ich einen Webserver mit Tomcat / Railo und MongoDB am laufen.

Jetzt muss ich mir nur noch die IP raussuchen: Tasten Kombination: Windows + R: CMD und dort in die Shell: boot2docker ip eingeben. Schon habe ich die IP.

Chrome auf, IP in die Adressleiste eingeben und Enter drücken. Schon kommt die Ausgabe der Railo Testseite.

[UPDATE: 09.03.2017]

Leider werden zur Zeit noch keine Microsoft Produkte unterstützt, so ist es nicht Möglich einen SQL Server in einen Container zu schmeißen.

Hier arbeitet Microsoft selbst bereits dran und implementiert dies direkt in die Microsoft Windows Server Betriebssysteme. Leider geil!

MSSQL Server und mehr von Microsoft sind hier zu finden: https://hub.docker.com/u/microsoft/

Happy Docking (breites Grinsen)