Containern für mehr Effizienz: Was ist Docker?
IT-Entwickler sehen sich mit immer neuen Herausforderungen konfrontiert: So steigt die Komplexität ihrer Anwendungen aber gleichzeitig auch der Druck, schneller und trotzdem sicher entwickeln zu müssen. Das bedeutet mehr Druck auf die IT-Infrastruktur, die beteiligten Teams und die Prozesse. Die Containertechnologie soll helfen, diese Probleme zu reduzieren.
Die Nutzung von Containern gilt als eine bedeutende Neuerung in der IT-Entwicklung seit der Einführung der Virtualisierung von Hardware mit sogenannten „virtuellen Maschinen“ (VM). Containertechnologien wie Docker sind noch keine zehn Jahre alt. Sie gewährleisten die Trennung und Verwaltung der auf einem Rechner genutzten Ressourcen. Im Unterschied zu virtuellen Maschinen bilden Containertechnologien jedoch keine vollständige Computer-Umgebung virtuell ab, sondern lediglich die Daten, die zur Ausführung der Anwendungen notwendig sind. Das spart erhebliche Ressourcen beim Betrieb.
Was sind Container in der IT?
Der Name “Container” für die IT-Entwicklung hat tatsächlich seinen Ursprung in der Geschichte der realen Container, mit denen heute weltweit Waren transportiert werden. Denn auch diese Container sind genormte Behälter, mit denen Waren mit unterschiedlichsten Transportmitteln, etwa per Schiff, LKW oder Zug transportiert werden können.
Früher wurde Software entwickelt, die nur auf einem einzigen System lauffähig sein musste. Auch Waren wurden früher je nach Transportmittel individuell verpackt. Doch das brachte Probleme mit sich. Wenn vom Schiff auf den Zug oder das Auto umgeladen wurde, mussten neue Behälter her, die Umlagerung der Ware war zeitaufwändig und kostenintensiv.
So hat 1956 der Reeder Malcom McLean Frachtcontainer eingeführt. 1961 erfolgte die Normung mit international gültigen Maßen. Fortan konnte Ware viel einfacher als zuvor von einem Vehikel auf ein anderes umgeladen und weiter transportiert werden.
Mit der Verbreitung von Cloud-Technologien hat sich auch die Informationstechnologie fundamental verändert. Heute nutzen wir Applikationen, die auf unterschiedlichsten Endgeräten und sogar verteilt auf verschiedenen Systemen innerhalb der Cloud funktionsfähig sind. Das bringt bei der Entwicklung erhebliche Komplexität mit sich.
Die Entwicklung von Software mittels Container soll hier Abhilfe schaffen. So greifen die einzelnen Container voneinander isoliert nur auf die vorhandenen Ressourcen eines Computers wie Arbeitsspeicher, Prozessor oder Bandbreite zu, bringen aber alles was sie zum Funktionieren benötigen, selbst in ihrem Container mit. Anders als bei einer virtuellen Maschine, bei der ein gesamtes Betriebssystem virtualisiert auf einem Host abläuft, ist ein Container also viel Schlanker und ressourcenschonender auszuführen. Die Container können zudem über verschiedene Systeme hinweg ausgeführt und verteilt werden.
Was ist Docker?
Docker wurde erstmals im März 2013 als freie Software von dotCloud vorgestellt. Später nannte sich das Unternehmen in Docker um. Mit steigender Bekanntheit der Lösung wurde Docker ein Jahr später Bestandteil von Red Hat Enterprise Linux 7.0 sowie openSUSE. Red Hat nahm Docker jedoch eine Version später wegen Meinungsverschiedenheiten mit dem Unternehmen Docker Inc. wieder aus dem Release heraus.
Docker ist eine Technologie, die die Erstellung und den Betrieb von Anwendungen in Containern unter Linux ermöglicht. Mittels Virtualisierungssoftware ist aber auch der Betrieb unter Windows und MacOS möglich. Mit Docker werden diese Anwendungen in isolierten Umgebungen ausgeführt. Die Container beinhalten alle Programmbausteine und Bibliotheken, die zur Ausführung der Software notwendig sind. Docker ist quasi das Betriebssystem für Container, das ähnlich wie eine virtuelle Maschine die Serverhardware, auf der die ausgeführt wird, virtualisiert.
Heute ist Docker quasi der “de facto” Standard bei der Entwicklung von Software mittels Containertechnologie. Allerdings gibt es mitterweile auch viele Alternativen die Docker recht ähnlich sind. Dazu gehört z.B: auch containerd, das vor allem jetzt von Kubernetes favorisiert wird.
Ist Docker kostenlos?
Produkte wie Docker Deskop für MacOS und Windows ist für größere Unternehmen kostenpflichtig. Docker selbst ist allerdings weiterhin Open Source und damit gratis nutzbar.
Was sind die Vorteile von Docker?
Mit Docker lassen sich Anwendungsfälle einfacher standardisieren, Codes leichter verschieben und Ressourcen besser nutzen. So erleichtert die Bereitstellung von Anwendungen in Containern das Identifizieren von Problemen und auch das Rollback in vorherige Versionen, um diese Probleme einfacher zu beheben. Auch wird das Debugging, also die Fehlersuche, vereinfacht, da die Voraussetzungen, egal auf welcher Umgebung die Anwendung getestet wird, dank der Container immer gleich ist. Es kann also nicht sein, dass ein Fehler bei Entwickler A auftritt, Entwickler B diesen aber nicht nachvollziehen kann, da in seiner Umgebung aus unerfindlichen Gründen alles funktioniert.
Schlanker Betrieb und mehr Sicherheit
Mit Docker können mehrere Prozesse und Apps getrennt voneinander betrieben werden. Das schützt die Infrastruktur und erhöht die Sicherheit, da sich eventuelle Probleme oder Fehler in einer Anwendung nicht auf die anderen laufenden Anwendungen des Servers auswirken. Im Gegensatz zu einer virtuellen Maschine benötigen Container auch weniger Hardware Ressourcen, also CPU-Leistung und Arbeitsspeicher.
Anwendungen in Docker Containern können zudem leicht kopiert und zwischen unterschiedlichen Umgebungen bewegt werden. So funktionieren Container-basierte Anwendungen auch sehr gut in stark verteilten Cloud-Architekturen. Für die Cloud Native Entwicklung von Anwendungen ist Docker also bestens gerüstet.
Continuous Integration/Continuous Deployment und sogar die „Serverless“ Entwicklung sind mit Docker ideal möglich. So können Softwareprojekte, bei denen es häufiger zu Anpassungen oder Änderungen kommt, mit Docker ideal durchgeführt werden.
Skalierbarkeit und Management
Ein weiterer Vorteil ist die Skalierbarkeit bei der Arbeit mit Containern. Werden zusätzliche Instanzen einer Anwendung benötigt, etwa weil der Zugriff stark gestiegen ist, lassen sich zusätzliche Server hinzufügen, auf denen die weiteren Instanzen der Container laufen und damit die Anwendung entlasten. Auch hier hilft Docker bei der „Orchestrierung“, also dem Management einzelner Container. Muss eine größere Anzahl von Containern verwaltet werden, sollten dafür passende Werkzeuge wie etwa Googles Kubernetes hinzugezogen werden.
Das könnte dich auch interessieren
easyname ist ein erfolgreicher und bekannter österreichischer Anbieter von Cloud-Services, Domains sowie Webhosting bis hin zur Server-Infrastruktur und gehört seit 2020 zur dogado group.
Das Unternehmen ist seit 2006 in Österreich erfolgreich am Markt und inzwischen auch in vielen anderen Ländern weltweit tätig. Sowohl das Team als auch die gehosteten Daten befinden sich in Österreich.
easyname liegt die Datensicherheit besonders am Herzen und stellt daher zu jedem Hosting-Paket auch kostenlose SSL-Zertifikate zur Verfügung. Mit intuitiven Tools zur Erstellung von Websites und Webshops und mit Easy Install Apps wie WordPress, Joomla oder PrestaShop können alle easyname-Kunden schnell in die Online-Welt einsteigen.