Контейнеры по умолчанию изолированы, но часто им нужно общаться: веб-приложению — с базой данных, например. Для этого Docker создаёт сети.
Контейнеры в одной сети находят друг друга по имени. Создадим сеть и подключим к ней два контейнера:
docker network create mynet docker run -d --name db --network mynet postgres docker run -d --name app --network mynet myapp
Теперь контейнер app может обращаться к базе по адресу db (имя контейнера работает как имя хоста) — не нужно знать IP-адрес. Docker сам ведёт внутренний «справочник имён».
Это ключевой принцип: вместо жёстких IP-адресов сервисы обращаются друг к другу по понятным именам. Ручное создание сетей и подключение контейнеров по одному быстро надоедает — поэтому многосервисные приложения описывают декларативно через Docker Compose, о чём следующий раздел.