Docker Grundlagen und Unklarheiten

Telvanis

Lt. Junior Grade
Registriert
Dez. 2015
Beiträge
333
Moin Leute.
Ich möchte auf einem CentOS Webserver Docker für einige Anwendung und die simplere Aktualisierung eben jener nutzen. Allerdings habe ich mich vorher noch nie mit Docker beschäftigt und mich seit gestern deshalb mal in das Thema eingelesen. Leider sind bei mir noch einige Unklarheiten geblieben:
Zum einen: Die einzelnen Container sind untereinander ja unabhängig und können sich nicht "sehen". Warum aber sollte ich dann eine Datenbank in einen Container implementieren, wenn diese dann nicht durch ein Front-End in einem anderen Container (phpMyAdmin o.ä.) aufgerufen werden kann? Ist sie dann nicht vollkommen nutzlos, so abgeschottet?
Besteht hierfür die Möglichkeit, die Container miteinander zu "verbinden"? Selbiges Problem würde doch auch auftreten, wenn ich bspw. ein jre in einem Container habe, eine andere Anwendung in einem anderen Container aber eben diese Umgebung benötigt....

meine zweite Frage bezieht sich auf die Abhängigkeit eines Containers von installierten Programmen auf dem OS.
Wenn die obige Datenbank bspw. auf CentOS laufen würde, könnte dann ein Docker Container mit einem Front-End diese Datenbank nutzen, oder ist diese für ihn unsichtbar? Und was ist mit Applikationen, die andere Abhängigkeiten haben (bspw. angular oder php (also node.js bzw. epel))?


Ich weiß, dass ein neu erstellter Container alle Libraries und Abhängigkeiten enthält, die sein eigentliches Programm benötigt. Aber warum "splitte" ich das dann überhaupt auf, wenn ich die Programme doch wieder alle an einem Ort haben muss?

Ich hoffe, meine Probleme sind verständlich und ihr könnt mir dabei helfen.
Vielen Dank :)

Telvanis
 
Docker Container können miteinander reden, im Zweifel "ganz normal" übers Netzwerk. Im Netz finden sich Unmengen an Tutorials und Erklärungen zu Docker und gerne werden dafür Szenarien genutzt, wie du eines umsetzen möchtest. Da solltest du dich erstmal einlesen.

Telvanis schrieb:
Ich weiß, dass ein neu erstellter Container alle Libraries und Abhängigkeiten enthält, die sein eigentliches Programm benötigt. Aber warum "splitte" ich das dann überhaupt auf, wenn ich die Programme doch wieder alle an einem Ort haben muss?

Abhängigkeiten sind in diesem Fall nur Bibliotheken etc, die der Prozess direkt benötigt, um starten zu können. Eine Datenbank ist in dem Kontext keine Abhängigkeit und gehört daher auch nicht mit in den Applikationscontainer.

Über Sinn und Unsinn dieser Aufteilung (und der Nutzung von Containern) lässt sich prima streiten. Man sollte zuerst das Prinzip und das Ziel von Docker verstehen. Anschließend kann man evaluieren, ob es für den eigenen Einsatzzweck das probate Mittel ist. Containerisierung ist eben kein Allheilmittel ;)

Viel Erfolg und viel Spaß :D
 
Zuletzt bearbeitet:
Alles klar, danke für die Antwort :)
In der Zwischenzeit habe ich auch n paar Seiten gefunden, die die Verbindung von einem oder mehrern Containern beschreiben (was auf den ersten Blick sehr komplex wirkt).
Hier mit Docker-Compose
 
Zurück
Oben