Сервер во внутренней сети в Docker
Внутренняя сеть проекта даёт доступ к серверу только соседним контейнерам, без порта на компьютере. Снаружи к базе по номеру порта не попасть: связь идёт по имени сервиса внутри описания.
Сеть inside помечена
как внутренняя.
Сервис db без портов
на mongo:8.3
без пароля.
Сервис client
на том же образе
ждёт в фоне:
networks:
inside:
internal: true
services:
db:
image: mongo:8.3
networks:
- inside
client:
image: mongo:8.3
command: ["sleep", "300"]
networks:
- inside
Фоновый подъём проекта выполняют так:
docker compose up -d
Запрос из соседней копии
идёт на имя db,
которое и есть адрес
сервера в сети.
Если сервер ещё стартует,
запрос повторяют через
несколько секунд.
Имя сервиса db
заменяет числовой адрес
внутри проекта:
docker compose exec client mongosh --quiet --host db --eval "db.runCommand({ ping: 1 })"
Опишите внутреннюю сеть back, сервис db без порта и соседа probe на mongo:8.3 с ожиданием в фоне.
Выполните короткую проверку живости сервера db из probe по имени сервиса.