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

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

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

Сервис db на mysql:9.7 получает пароль demo и пару портов 3306:

services: db: image: mysql:9.7 environment: MYSQL_ROOT_PASSWORD: demo ports: - "3306:3306"

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

docker compose up -d

Запрос с той же учебной парой логина идёт на имя host.docker.internal:

docker run --rm --add-host=host.docker.internal:host-gateway mysql:9.7 mysql -h host.docker.internal -P 3306 -uroot -pdemo -e "SELECT 1"

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

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

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

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