👁 В сложных приложениях, состоящих из множества сервисов, важно разделять их в отдельные сети для обеспечения безопасности и лучшей изоляции. Docker позволяет создать несколько сетей для контейнеров, что дает возможность ограничить доступ сервисов друг к другу, а также контролировать трафик между ними.
📝 Создание нескольких Docker сетей:
Сначала создайте сети, которые будут использоваться для разных сервисов. Например, одна сеть для базы данных, другая для веб-приложений. Создаём две сети: db-network для работы с базой данных и web-network для веб-сервисов:
docker network create db-network docker network create web-network
📝 Запуск контейнеров в разных сетях:
Теперь, при запуске контейнеров, указывайте, к какой сети они будут подключены. Например, контейнер с веб-приложением подключается только к web-network, а контейнер с базой данных — только к db-network.
docker run -d --name db-container --network db-network postgres docker run -d --name web-container --network web-network nginx
📝 Контроль доступа между сетями:
services:
db:
image: postgres
networks:
- db-network
web:
image: nginx
networks:
- web-network
networks:
db-network:
web-network:
Контейнеры в разных сетях не могут напрямую обмениваться данными, но вы можете настроить проксирование или другие способы для ограниченного взаимодействия между сервисами. Для этого достаточно использовать docker-compose, чтобы объявить сети и задать, какие сервисы могут взаимодействовать друг с другом.
❗️ Этот подход позволяет ограничить доступ к сервисам, повысив безопасность вашего приложения и упростив конфигурацию изоляции между различными слоями приложения, особенно в многоконтейнерных решениях.


