tostphoto - stock.adobe.com

Docker Ade? So sieht die Zukunft der Container aus

Docker gehört zu den wichtigsten Diensten in der Container-Welt, ist aber nicht mehr unangefochten, wenn es darum geht Software auf Basis von Containern bereitzustellen

Lange war der Name Docker quasi synonym mit Containern und Containerbereitstellung. Seit 2019 Red Hat Docker zugunsten Podman ausgetauscht hat und Docker von Mirantis akquiriert wurde, ist die Begeisterung in der Community zunehmend gedämpft. Auch SUSE setzt nicht mehr auf den lange unangefochtenen Platzhirsch. Docker ist trotzdem noch in zahlreichen Unternehmen im Einsatz.

Wir erklären, wieso Docker inzwischen auf dem Rückzug ist und wo es auch heute noch seinen Platz in modernen Infrastrukturen findet.

Kubernetes bestimmt mittlerweile den Container-Markt

Orchestrierungslösungen wie Kubernetes machen Entwickler und Unternehmen unabhängig von einzelnen Softwarekomponenten einer Containerinfrastruktur. Sie helfen dabei, eine Containerumgebung bereitzustellen und zu verwalten, unabhängig von der eingesetzten Containerlösungen. Docker hat mit Docker Swarm versucht, Kubernetes etwas entgegenzusetzen; besonders erfolgreich war das jedoch nicht. Kubernetes gehört mit einem Marktanteil von 80 bis 90 Prozent zum De-Facto-Standard, wenn es um das Orchestrieren von Containern geht und das schadet Docker.

Als Orchestrator führt Kubernetes selbstverständlich nicht die Laufzeit der Container aus. Dafür ist eine weitere Software zuständig, die an Kubernetes angebunden ist. Kubernetes steuert nur, welche Container die Laufzeitumgebung wann und wie bereitstellt. Administratoren kommen durch Kubernetes im Grunde kaum mit dieser niedrigeren Ebene der Containerumgebung in Kontakt, denn das übernimmt alles Kubernetes oder eine andere Orchestrierungsumgebung (häufig auf Basis von Kubernetes) wie VMware Tanzu, HPE Greenlake oder Red Hat OpenShift.

Das Problem für Docker ist dabei, dass Kubernetes Docker schon seit Ende 2020 nicht mehr unterstützt, so dass Docker überall dort nicht existiert, wo Kubernetes im Einsatz ist.

Docker, Kubernetes und das Container Runtime Interface

Der Grund dafür, dass Docker zunehmend an den Rand gedrängt wird ist das Container Runtime Interface (CRI). Dieser Standard für die Kommunikation zwischen Orchestrierungs-Lösung und Laufzeitumgebung wird von Docker nicht unterstützt. Das ist war unter anderem der Auslöser für Kubernetes, sich von Docker zu trennen.

Docker steuert über den Docker-Daemon dockerd die Kommunikation mit den Clients. Hierüber lassen sich Container zum Beispiel starten oder beenden. Läuft dockerd mit Root-Rechten ergeben sich natürlich verschiedene Sicherheitsrisiken. Um dieses Problem zu beheben, gibt es in Docker seit 2019 den User-Modus mit reduzierten Rechten – zu diesem Zeitpunkt hatten jedoch die Nutzer schon sehr lange auf das Problem hingewiesen, so dass viele das Update als zu wenig, zu spät wahrgenommen haben.

Auch im User-Modus macht Docker immer wieder Probleme oder verbraucht zu viele Ressourcen. Podman, eine der immer populäreren Alternativen, auf die auch Red Hat inzwischen setzt, hat diese Schwierigkeiten nicht.

Früher bildete Docker die Schnittstelle zwischen Kubernetes und seiner Standardlaufzeit containerd. Mittlerweile kann Kubernetes direkt mit containerd arbeiten, sodass Docker in Kubernetes nicht mehr notwendig ist. Docker ist aber noch lange nicht tot. Das zeigt der nächste Abschnitt.

Docker versus Podman

Die Vorteile von Docker bestehen nicht darin Container zu orchestrieren, das kann Kubernetes besser. Auch als Laufzeitumgebung für Container ist Docker nicht notwendig, denn das erledigt containerd allein oder andere Laufzeitumgebungen wie Podman. Podman gehört mittlerweile zu den beliebten Laufzeitumgebungen für Container, insbesondere zusammen mit Kubernetes.

Ursprünglich wurde Podman von Red Hat als Debugging-Tool für das Engine Container Runtime Interface entwickelt. Mittlerweile umfasst Podman eine vollständige eigene Laufzeit und daher ideal für die Zusammenarbeit mit Kubernetes. Podman nutzt im Gegensatz zu Docker für die Kommunikation keinen Daemon, sondern führt Container über eine Fork-Exec-Funktion als untergeordnete Prozesse aus. Sobald ein Container über containerd gestartet ist, zum Beispiel mit runc, hängt Podman ein kleines Programm an, das den Container überwacht. Es übernimmt die Aufgabe des Docker-Daemons.

Docker ist stark bei Container-Images

Seine Stärke spielt Docker vor allem als Werkzeug für das Erstellen und Verwalten von Container-Images aus. Mit Docker entwickeln und erstellen Entwickler und Admins Container-Images, die sie auch sofort bereitstellen können. Das bietet in vielen Umgebungen Vorteile, besonders, wenn Sie eh kein Kubernetes brauchen oder möchten.

Der von Docker in 2015 initiierte Standard für die Spezifikation von Images und von Containern wird von immer mehr Anbietern unterstützt, auch vom aktuell großen Konkurrenten Podman. Verschiedene Lösungen, die OCI nutzen, können Container und Images untereinander austauschen. Buildah und kaniko setzen ebenfalls auf OCI und lassen sich daher mit Kubernetes genauso nutzen, wie zusammen mit Docker.

Auf diesem Wege verwenden Sie somit Dockerfiles und Docker-Container-Images sowie Docker-Registrys in Kubernetes. Daraus ist schnell ersichtlich, dass Docker zwar für Kubernetes-Nutzer eine untergeordnete Rolle spielt, aber in bestimmten Bereichen immer noch die Nase vorn hat. Es bleibt in Zukunft als alleinstehende Container-Umgebung relevant und ist derzeit noch führend, was das Erstellen und Verwalten von Images betrifft.

Fazit

Docker ist aus der Container-Welt kaum wegzudenken. Mittlerweile ist es aber nicht alternativlos und insbesondere Podman wird zusammen mit Kubernetes immer wichtiger. Hier hat Red Hat einen entscheidenden Einfluss. Wer auf RHEL setzt, nutzt in den meisten Fällen die gut beleumundete integrierte Containerlösung und installiert sich keine externe.

Wer aktuell mit Docker arbeitet, sollte sich daher Podman genauer anschauen; die Syntax der ist im Grunde identisch. Wer sich am Ende auf dem Markt durchsetzen wird ist im Moment unklar. Allerdings wird wohl der Marktanteil von Docker weiterhin sinken, nicht zuletzt wegen Podman.

Erfahren Sie mehr über Server- und Desktop-Virtualisierung

ComputerWeekly.de
Close