DescubreApple

Apple, Mac, iPhone, iPad

macOS

Wie man Docker Desktop auf einem MacBook mit Apple Silicon nutzt, ohne dass es langsam wird

Praktischer Leitfaden, um Docker Desktop auf Macs mit M1-, M2- und M3-Chip optimal zu nutzen: VirtioFS-Einstellungen, Rosetta 2, Arbeitsspeicher und Alternativen wie OrbStack oder Colima, wenn Docker nicht ausreicht.

Cómo usar Docker Desktop en MacBook con Apple Silicon sin que se ralentice
Como Usar Docker Desktop En Macbook Con Apple Silicon Sin Que Se Ralentice

Wenn du mit Containern auf einem MacBook mit Apple Silicon arbeitest, weißt du bereits, dass Docker Desktop nicht immer rund läuft. Der Start dauert lange, es frisst RAM, der Lüfter springt an, sobald du ein mittelgroßes Image baust, und wenn dein Image linux/amd64 ist, wird es noch schlimmer. Dieser Leitfaden zeigt, wie du Docker Desktop auf einem Mac mit M1, M2 oder M3 brauchbar machst, welche Einstellungen du anpassen solltest, wann Docker nicht die beste Wahl ist und welche Alternativen sich lohnen.

Alles hier wurde getestet unter macOS Sequoia 15.1 mit Docker Desktop 4.35 auf einem MacBook Pro M3 Pro mit 18 GB RAM und einem MacBook Air M2 mit 16 GB. Die Prinzipien gelten genauso für M1.

Warum Docker Desktop auf Apple Silicon langsam läuft

Docker läuft unter macOS nicht nativ. Das war nie so. Docker benötigt einen Linux-Kernel, und macOS hat keinen. Was Docker Desktop tatsächlich tut, ist, eine leichtgewichtige Linux-virtuelle Maschine über das Virtualisierungs-Framework von Apple (Virtualization.framework auf Apple Silicon) zu starten und den Docker-Daemon darin auszuführen.

Das bedeutet zweierlei: Es gibt eine ständige Virtualisierungsschicht, und es gibt eine Brücke zwischen deinem macOS-Dateisystem und dem Dateisystem der VM. Diese Brücke war historisch der große Engpass.

Hinzu kommen die linux/amd64-Images. Dein Mac ist ARM64. Startest du einen x86_64-Container, emuliert Docker ihn über Rosetta 2 oder QEMU. Die Emulation einer ganzen Architektur kostet: je nach Last gehen zwischen 30 % und 60 % Leistung verloren.

Voraussetzungen

  • macOS 13 Ventura oder neuer (Sequoia wird für stabiles VirtioFS empfohlen).
  • Docker Desktop 4.25 oder neuer. Version 4.35 bringt deutliche Verbesserungen beim Ressourcenmanager.
  • Mac mit M1, M2, M3 (oder neuer) und mindestens 16 GB RAM, wenn du mit mehr als zwei Containern gleichzeitig arbeitest.
  • Rosetta 2 installiert: softwareupdate --install-rosetta --agree-to-license.

Docker Desktop auf einem Mac mit Apple Silicon installieren

Lade den Apple-Silicon-Installer von docker.com herunter. Achtung: Es gibt zwei Builds, den für Intel und den für Apple Silicon. Wenn du versehentlich den Intel-Build lädst, läuft alles über Rosetta und du verlierst unnötig Leistung.

Ziehe die App nach /Applications, öffne sie, akzeptiere die Berechtigungen für privilegierten Netzwerkzugriff und warte, bis der Wal in der Menüleiste erscheint.

Die wichtigsten Einstellungen, damit Docker nicht langsam wird

Hier steckt der Großteil des Artikels. Diese Einstellungen machen den echten Unterschied.

VirtioFS als Dateisystem aktivieren

VirtioFS hat gRPC-FUSE ersetzt. Es ist zwei- bis fünfmal schneller beim Lesen und Schreiben auf Volumes, die aus macOS eingebunden sind. Mittlerweile ist es der Standardwert, aber wenn du von einer älteren Installation kommst, nutzt du möglicherweise noch gRPC-FUSE.

Pfad: Docker Desktop → Settings → General → Virtual Machine Options → VirtioFS.

Starte Docker nach der Änderung neu. Du wirst den Unterschied bei jedem Node-, PHP- oder Python-Projekt bemerken, das node_modules oder vendor aus deinem lokalen Ordner einbindet.

Das neue Virtualization Framework von Apple nutzen

Aktiviere auf demselben Bildschirm Use Virtualization framework (das von Apple, nicht QEMU). Es nutzt die Hardwarebeschleunigung des M-Chips.

Aktiviere direkt darunter Use Rosetta for x86_64/amd64 emulation. Damit wird die QEMU-Emulation durch Rosetta 2 ersetzt, wenn du amd64-Images ausführst. Die Verbesserung bei x86_64-Images ist enorm: In Tests mit amd64-MySQL-8-Containern sank die Startzeit von 40 Sekunden auf unter 15.

CPU-, Speicher- und Festplattenressourcen anpassen

Pfad: Settings → Resources → Advanced.

Standardmäßig weist Docker Desktop nur einen konservativen Anteil zu. Auf einem Mac mit 16 GB solltest du den Speicher auf 8 GB erhöhen, wenn du mit Datenbanken arbeitest. Bei 18 GB oder mehr sind 8 bis 10 GB angemessen. Überschreite nicht 50 % des gesamten RAM: macOS braucht Luft zum Atmen.

CPU: Lass mindestens 2 Kerne für das System frei. Auf einem M3 Pro mit 12 Kernen kannst du problemlos 8 für Docker zuweisen.

Festplatte: Die virtuelle Festplatte wächst bei Bedarf. Setze eine sinnvolle Obergrenze (64 GB reichen meist) und entferne alte Images alle zwei Wochen mit docker system prune -a.

Nicht genutzte Funktionen deaktivieren

Unter Settings → General deaktiviere Send usage statistics, Open Docker Dashboard at startup, falls du es nicht brauchst, und SBOM indexing, wenn du keine Schwachstellen analysierst. Jede dieser Optionen verbraucht Rechenleistung.

Unter Settings → Kubernetes lass Kubernetes deaktiviert, solange du es nicht wirklich nutzt. Ein lokaler K8s-Cluster belegt 2 GB RAM, selbst wenn du nichts tust.

Wenn möglich mit ARM64-Images arbeiten

Der schnellste Weg, dass Docker auf deinem Mac fliegt, ist, nichts zu emulieren. Viele offizielle Images gibt es bereits als linux/arm64-Builds: PostgreSQL, Redis, Nginx, Node, Python, Ruby, Go und die meisten modernen Datenbanken.

Prüfe die verfügbaren Architekturen, bevor du pull ausführst:

docker manifest inspect postgres:16 | grep architecture

Wenn du arm64 siehst, nimm dieses Image ohne Plattformzwang. Gibt es nur amd64, brauchst du tatsächlich Rosetta.

Um eine bestimmte Plattform zu erzwingen:

docker run --platform linux/arm64 postgres:16
docker run --platform linux/amd64 mysql:5.7

Füge in deiner docker-compose.yml bei jedem Service platform: linux/arm64 hinzu, um Überraschungen zu vermeiden.

Wann Rosetta 2 die Rettung ist und wann nicht

Rosetta 2 eignet sich gut für statische Binärdateien und Anwendungen mit allgemeiner Rechenlast. Bei älteren Datenbanken, Legacy-Werkzeugen oder Unternehmensimages, die nur als amd64 existieren, hilft Rosetta aus der Patsche.

Wo Rosetta weiterhin schwächelt: bei stark I/O-lastigen Workloads, alten JVMs (Java 8 amd64 kann abstürzen) und manchen Binärdateien, die exotische Syscalls verwenden. Wenn ein amd64-Container mit aktiviertem Rosetta seltsame Fehler wirft, deaktiviere es und nutze QEMU nur für diesen Fall.

Die Nutzung von Volumes optimieren

Das Einbinden von macOS-Ordnern in den Container ist auch mit VirtioFS die teuerste Operation. Drei Regeln:

  1. Binde node_modules, vendor oder .git nicht ein, wenn du es vermeiden kannst. Verwende für diese Verzeichnisse benannte Docker-Volumes: Sie liegen innerhalb der VM und sind um Größenordnungen schneller.
  2. Verwende :delegated oder :cached bei Mounts, die keine strikte Konsistenz benötigen. Bei VirtioFS ist der Effekt geringer als früher, aber er existiert noch.
  3. Vermeide massive File-Watcher. Wenn dein Framework bei jeder Dateiänderung neu kompiliert, begrenze die überwachten Pfade.

Beispiel eines benannten Volumes für node_modules:

services:
  app:
    build: .
    volumes:
      - .:/app
      - node_modules:/app/node_modules
volumes:
  node_modules:

Alternativen zu Docker Desktop auf dem Mac

Docker Desktop ist nicht die einzige Option und in manchen Fällen nicht einmal die beste. Drei ernsthafte Alternativen:

OrbStack

OrbStack ist das, was einem „Docker Desktop, aber schnell“ am nächsten kommt. Es verbraucht weniger RAM (startet mit etwa 400 MB statt 1,5 GB bei Docker Desktop), startet in 2 bis 3 Sekunden und nutzt eine eigene Virtualisierungsimplementierung auf Apple Silicon. Es ist ohne Änderungen mit der Docker-CLI kompatibel.

Kostet 8 Dollar im Monat für die kommerzielle Nutzung, für die private Nutzung ist es kostenlos. Wenn du den ganzen Tag mit Containern arbeitest, amortisiert es sich über die gesparte Akkulaufzeit.

Colima

Colima ist kostenlos, Open Source und wird über die Kommandozeile bedient. Es startet eine Linux-VM mit Lima und stellt einen Docker-Socket bereit. Keine grafische Oberfläche.

Installation:

brew install colima docker
colima start --cpu 4 --memory 8 --vm-type vz --vz-rosetta

Das Flag --vz-rosetta aktiviert Rosetta für amd64. Ideal, wenn du im Terminal lebst und keine dauerhaft laufende App möchtest.

Podman

Podman ist der Ansatz von Red Hat: daemonlos, rootless und über Aliase mit der Docker-CLI kompatibel. Auf Apple Silicon funktioniert es gut, aber das Image-Ökosystem und die Integration mit Werkzeugen wie docker-compose sind noch weniger ausgereift.

Gut, wenn du aus RHEL-Umgebungen kommst oder dich an der Produktion auf Kubernetes/OpenShift orientieren möchtest.

Nützliche Befehle zur Leistungsdiagnose

Sehen, welcher Container die Ressourcen verbraucht:

docker stats

Die tatsächliche Größe von Images, Containern und Volumes anzeigen:

docker system df

Alles entfernen, was nicht genutzt wird (Vorsicht, löscht Images ohne zugehörigen Container):

docker system prune -a --volumes

Häufige Probleme und ihre Lösung

Docker Desktop startet nach einem macOS-Update nicht. Starte den Dienst neu: killall Docker && open /Applications/Docker.app. Wenn das Problem bleibt, gehe zu Troubleshoot → Reset to factory defaults.

Der Lüfter dreht beim Bauen von Images auf. Reduziere die CPU-Zuweisung für Docker unter Settings → Resources. Wenn es weiterhin so bleibt, prüfe, ob dein Dockerfile RUN-Befehle mit parallelisierten Prozessen enthält (npm install, cargo build).

Eingebundene Volumes sind sehr langsam. Prüfe, ob VirtioFS aktiv ist, und erwäge, schwere Verzeichnisse in benannte Volumes zu verschieben.

Ein amd64-Container startet nicht. Prüfe, ob Rosetta installiert ist (arch -x86_64 uname -m sollte x86_64 ausgeben). Schlägt es weiterhin fehl, ist dieses konkrete Binary nicht mit Rosetta 2 kompatibel; nutze QEMU, indem du die Rosetta-Option deaktivierst.

Docker Desktop verbraucht im Leerlauf 3 GB RAM. Das ist bei älteren Versionen normal. Aktualisiere auf 4.30 oder neuer; der dynamische Speichermanager gibt RAM an das System zurück, wenn keine Container aktiv sind.

FAQ

Kann ich Docker Desktop für die Arbeit kostenlos nutzen? Nein, wenn du in einem Unternehmen mit mehr als 250 Mitarbeitern oder einem Jahresumsatz von mehr als 10 Millionen Dollar arbeitest. Für private Nutzung, Ausbildung und kleine Startups ja. Prüfe die offizielle Docker-Lizenz.

Lohnt sich der Wechsel zu OrbStack? Wenn du täglich mit Containern arbeitest und dich der Verbrauch von Docker Desktop stört, ja. Für gelegentliche Nutzung reicht Docker Desktop aus.

Emuliert Rosetta 2 jedes amd64-Image einwandfrei? Nein. Es deckt die meisten Fälle ab, aber sehr spezifische Binaries (alte JVMs, Werkzeuge mit komplexem SIMD) können fehlschlagen. QEMU ist der Plan B.

Kann man Kubernetes auf einem Mac M3 betreiben, ohne dass er in die Knie geht? Ja, aber besser mit minikube oder k3d als mit dem integrierten Kubernetes von Docker Desktop. Beide sind leichter. Wenn du eine vollständige Entwicklungsumgebung mit Windows und Linux gleichzeitig brauchst, könnte dich wie man Windows 11 ARM auf einem Mac M3 mit Parallels Desktop 20 installiert interessieren.

Wie viel RAM brauche ich wirklich, um komfortabel mit Docker zu arbeiten? 16 GB sind das vernünftige Minimum. 24 GB oder mehr, wenn dein Stack gleichzeitig Datenbank, Backend, Frontend und einen Hilfsdienst umfasst. Wenn du über ein neues Gerät nachdenkst, schau dir den Vergleich zwischen MacBook Pro M4 Pro und M4 Max an, bevor du dich entscheidest.

JG
🇩🇪 DE