Entwickler
Docker-Container vom Mac aus nicht erreichbar
Docker führt Container auf dem Mac in einer virtuellen Linux-Maschine aus. Um einen Container von macOS aus zu erreichen, veröffentlichst du meist einen Port auf localhost.
Symptome
curl localhost:8080scheitert, aber der Dienst funktioniert im Container.- Du kannst die IP-Adresse des Containers weder anpingen noch dich damit verbinden.
- Auf dem Mac erscheint keine Schnittstelle
docker0. - Der Dienst funktioniert unter Linux, aber nicht auf dem Mac.
Mögliche Ursachen
- Der Port ist nicht veröffentlicht. Ohne
-pleitet Docker Desktop den Port nicht an den Mac weiter. - Container-IPs bei Docker Desktop. Laut der Dokumentation von Docker Desktop ist dessen Bridge-Netzwerk vom Host aus nicht erreichbar.
- Der Dienst lauscht im Container auf 127.0.0.1. Dann kann sich nur der Container selbst damit verbinden.
- Ein falsches Port-Paar. In
-p 8080:80ist 8080 der Port auf dem Mac und 80 der Port im Container.
So prüfst du es
Liste die laufenden Container und ihre veröffentlichten Ports auf.
docker psAusgabe Die Spalte PORTS zeigt Paare wie
0.0.0.0:8080->80/tcp. Kein Paar bedeutet, dass der Port nicht veröffentlicht ist.Zeige die veröffentlichten Ports eines Containers an.
docker port my-containerTeste den Dienst im Container, falls das Image wget enthält. Eine Antwort bedeutet, dass der Dienst funktioniert.
docker exec my-container wget -qO- http://localhost:80Sieh nach, welcher Prozess auf dem Mac auf dem Port lauscht.
lsof -nP -iTCP:8080 -sTCP:LISTEN
So behebst du es
Starte den Container mit einem veröffentlichten Port. Die erste Zahl ist der Port auf dem Mac.
docker run -d -p 8080:80 nginxVerbinde dich vom Mac aus mit localhost und dem Port auf dem Mac.
curl http://localhost:8080Lass den Dienst im Container auf 0.0.0.0 statt auf 127.0.0.1 lauschen. Die Einstellung dafür steht in seiner Dokumentation.
Ist der Port auf dem Mac belegt, wähle einen anderen. Siehe Port auf dem Mac bereits belegt.
Mit OrbStack kannst du auch die IP-Adresse des Containers oder seinen Namen
container-name.orb.localverwenden.
Mit Kilobat
Die Prüfungen von Kilobat laufen auf dem Mac. Nutze
--context container, wenn der fehlerhafte Code in einem Container läuft. Der Bericht endet dann mit einem Befehl, den du dort ausführst.kilobat why http://localhost:8080 --context container
Fragen
Warum kann ich einen Container in Docker Desktop nicht anpingen?
Laut Docker-Dokumentation kann Docker Desktop keinen Datenverkehr vom Mac zu Linux-Containern routen. Veröffentliche stattdessen einen Port.
Funktioniert OrbStack anders?
Ja. Laut OrbStack-Dokumentation kannst du dich vom Mac aus per IP-Adresse und über .orb.local-Namen mit Containern verbinden.
Quellen
- Docker Docs: Explore networking how-tos on Docker Desktop
- Docker Docs: Networking on Docker Desktop
- OrbStack Docs: Container networking
- lsof(8), Manpage aus macOS 27.2
Quellen geprüft am 29. Oktober 2026. Die Manpages sind die mit macOS installierten; öffne eine mit man <name> im Terminal.