Unsere Datenschutzrichtlinie wird in Kürze aktualisiert. Bitte sehen Sie sich die Vorschau an.

Virtualisierung mit Docker

LAMP-Stack aufbauen

Testen Sie unsere 2013 Kurse

10 Tage kostenlos!

Jetzt testen Alle Abonnements anzeigen
Der LAMP-Stack (Linux & Apache & MySQL & PHP) gehört zu den am weitesten verbreiteten Kompositionen mehrerer integrierter Anwendungen. Lassen Sie sich zeigen, wie einfach diese Komponenten mit Hilfe von Docker zusammenspielen.

Transkript

Die im Internet häufigste Webstack-Variante ist die Zusammensetzung aus Datenbankserver und entsprechendem HDTP-Webserver. Das Zusammenbauen dieses Konstruktes kann unter Umständen sehr aufwendig sein. Diese würde auch bereits versucht von vielen Arten von Projekten in einer aggregierte Form zu bringen Wie beispielsweise der LAMP oder XSM-Stack. Im Laufe dieses Videos zeige ich Ihnen nun, wie das mit Hilfe von Docker wesentlich sauberer und einfacher abzubilden ist. Mein Ziel ist es also nun eine PHP-Seite auszuführen. Für eine PHP-Seite benötige ich also zunächst einen Webserver, wie am häufigste verwendete Apache-Server. Da es sich hier um eine interaktive Datei handelt, also meine PHP-Datei, benötige ich weiterhin das PHP-Modul als auch das MySQL-Modul für PHP. Denn letztendlich soll meine PHP-Anwendung in die Datenbank also in einem MySQL-Server schreiben können. An dieser Stelle befinde ich mich auf meiner Docker-Hostmaschine. Im Ordner code habe ich bereits die PHP-Datei hinterlegt, die ich nun ausführen möchte. Diese heißt wall.php. Diese Datei ist so gebaut, dass sie entsprechende Zugangsdaten für die MySQL-Datenbank bekommt, die hier vorkonfiguriert sind, sich die Tabelle, die sie benötigt, selbst anlegt, und dann später in diese Tabelle Daten hineinschreibt. Soweit nichts Besonderes. Wenn man sich die Reihenfolge überlegt, muss also zuerst die Datenbank vorhanden sein, um das PHP gegen dieses Datenbank ausführen zu können. Für die Datenbank nutze ich nun das Konzept so genannter Volume-Container. Das bedeutet, ich habe eine Installation vom Typ base/archlinux. In diesem stelle ich den Ordner /var/lib/mysql bereit und diese Instanz benenne ich mit mysql-data. Die einzige Aufgabe dieser Instanz ist also zukünftig die Daten der MySQL vorzuhalten, allerdings nicht in MySL-Server. Ich starte diese Instanz nun und entsprechend erhalte ich die ID zurück. Ziel ist es nun also dem MySQL-Container so mit mysql-data zu verlinken, dass alle Daten entsprechend in mysql-data laufen. In diesem Befehl nutze ich nun die Anweisung volumes-from-mysqldata um den MySQL-Server hochzufahren. Ich verwende hierfür das Image MySQL mit der Version 5.5 und gebe zusätzlich noch die Parameter an für den Datenbanknamen und für das Root-Password des MySQL-Nutzers. Auch diesen Server starte ich nun. Um zu kontrollieren, dass das Ganze richtig funktioniert, nutze ich eine weitere MySQL-Installation, die lediglich den Client hochfährt. Hier sieht man also, dass ich den MySQL-Server nun als mysql in diese Instanz hineinlinke. Mit der Anweisung rm möchte ich, dass der Container nach der Nutzung wieder gelöscht wird. Und auf Basis des MySQL-Images führe ich nun dort den Befehl sh-c aus um das Kommando auszuführen. Das heißt mysql. Als Hostname nutze ich nun die automatisch gebundene IP-Adresse, die von diesem Link kommt. Und als Port genau das Gleiche. Zusätzlich mache ich noch Gebraucht davor, dass mir der Name Root-Nutzer bekannt ist, und dass das Pasword in der Umgebungsvariable root-password steht. Starte ich das Ganze nun, so befinde ich mich nun in der MySQL-Kommandozeile. Was so viel heißt, wie dass meine Verbindung mit dem MySQL-Server erfolgreich war. Um nun noch zu überprüfen, ob ich auch Abfragen starten kann, wähle ich nun die Spalte user aus der mysql.user-Tabelle und sehe hier ist der Root-Nutzer hinterlegt. Als nächstes teste ich noch die angelegte Datenbank mit dem Namen test. Auch die Auswahl dieser Datenbank funktioniert entsprechend. Ich beende nun den SQL-Client und automatisch ist das zugehörige Image bzw. der Container auch wieder entfernt worden. Zu guter Letzt möchte ich nun also den Apache-Webserver ausführen mit dem PHP-Modul. Für diesen Zweck eignet sich das Paket tutum/pache.php bzw. -php ideal dafür, da es die nötigen Komponenten wie PHP, Apache und auch die MySQL-Komponente bereits enthält. Zusätzlich binde ich den Port 80 auf der Host-Maschine an den Port 80 des Containers. Ich verlinke den MySQL-Server mit dem Namen mysql, da in der wall von PHP entsprechend hier für MySQL hinterlegt wurde. Zuletzt nutze ich noch die Möglichkeit ein Volume auf der Hostmaschine unter dem Orner root/code, wo sich die wall von PHP befindet, an den Ordner /bar/www/html des Containers zu binden. Ich starte das Ganze nun und der Webserver läuft entsprechend. Rufe ich nun die IP der Hostmaschine im Browser auf, so sehe ich dass die wall.php sich im Index des Apache-Webservers befindet. Wenn ich die wall.php nun ausführe, sehe ich zum einen, dass der Verbindung erfolgreich ist, gebe ich hier nun beispielsweise einen Text Text ein, so werden diese Daten erfolgreich in die MySQL geschrieben. Mit der Hilfe von nur drei Docker-Befehlen haben Sie nun ein kompletten Webserver-Stack aufgesetzt. Ferner ist diese Webserver-Stack sogar noch auf einem stabilen Konstrukt gebaut, da die Daten der MySQL separat in einem Backup laufen. Im Übrigen sind dieser Arten von Installationen wesentlich sicherer als jeder andere XSM oder LAMP-Stack und dank Docker sind Sie dabei mittlerweile nun auch deutlich flexibler.

Virtualisierung mit Docker

Steigen Sie in die Container-Virtualisierung ein und entdecken Sie einfaches Prototyping neuer und unkomplizierte Skalierung bestehender Anwendungen.

3 Std. 36 min (36 Videos)
Super Tutorial, gerne mit Sourcen zum Nachvollzieh
Günther R.

Halllo, vielen Dank für das tolle Tutorial. Ich probiere das Gezeigte gerne aus. Das hat bisher auch gut funktioniert, sieht man mal davon ab, dass sich aufgrund von Versionsänderungen nicht mehr alles so funktioniert wie beschrieben. Aber dies ist ja nun dem allgemeinen Fortschritt geschuldet und mindert nicht die Qualität dieses Tutorials. Ich hätte mir jedoch gewünscht, dass alle beschriebenen und für ein Nachvollziehen benötigten Ressourcen ersichtlich bzw. herunterladbar wären, z.B. die einfache Datei wall.php. Viele Grüße, Günther R.

 

Dieser Online-Kurs ist als Download und als Streaming-Video verfügbar. Die gute Nachricht: Sie müssen sich nicht entscheiden - sobald Sie das Training erwerben, erhalten Sie Zugang zu beiden Optionen!

Der Download ermöglicht Ihnen die Offline-Nutzung des Trainings und bietet die Vorteile einer benutzerfreundlichen Abspielumgebung. Wenn Sie an verschiedenen Computern arbeiten, oder nicht den ganzen Kurs auf einmal herunterladen möchten, loggen Sie sich auf dieser Seite ein, um alle Videos des Trainings als Streaming-Video anzusehen.

Wir hoffen, dass Sie viel Freude und Erfolg mit diesem Video-Training haben werden. Falls Sie irgendwelche Fragen haben, zögern Sie nicht uns zu kontaktieren!