Разработчикам
Не удаётся подключиться к контейнеру Docker с Mac
Docker на Mac запускает контейнеры в виртуальной машине Linux. Чтобы подключиться к контейнеру из macOS, обычно публикуют порт на localhost.
Симптомы
curl localhost:8080не проходит, хотя внутри контейнера сервис работает.- Не удаётся пинговать IP-адрес контейнера или подключиться к нему.
- На Mac нет интерфейса
docker0. - Сервис работает на Linux, но не на Mac.
Вероятные причины
- Порт не опубликован. Без
-pDocker Desktop не пробрасывает порт на Mac. - IP контейнеров в Docker Desktop. В документации Docker Desktop сказано, что его сеть bridge недоступна с хоста.
- Сервис в контейнере слушает 127.0.0.1. Тогда подключиться к нему может только сам контейнер.
- Неправильная пара портов. В
-p 8080:808080 — порт на Mac, а 80 — порт контейнера.
Как проверить
Покажите запущенные контейнеры и их опубликованные порты.
docker psВывод В столбце PORTS — пары вроде
0.0.0.0:8080->80/tcp. Если пары нет, порт не опубликован.Покажите опубликованные порты одного контейнера.
docker port my-containerПроверьте сервис изнутри контейнера, если в образе есть wget. Если пришёл ответ, сервис работает.
docker exec my-container wget -qO- http://localhost:80Посмотрите, какой процесс на Mac слушает порт.
lsof -nP -iTCP:8080 -sTCP:LISTEN
Как исправить
Запустите контейнер с опубликованным портом. Первое число — порт на Mac.
docker run -d -p 8080:80 nginxПодключитесь с Mac через localhost и порт на Mac.
curl http://localhost:8080Сделайте так, чтобы сервис в контейнере слушал 0.0.0.0, а не 127.0.0.1. Нужную настройку ищите в документации сервиса.
Если порт на Mac занят, выберите другой. См. Порт уже занят на Mac.
В OrbStack можно также использовать IP-адрес контейнера или его имя
container-name.orb.local.
С Kilobat
Проверки Kilobat выполняются на Mac. Используйте
--context container, когда сбойный код работает в контейнере. Тогда отчёт заканчивается командой, которую нужно запустить там.kilobat why http://localhost:8080 --context container
Вопросы
Почему не удаётся пинговать контейнер в Docker Desktop?
В документации Docker сказано, что Docker Desktop не может маршрутизировать трафик с Mac к контейнерам Linux. Вместо этого опубликуйте порт.
А OrbStack работает иначе?
Да. В документации OrbStack сказано, что с Mac можно подключаться к контейнерам по IP-адресу и по именам .orb.local.
Источники
- Документация Docker: Explore networking how-tos on Docker Desktop
- Документация Docker: Networking on Docker Desktop
- Документация OrbStack: Container networking
- lsof(8), man-страница из macOS 27.2
Источники проверены 29 октября 2026 г. Man-страницы — те, что установлены вместе с macOS; откройте любую командой man <name> в Терминале.