1.1. Docker Containisierung¶
Für das Praktikum DV-Anwendungen haben wir uns genauer mit dem Containisieren mithilfe von Docker auseinandergesetzt.
1.2. Einführung¶
Docker ist eine Open-Source-Plattform, die die Entwicklung, den Versand und den Betrieb von Anwendungen durch Containerisierung vereinfacht. Container ermöglichen es, Anwendungen mit all ihren Abhängigkeiten und Bibliotheken in einem leichtgewichtigen, portablen Paket zu bündeln, das konsistent auf verschiedenen Umgebungen ausgeführt werden kann. Dies fördert die Effizienz, Konsistenz und Skalierbarkeit in der Softwareentwicklung und -bereitstellung.
1.2.1. Schlüsselkonzepte von Docker:¶
Images: Ein Docker-Image ist eine schreibgeschützte Vorlage mit Anweisungen zum Erstellen eines Docker-Containers. Ein Image kann auf einem Basissystem aufbauen und zusätzliche Anwendungscode- oder Bibliotheksinstallationen enthalten.
Container: Ein ausgeführtes Image, das in der Betriebsumgebung isoliert ist. Ein Container hält die gesamte Ausführungsumgebung des Images, einschließlich des Anwendungscodes, der Laufzeit, der Bibliotheken und der Umgebungsvariablen.
Dockerfile: Eine Textdatei, die die Schritte zur Erstellung eines Docker-Images beschreibt. Es automatisiert den Prozess der Image-Erstellung und stellt sicher, dass dieser reproduzierbar ist.
Docker Hub: Ein Registry von Docker-Images, wo Benutzer ihre eigenen Images hochladen oder bestehende Images finden und verwenden können. Docker Hub bietet eine umfangreiche Bibliothek von vordefinierten Images für verschiedene Anwendungen und Dienste.
1.2.2. Vorteile der Verwendung von Docker:¶
Konsistenz und Isolation: Docker gewährleistet, dass eine Anwendung, die in einem Container läuft, überall gleich funktioniert, unabhängig von der Umgebung, indem sie von anderen Anwendungen isoliert wird.
Portabilität: Ein Docker-Container kann leicht von einer Entwicklungsumgebung in eine Test- oder Produktionsumgebung übertragen werden, was die Bereitstellung beschleunigt.
Skalierbarkeit und Verwaltung: Docker ermöglicht es, mehrere Container einfach zu verwalten und zu skalieren, was besonders nützlich ist in Cloud-Umgebungen.
Ressourceneffizienz: Durch die gemeinsame Nutzung des Betriebssystemkerns und die Minimierung des Overheads sind Docker-Container effizienter als traditionelle virtuelle Maschinen.