Какие типы сетей есть в Docker и чем bridge отличается от host?
Контейнеры, volumes и сети
По умолчанию контейнер сидит в изолированной bridge-сети за NAT со своим IP, а в режиме host он разделяет сетевой стек с хостом без изоляции портов.
Bridge
- Docker поднимает виртуальный мост
docker0; контейнеры получают адреса вида 172.17.0.x. - Наружу порты пробрасываются явно:
-p 8080:80. - Пользовательские bridge-сети дают встроенный DNS по имени контейнера — так сервисы находят друг друга в Compose.
Host
--network host: контейнер слушает порты хоста напрямую, без NAT и-p.- Минусы: нет изоляции, возможны конфликты портов; нативно — на Linux; в Docker Desktop (macOS/Windows) поддержка появилась с версии 4.34 и работает относительно Linux-VM.
Остальные драйверы
none— без сети вообще, для изолированных задач.overlay— сеть между несколькими хостами, нужна оркестраторам.macvlan— контейнер получает адрес прямо в физической сети.
Коротко для собеседования
Bridge даёт контейнеру изолированную сеть со своим IP за NAT, и порты наружу публикуют через -p; host убирает эту изоляцию и отдаёт контейнеру сетевой стек хоста. Сервисам, которые ищут друг друга по имени, нужна пользовательская bridge-сеть — в ней работает встроенный DNS.