Container sind eine Form der Virtualisierung von Betriebssystemen. In einem einzigen Container kann alles ausgeführt werden, von einem kleinen Microservice oder Softwareprozess bis hin zu einer größeren Anwendung. Innerhalb eines Containers befinden sich alle notwendigen, ausführbaren Dateien, Binärcode, Bibliotheken und Konfigurationsdateien. Im Vergleich zu Server- oder Maschinenvirtualisierungsansätzen enthalten Container jedoch keine Betriebssystem-Images. Dadurch sind sie leichtgewichtiger und portabler, mit deutlich weniger Overhead. In größeren Anwendungsimplementierungen können mehrere Container als ein oder mehrere Container-Cluster bereitgestellt werden. Solche Cluster können von einem Container-Orchestrator wie Kubernetes verwaltet werden.
Docker ist eine von vielen Optionen zur Containerisierung, die die Erstellung und den Betrieb von Linux-Containern ermöglicht.
Wenn von Containern die Rede ist, denken die meisten Anwender an Docker. Dabei ist Docker nur das Produkt einer Firma die längst nicht alternativlos den Markt bearbeitet. Auch wenn diese Firma 2013 einen echten Paradigmenwechsel für den Betrieb von Software hervorgerufen hat, so ist heutzutage der Einsatz von Docker nicht uneingeschränkt zu empfehlen. Gerade bei Services, die dem Internet ausgesetzt sind und auf Images von Fremdanbietern basieren, ist eine intensive Betrachtung des Sicherheitsaspektes von Container-Runtimes zu empfehlen.
Alternative Container-Laufzeitumgebungen bieten mitunter interessante, sicherheitsrelevante Eigenschaften, die nicht unbeachtet bleiben sollten.
Docker wird nicht nur als Community-Edition (CE) kostenlos weiterentwickelt, sondern ist auf den Verkauf von Enterprise Features in der Enterprise-Edition (EE) angewiesen. Mit der wachsenden Nutzung von Docker in Ihrer Firma und steigenden Sicherheitsanforderungen, sind Sie mit Docker irgendwann gezwungen, auf eine kostenpflichtige Version zu wechseln. Beispielsweise ist das Signieren von Images nur in der EE möglich. Wieso dies auch für Sie eine Rolle spielt, erfahren Sie von mir oder beim Studieren meines IT-Security Compendium's. Alternative Container-Laufzeitumgebungen bieten Ihnen auf Kosten der Effizienz mehr Sicherheit oder sind grundsätzlich, kostenlos weil sie bspw. durch Amazon AWS querfinanziert werden.
Eine Container-Laufzeitumgebung nach CRI mit dem Schwerpunkt auf Einfachheit, Robustheit und Portabilität.
Zum containerd ProjektKatacontainers ist eine Container-Laufzeit, die mithilfe von virtuellen Maschinen eine stärkere Workload-Isolierung bietet.
Zum katacontainers ProjektMit Firecracker werden Workloads in KVMs ausgeführt, welche verbesserte Sicherheit und Workload-Isolierung bieten und gleichzeitig die Geschwindigkeit und Ressourceneffizienz beibehalten.
Zum Firecracker ProjektIch möchte für ein besseres Verständnis die wichtigsten Begriffe zum Thema erklären.
Ein Container Image ist eine schreibgeschützte Vorlage mit Anweisungen zum Erstellen eines Docker-Containers. Oft basiert ein Image auf einem anderen Image, mit einigen zusätzlichen Anpassungen. Sie können zum Beispiel ein Abbild erstellen, das auf dem Ubuntu-Image basiert und auch Ihre Anwendung sowie Konfigurationsdetails enthält, die für die Ausführung Ihrer Anwendung erforderlich sind. Durch Verwendung von Distroless-Images als Basis-Image wird die Menge an vorinstallierter Software weiter reduziert und das Build-Ziel so weiter verschlankt. Zusätzlich wird so einem Angreifer wenig Angriffsoberfläche geboten, gegen die er seine Tools und Werkzeuge einsetzen kann.
Ein Container ist eine laufende Instanz eines Container Images. Standardmäßig ist ein Container von anderen Containern und seinem Host-Rechner isoliert. Die Isolation eines Containers ist dabei aber nicht so stark wie die Isolation einer VM von ihrem Host. Das liegt daran, dass meistens der Kernel des Hostsystems von den Komponenten des Containers mitgenutzt wird. Die Isolation kann mithilfe spezieller Container-Engines oder spezieller Software verbessert werden.
Sie planen die Nutzung von Containern für eine gesteigerte IT-Effizienz und benötigen Unterstüztung durch einen Experten?
Ich biete Ihnen einen schnellen Einstieg in die Welt von containerisierten Anwendungen. Packen Sie ihre Applikation zusammen mit allen notwendigen Artefakten in ein Image und erhalten Sie ein zuverlässiges Produkt, das sich hervorrangend für den produktiven Einsatz eignet. Kombinieren Sie ihre Applikation später mit einem Kubernetes Cluster und erhalten Sie weitere Zuverlässigkeit und Hochverfügbarkeit. Container eigenen sich ebenfalls hervorrangend für den Einsatz in der Cloud und können dorthin einfach portiert werden.
Kontaktieren Sie mich für ein unverbindliches Erstgespräch.
Die Hansestadt Hamburg ist die zweitgröte Stadt Deutschlands und hat fast 1,8 Mio. Einwohner. In Hamburg befindet sich der größte Seehafen Deutschlands und einer der größten Containerhäfen weltweit.
Hamburg oder auch Freie und Hansestadt Hamburg, ist als Stadtstaat ein Land der Bundesrepublik Deutschland. Der Hamburger Hafen zählt zu den größten Umschlaghäfen weltweit und macht Hamburg zusammen mit dem internationalen Flughafen zu einem bedeutenden Logistikstandort. Seit 1996 ist Hamburg zudem Sitz des Internationalen Seegerichtshofs. Hamburg verzeichnet ein starkes Wachstum im Bereich des internationalen Stadttourismus und gilt als eine der Städte mit der höchsten Lebensqualität in der Welt. Die Speicherstadt und das benachbarte Kontorhausviertel sind seit 2015 Teil des UNESCO-Weltkulturerbes. Weitere bekannte Kulturdenkmäler und Wahrzeichen sind das Hamburger Rathaus und die fünf Hauptkirchen.