Контейнер использует изоляцию namespaces и ограничения cgroups, а также права, capabilities и дополнительные политики безопасности. Он разделяет ядро с хостом, поэтому не равен отдельной виртуальной машине.
За счёт чего Docker-контейнер изолирован от хоста?
Контейнер использует изоляцию namespaces и ограничения cgroups, а также права, capabilities и дополнительные политики безопасности. Он разделяет ядро с хостом, поэтому не равен отдельной виртуальной машине.
Короткий ответ
Что ответить на собеседовании
Подробный разбор
Ответ с пояснениями
Контейнер использует изоляцию namespaces и ограничения cgroups, а также права, capabilities и дополнительные политики безопасности. Он разделяет ядро с хостом, поэтому не равен отдельной виртуальной машине.
Namespaces разделяют видимость процессов, сети, mount points и других ресурсов. Cgroups учитывают и ограничивают CPU, память и часть I/O. Файловая система образа формирует отдельное окружение, но примонтированные каталоги могут открыть данные хоста. Privileged-режим, лишние capabilities и доступ к Docker socket существенно ослабляют защиту. Безопасность зависит от конфигурации и обновления общего ядра, а не только от факта запуска через Docker.