Was ist eigentlich ... Docker(-Container)?
Container sind Behälter für den Transport von Gütern. Da sie standardisiert sind, können Container problemlos von einem Transportmittel auf ein anderes wechseln. Die Fracht bleibt im Behälter und muss nicht separat umgeladen werden. Ähnlich praktisch sind Software-Container. Auch sie lassen sich einfach von einer Hardwareplattform zu einer anderen übertragen. Mit der wachsenden Popularität der Cloud haben Container an Bedeutung gewonnen. Softwareentwickler zum Beispiel können mittels Containerisierung ihre Produkte schnell und sicher in einer Cloud ausrollen.
Mit einer Softwareplattform wie Docker lässt sich eine Anwendung vollständig in einen Container verpacken. Der Container enthält den Programmcode, die Bibliotheken, Abhängigkeiten und Laufzeitumgebungen, die erforderlich sind, damit eine Anwendung läuft. Applikationen in einem Container sind lauffähig, unabhängig davon, ob sie sich auf einem PC, Laptop, Server oder in einer Cloud befinden. Für die Verwendung mit unterschiedlichen Betriebssystemen sind kleinere Anpassungen notwendig.
Container eignen sich auch für die Entwicklung von Software. Sie laufen nicht nur unabhängig von der verwendeten Infrastruktur, sondern auch isoliert voneinander. Dadurch hat eine Änderung in einem Container keine Auswirkungen auf andere Container. Softwareentwickler nutzen Container deshalb, um eine Applikation auf einem PC zu entwickeln und zu testen. Mit den Containern können Entwickler eine Entwicklungs- und Testumgebung erstellen, die die gleiche Softwarekonfiguration hat wie die Produktivumgebung. Die Tests können dadurch in der gleichen Umgebung erfolgen, die auch für den Produktivbetrieb genutzt wird. Da es praktisch keine Unterschiede zwischen der Entwicklungs- und der Produktivumgebung gibt, können die Entwickler Funktionen ihrer Software bereits in frühen Entwicklungsstadien überprüfen.
Ähnlich wie Docker-Container arbeiten virtuelle Maschinen. Im Unterschied zu einer virtuellen Maschine enthält ein Docker-Container aber kein eigenes Betriebssystem. Dadurch startet er schneller und verbraucht weniger Systemressourcen. Ein weiterer Vorteil der Container ist die Versionierung. Mit der Docker-Plattform lassen sich verschiedene Versionen von Containern erstellen. Das erleichtert dem Hersteller, einen Softwaretest oder Rollout nachzuverfolgen oder zu wiederholen.
Docker-Container können auch für Microservices genutzt werden. Hierbei werden Anwendungen in kleinere, unabhängige Dienste aufgeteilt, die jeweils in einem eigenen Container entwickelt und bereitgestellt werden. Mit sogenannten Orchestrierungswerkzeugen wird dann die Gesamtanwendung wieder zusammengestellt.