12k
All articles

5 Docker-Alternativen für die lokale Entwicklung

Vergleichen Sie fünf Docker-Desktop-Alternativen für die lokale Entwicklung: Podman, OrbStack, Colima, Rancher Desktop und Lima. Prüfen Sie Betriebssysteme, Kosten und Kompatibilität.

OpenReplay Team
OpenReplay Team
5 Docker-Alternativen für die lokale Entwicklung

Diese fünf Docker-Desktop-Alternativen lohnen einen Test für die lokale Entwicklung: Podman mit Podman Desktop, OrbStack, Colima, Rancher Desktop sowie Lima mit nerdctl. Nur einige davon nutzen hinter Ihren docker-Befehlen weiterhin die echte Docker Engine.

Vielleicht drehen Ihre Lüfter hoch, sobald der Postgres-Container startet. Vielleicht hat jemand aus der Finanzabteilung gefragt, für wie viele Docker-Desktop-Lizenzen das Unternehmen bezahlt. So oder so möchten Sie wissen, mit welchem Ersatz Ihre docker run-Skripte und Ihre Compose-Datei weiterhin laufen.

Dieser Vergleich überspringt die Grundlagen zu Images und Containern, die im Einsteigerleitfaden zu Docker-Images und -Containern behandelt werden. Jedes der folgenden Tools wird nach denselben Kriterien bewertet: Betriebssysteme, Kosten, Engine, Kompatibilität mit der docker CLI, Compose-Kompatibilität und Zielgruppe. Außerdem finden Sie jeweils die Befehle für die Installation und den Start eines ersten Containers.

Das Wichtigste in Kürze

  • Docker Desktop ist für Unternehmen mit weniger als 250 Beschäftigten und weniger als 10 Millionen US-Dollar Jahresumsatz kostenlos. Größere Unternehmen benötigen ein kostenpflichtiges Pro-, Team- oder Business-Abonnement.
  • OrbStack und Colima (im Standardmodus) betreiben die Docker Engine in einer schlankeren VM. Podman und containerd mit nerdctl ersetzen die Engine vollständig.
  • Unter macOS und Windows führt jedes Tool in diesem Vergleich Linux-Container nach wie vor in einer virtuellen Maschine aus.
  • podman compose gibt es zwar, die Arbeit wird jedoch an einen externen Provider (docker-compose oder podman-compose) delegiert. Einer der beiden muss installiert sein.
  • Wenn docker nach einem Toolwechsel nicht mehr funktioniert, prüfen Sie mit docker context ls, auf welchen Engine-Endpunkt die CLI zeigt.

Warum suchen Entwickler lokal nach Docker-Alternativen?

Entwickler wenden sich meist aus einem von drei Gründen von Docker Desktop ab: Lizenzierung, Ressourcenverbrauch oder die Geschwindigkeit der Dateifreigabe unter macOS.

  • Lizenz. Gemäß den Lizenzbedingungen von Docker Desktop ist die App kostenlos für die private Nutzung, den Bildungsbereich, nichtkommerzielle Open-Source-Projekte sowie für Unternehmen mit weniger als 250 Beschäftigten und weniger als 10 Millionen US-Dollar Jahresumsatz. Ein Unternehmen, das eine der beiden Grenzen überschreitet, benötigt ein kostenpflichtiges Pro-, Team- oder Business-Abonnement.
  • Arbeitsspeicher und Akku. Unter macOS und Windows betreibt Docker Desktop seine Linux-VM, solange ein Container läuft. Diese VM verbraucht Arbeitsspeicher und Energie, selbst wenn die Container im Leerlauf sind. Der Resource-Saver-Modus von Docker Desktop stoppt die VM erst, wenn eine Zeit lang keine Container gelaufen sind (standardmäßig fünf Minuten).
  • Bind Mounts. Unter macOS müssen Dateien, die vom Host in einen Container gemountet werden, die VM-Grenze überwinden. Laut Dockers eigener Dokumentation können Bind Mounts mit wachsender Codebasis langsam werden. Deshalb hat Docker Desktop synchronisierte Dateifreigaben eingeführt. Bemerkbar macht sich die Verlangsamung vor allem bei großen node_modules-Verzeichnisbäumen und File-Watchern.

Was genau ersetzt die jeweilige Docker-Alternative?

Docker Desktop ist eine Desktop-Anwendung, die eine virtuelle Linux-Maschine, die Docker Engine und eine GUI bündelt. Wer Docker Desktop ersetzt, ersetzt damit nicht zwangsläufig die Docker Engine. Die Alternativen lassen sich in zwei Gruppen einteilen:

GruppeToolsWomit Ihr docker-Befehl kommuniziert
Docker Engine in einer schlankeren VMOrbStack, Colima (Standard-Runtime), Rancher Desktop (moby-Modus)Ein echter Docker-Daemon
Engine ersetztPodman, Lima/containerd mit nerdctl, Rancher Desktop (containerd-Modus)Die Docker-kompatible API von Podman oder, bei nerdctl, gar nichts. Sie verwenden überwiegend eine CLI, die die Docker-Syntax nachbildet

In der Docker-Engine-Gruppe kommunizieren die docker CLI und Compose weiterhin mit einem Docker-Daemon. In der Gruppe mit ersetzter Engine entsteht die Docker-Kompatibilität durch eine Kommandozeilenschicht, die die Docker-Syntax nachbildet. Bei Podman kommt ein Socket hinzu, der Docker-API-Aufrufe beantwortet. Unter macOS und Windows führen alle diese Tools Linux-Container weiterhin in einer VM aus. Ein Toolwechsel ändert, wie diese VM verwaltet wird, nicht aber, ob es sie gibt.

Warum funktioniert docker nach dem Wechsel nicht mehr?

Die docker CLI verbindet sich mit dem Socket, auf den die Variable DOCKER_HOST oder der aktive Docker-Kontext verweist. Schlagen Befehle nach der Installation einer Alternative fehl, zeigt die CLI meist auf einen Socket, hinter dem keine Engine läuft. Unser Leitfaden zur Behebung von „Docker daemon not running“-Fehlern erklärt die Fehlermeldungen Schritt für Schritt.

docker context ls          # the active endpoint is marked with *
docker context use colima  # point the CLI at another engine

Sie können eine Alternative testen, ohne Docker Desktop zu deinstallieren. Wechseln Sie den Kontext, um das neue Tool auszuprobieren, und wechseln Sie anschließend wieder zurück.

Eine Compose-Datei zum Testen der Tools

Prüfen Sie jedes Tool mit derselben minimalen Datei. Lassen Sie die Datei vorher durch den YAML-Validator laufen. So liegt ein etwaiger Fehler am Tool und nicht an einem Tippfehler.

# compose.yaml
services:
  db:
    image: postgres
    environment:
      POSTGRES_PASSWORD: example
    ports:
      - "5432:5432"

Docker-Alternativen im Vergleich

ToolBetriebssystemKostenEnginedocker CLICompose
Podman + Podman DesktopmacOS, Windows, LinuxKostenlos, Open SourcePodmanÜber Alias oder API-Socketpodman compose + Provider
OrbStackmacOSPrivat kostenlos, kommerziell kostenpflichtigDocker EngineJaJa, enthalten
ColimamacOS, LinuxKostenlos, Open SourceDocker (Standard)Ja, separat installiertCompose separat installieren
Rancher DesktopmacOS, Windows, LinuxKostenloscontainerd oder mobyIm moby-Modusnerdctl compose oder docker compose
Lima + nerdctlmacOS, LinuxKostenlos, Open SourcecontainerdNein (nerdctl)nerdctl compose

Podman mit Podman Desktop

Podman ersetzt die Docker Engine und kommt ohne Daemon aus. Podman Desktop ist kostenlos und Open Source und für macOS, Windows und Linux verfügbar. Auf Mac und Windows erhalten Sie einen nativen podman-Befehl. Ihre Container laufen in einer Linux-VM, die Podman als Podman Machine bezeichnet.

  • docker CLI: Die Podman-Befehle verwenden die Docker-Syntax, daher deckt alias docker=podman den Großteil der täglichen Arbeit ab. Auf Mac und Windows akzeptiert Podman außerdem Docker-API-Clients. Alternativ können Sie also die echte docker CLI und Docker-basierte Tools auf den Podman-Socket ausrichten.
  • Compose: podman compose ist integriert, aber nur ein schlanker Wrapper, der die Arbeit an docker-compose oder podman-compose weitergibt. Installieren Sie zuerst eines der beiden Tools.
  • Geeignet für: Teams, die ein einziges kostenloses Tool für macOS, Windows und Linux benötigen.
brew install podman
podman machine init
podman machine start
podman run --rm hello-world
podman compose up

Die Installationsdokumentation von Podman empfiehlt unter macOS den offiziellen Installer statt Homebrew. Podman Desktop hat einen eigenen Installer.

OrbStack

OrbStack ist eine reine macOS-App. Sie liefert eine Docker Engine und die Compose-Tools mit und soll sich wie Docker Desktop verhalten. Die docker CLI und Compose funktionieren daher ohne Anpassungen.

  • Kosten: Gemäß den Lizenzbedingungen von OrbStack ist die private Nutzung kostenlos. Für freiberufliche, geschäftliche und gemeinnützige Nutzung ist eine kostenpflichtige Lizenz pro Nutzer erforderlich.
  • Compose: enthalten.
  • Geeignet für: reine Mac-Teams, die den Docker-Desktop-Workflow mit einer anderen VM-Schicht beibehalten möchten. Projektspezifische Setups wie Dev Containers für die lokale Entwicklung funktionieren ebenfalls weiterhin.
brew install --cask orbstack
docker run --rm hello-world
docker compose up

Colima

Colima ist ein kostenloses Kommandozeilen-Tool für macOS (Intel und Apple Silicon) und Linux. Mit der standardmäßigen Docker-Runtime betreibt Colima die Docker Engine in einer VM. Zusätzlich stehen eine containerd- und eine Incus-Runtime zur Verfügung.

  • docker CLI: wird separat installiert.
  • Compose: nicht enthalten. Installieren Sie die Homebrew-Formula docker-compose und verlinken Sie sie anschließend nach ~/.docker/cli-plugins, damit docker compose funktioniert.
  • Geeignet für: Entwickler, die im Terminal zu Hause sind und keine GUI benötigen.
brew install colima docker docker-compose
mkdir -p ~/.docker/cli-plugins
ln -sfn "$(brew --prefix)/opt/docker-compose/bin/docker-compose" ~/.docker/cli-plugins/docker-compose
colima start
docker run --rm hello-world
docker compose up

Wenn Sie Colima mit der containerd-Runtime starten, führen Sie Container mit colima nerdctl statt mit docker aus.

Rancher Desktop

Rancher Desktop läuft unter macOS (Intel und Apple Silicon), Windows und Linux. Als Engine kann Rancher Desktop entweder containerd oder dockerd (moby) verwenden. Wenn Sie moby wählen, wird die Docker-API aktiviert und die docker CLI funktioniert ohne Aliasse.

  • Compose: Das Container-Tutorial behandelt Compose sowohl mit nerdctl compose als auch mit docker compose.
  • Einschränkungen: Es ist immer nur eine Runtime aktiv. Images, die Sie unter einer Runtime gepullt haben, sind nach dem Wechsel zur anderen nicht verfügbar. Das mitgelieferte Kubernetes lässt sich deaktivieren.
  • Geeignet für: plattformübergreifende Teams, die eine GUI und die Docker-API nutzen möchten.
rdctl set --container-engine.name=moby
docker run --rm hello-world

Dieselbe Änderung können Sie auch in der App unter Preferences > Container Engine vornehmen, wie in der Dokumentation zu den Engine-Einstellungen beschrieben.

Lima mit containerd und nerdctl

Lima startet virtuelle Linux-Maschinen mit automatischer Dateifreigabe und Portweiterleitung. Das Standard-Template verwendet containerd. Neben macOS unterstützt Lima auch andere Hosts wie Linux und NetBSD.

  • docker CLI: wird nicht verwendet. nerdctl bildet die Docker-Befehle nach und wird als lima nerdctl aufgerufen.
  • Compose: nerdctl compose implementiert die Compose Specification. Einige Felder wie links sind nicht implementiert. Eine Übersicht finden Sie in den Compose-Hinweisen von nerdctl.
  • Geeignet für: Entwickler, die Open-Source-Komponenten selbst zusammenstellen möchten. Lima bietet außerdem ein docker-Template, falls Sie lieber die Docker Engine betreiben möchten.
brew install lima
limactl start
lima nerdctl run --rm hello-world
lima nerdctl compose up

Wie wählen Sie die passende Docker-Alternative aus?

Ihr Betriebssystem schließt mehrere Docker-Alternativen aus, noch bevor Funktionen eine Rolle spielen. OrbStack läuft nur unter macOS, und für Colima gibt es keinen Windows-Build. Wenn Sie ein einziges Tool für macOS, Windows und Linux suchen, bleiben somit Podman Desktop und Rancher Desktop. Sollen Ihre Compose-Dateien und Skripte unverändert laufen, wählen Sie ein Tool mit Docker Engine: OrbStack, Colima oder Rancher Desktop im moby-Modus. Möchten Sie ganz auf den Docker-Daemon verzichten, wählen Sie Podman.

Fazit

Entscheidend ist die Frage, ob ein Tool die Docker Engine beibehält oder ersetzt. Dieser eine Unterschied bestimmt, ob sich Ihre docker-Befehle und Compose-Dateien unverändert übernehmen lassen. Wählen Sie das Tool, das zu Ihrem Betriebssystem und Ihrer Lizenzsituation passt, und testen Sie es mit der obigen compose.yaml. Prüfen Sie außerdem docker context ls, bevor Sie Docker Desktop entfernen.

Häufig gestellte Fragen

Gilt die Docker-Desktop-Lizenz auch für die Docker Engine unter Linux?

Nein. Die Docker Engine ist Open Source unter der Apache License 2.0. Für die kommerzielle Nutzung gelten daher keine Grenzen bei Beschäftigtenzahl oder Umsatz. Die Schwellenwerte von 250 Beschäftigten und 10 Millionen US-Dollar stammen aus dem Docker Subscription Service Agreement, das Docker Desktop und die darin mitgelieferte Engine abdeckt. Wenn Sie die Docker Engine auf einer Linux-Workstation direkt installieren, stellt sich die Lizenzfrage zu Docker Desktop nicht, und die zusätzliche VM-Schicht entfällt.

Werden meine Images und Volumes aus Docker Desktop beim Toolwechsel übernommen?

Nur OrbStack übernimmt die Migration für Sie. Nach der Installation bietet OrbStack an, Container, Volumes und Images aus Docker Desktop zu kopieren. Die Option bleibt unter File > Migrate Docker Data verfügbar. Dabei wird eine Kopie erstellt, die Originaldaten bleiben also erhalten. Bei Colima, Podman oder Rancher Desktop exportieren Sie Images mit docker save und laden sie in die neue Engine. Benannte Volumes sichern Sie als tar-Archive.

Funktioniert Testcontainers mit Podman statt Docker?

Ja, über den Docker-kompatiblen API-Socket von Podman. Setzen Sie DOCKER_HOST auf den Podman-Socket. Unter macOS erhalten Sie den Pfad mit podman machine inspect. Zusätzlich setzen Sie TESTCONTAINERS_DOCKER_SOCKET_OVERRIDE auf /var/run/docker.sock. Unter Linux liegt der Socket unter podman/podman.sock innerhalb von XDG_RUNTIME_DIR. Im Rootless-Modus setzen Sie TESTCONTAINERS_RYUK_DISABLED=true, um den Ryuk-Cleanup-Container zu deaktivieren. Das Testcontainers-Team testet alternative Runtimes nicht aktiv, daher funktionieren manche Features möglicherweise nicht.

Können VS Code Dev Containers Podman statt Docker verwenden?

Ja. Setzen Sie unter Linux, Windows oder macOS die Dev-Containers-Einstellung Docker Path (dev.containers.dockerPath) auf podman. Die Erweiterung führt CLI-Befehle für Container aus und kommuniziert nie direkt mit einem Daemon. Laut VS Code ist Podman ab Version 5 weitgehend mit der Docker CLI kompatibel. Andere Docker-kompatible CLIs werden jedoch nicht offiziell unterstützt. Compose-basierte Dev Containers benötigen zusätzlich einen konfigurierten Compose-Provider.

DevTools for the frontend

Gain Debugging Superpowers

Unleash the power of session replay to reproduce bugs, track slowdowns and uncover frustrations in your app. Get complete visibility into your frontend with OpenReplay — the most advanced open-source session replay tool for developers.

Star on GitHub12k

We use cookies to improve your experience. By using our site, you accept cookies.