---
title: "Не удаётся подключиться к контейнеру Docker с Mac: порты и IP · Руководства Kilobat"
url: "https://kilobat.app/ru/guides/docker-container-from-mac.html"
description: "Подключение из macOS к сервису в Docker Desktop или OrbStack: опубликуйте порт, используйте localhost и узнайте, когда работают IP-адреса контейнеров."
---

Разработчикам

# Не удаётся подключиться к контейнеру Docker с Mac

Docker на Mac запускает контейнеры в виртуальной машине Linux. Чтобы подключиться к контейнеру из macOS, обычно публикуют порт на localhost.

Относится к: Docker Desktop и OrbStack в актуальных версиях macOS. · Проверено: 29 октября 2026 г.

## Симптомы

- `curl localhost:8080` не проходит, хотя внутри контейнера сервис работает.
- Не удаётся пинговать IP-адрес контейнера или подключиться к нему.
- На Mac нет интерфейса `docker0`.
- Сервис работает на Linux, но не на Mac.

## Вероятные причины

- **Порт не опубликован.** Без `-p` Docker Desktop не пробрасывает порт на Mac.
- **IP контейнеров в Docker Desktop.** В документации Docker Desktop сказано, что его сеть bridge недоступна с хоста.
- **Сервис в контейнере слушает 127.0.0.1.** Тогда подключиться к нему может только сам контейнер.
- **Неправильная пара портов.** В `-p 8080:80` 8080 — порт на Mac, а 80 — порт контейнера.

## Как проверить

1. Покажите запущенные контейнеры и их опубликованные порты.

   ```
   docker ps
   ```

   Вывод В столбце PORTS — пары вроде `0.0.0.0:8080->80/tcp`. Если пары нет, порт не опубликован.
2. Покажите опубликованные порты одного контейнера.

   ```
   docker port my-container
   ```
3. Проверьте сервис изнутри контейнера, если в образе есть wget. Если пришёл ответ, сервис работает.

   ```
   docker exec my-container wget -qO- http://localhost:80
   ```
4. Посмотрите, какой процесс на Mac слушает порт.

   ```
   lsof -nP -iTCP:8080 -sTCP:LISTEN
   ```

## Как исправить

1. Запустите контейнер с опубликованным портом. Первое число — порт на Mac.

   ```
   docker run -d -p 8080:80 nginx
   ```
2. Подключитесь с Mac через localhost и порт на Mac.

   ```
   curl http://localhost:8080
   ```
3. Сделайте так, чтобы сервис в контейнере слушал 0.0.0.0, а не 127.0.0.1. Нужную настройку ищите в документации сервиса.
4. Если порт на Mac занят, выберите другой. См. [Порт уже занят на Mac](https://kilobat.app/ru/guides/port-already-in-use.html).
5. В OrbStack можно также использовать IP-адрес контейнера или его имя `container-name.orb.local`.

## С Kilobat

1. Проверки 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](https://docs.docker.com/desktop/features/networking/networking-how-tos/)
- [Документация Docker: Networking on Docker Desktop](https://docs.docker.com/desktop/features/networking/)
- [Документация OrbStack: Container networking](https://docs.orbstack.dev/docker/network)
- lsof(8), man-страница из macOS 27.2

Источники проверены 29 октября 2026 г. Man-страницы — те, что установлены вместе с macOS; откройте любую командой `man <name>` в Терминале.

## Похожие руководства

- [Контейнер не может подключиться к localhost на Mac](https://kilobat.app/ru/guides/localhost-from-container.html): У каждого контейнера свой сетевой стек.
- [Порт уже занят на Mac](https://kilobat.app/ru/guides/port-already-in-use.html): Слушать TCP-порт на одном адресе может только один процесс.
- [Почему не подключается один сайт или API](https://kilobat.app/ru/guides/recipes/why-cant-it-connect.html): Когда интернет работает, а один адрес — нет, Kilobat проверяет уровни по очереди.
- [Порт 5000 или 7000 занят на Mac: «Ресивер AirPlay»](https://kilobat.app/ru/guides/airplay-receiver-port-5000.html): Apple указывает TCP-порты 5000 и 7000 для AirPlay.
