РЕПЕТИТОР математика физика информатика
Для школьников и студентов. Подтягивание пробелов. ЦЭ, ЦТ, ОГЭ, ЕГЭ.
Идет набор на ЛЕТО. Жмите для подробностей:)
⊗dcMgSvHs 5 of 24 menu
◀ ▶

Подключение с хоста в Docker

Подключение с хоста идёт на опубликованный порт компьютера, а не внутрь сети контейнера. Клиент снаружи не знает внутренний адрес сервиса и стучится туда, куда проброшен номер порта.

Сервис db на mongo:8.3 получает пару портов 27017 без пароля при старте:

services: db: image: mongo:8.3 ports: - "27017:27017"

После фонового подъёма проекта отдельная короткая копия клиента достаёт опубликованный порт через адрес компьютера:

docker compose up -d

Проверка с образа mongo:8.3 идёт на имя host.docker.internal и порт 27017. Имя host.docker.internal с записью --add-host и host-gateway указывает на компьютер, где открыт порт. Запрос проходит, когда сервер уже слушает снаружи:

docker run --rm --add-host=host.docker.internal:host-gateway mongo:8.3 mongosh --quiet --host host.docker.internal --port 27017 --eval "db.runCommand({ ping: 1 })"

Поднимите сервис db с портом 27019 наружу и проверьте живость сервера с отдельной копии mongo:8.3 через адрес хоста.

Отметьте, что соединение идёт на опубликованный номер, а не на имя сервиса внутри проекта.

← →
↑
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить