Сервер во внутренней сети в Docker
Во внутренней сети другой сервис находит базу по имени сервиса, и порт наружу для этого не нужен. Снаружи к базе по номеру порта не попасть: связь идёт по имени внутри описания.
Сеть inside помечена
как внутренняя.
Сервис db без портов
получает пароль demo.
Сервис client на том же
образе ждёт в фоне:
networks:
inside:
internal: true
services:
db:
image: postgres:18
environment:
POSTGRES_PASSWORD: demo
networks:
- inside
client:
image: postgres:18
command: ["sleep", "300"]
networks:
- inside
Фоновый подъём проекта выполняют так:
docker compose up -d
Запрос из соседней копии
идёт на имя db
по сети TCP.
Пароль передают переменной
PGPASSWORD.
Имя сервиса заменяет
числовой адрес внутри проекта:
docker compose exec -e PGPASSWORD=demo client psql -h db -U postgres -c "SELECT 1"
Опишите внутреннюю сеть back, сервис store без порта и соседа probe на postgres:18 с ожиданием в фоне.
Выполните короткий запрос к store из probe по имени сервиса.