Привилегированный контейнер может перезагрузить хост, заменить ядро хоста, получить доступ к произвольным хост-устройствам (например, к устройству с необработанным диском) и перенастроить сетевой стек хоста, среди прочего . Я бы посчитал это чрезвычайно опасным и не намного безопаснее, чем запуск процесса с правами root на хосте.
Я бы предположил, что использование --privileged
вообще является ошибкой. Если вам действительно нужен процесс для администрирования хоста, вы должны запустить его напрямую (как root) на хосте, а не внутри слоя изоляции, который блокирует то, что он пытается сделать. Есть некоторые полезные вещи с ограниченными эскалационными привилегиями, которые полезны, но если например ваш контейнер должен mlock (2), вы должны --cap-add IPC_LOCK
для конкретной привилегии, которая вам нужна, вместо открытия по всему миру.
(Я все еще понимаю, что попытка запустить Docker внутри Docker обычно считается ошибкой , и использование демона Docker хоста предпочтительнее. Конечно, этот также дает неограниченный контроль над хозяин ...)