безопасно ли запускать Docker в Docker на openshift? - PullRequest
0 голосов
/ 12 ноября 2018

Я создал образ докера на сервере, который может запускать CI-CD для Jenkins. Поскольку в некоторых сборках используются докеры, я установил докер внутри своего образа, и чтобы запустить внутренний докер, мне пришлось дать ему --privilege.

Все работает хорошо, но я хотел бы запустить докер в докере, в Openshift (или Kubernetes). Проблема в получении разрешений --privilege.

Опасно ли использование контейнера привилегий в Openshift, и если да, то почему и сколько?

1 Ответ

0 голосов
/ 12 ноября 2018

Привилегированный контейнер может перезагрузить хост, заменить ядро ​​хоста, получить доступ к произвольным хост-устройствам (например, к устройству с необработанным диском) и перенастроить сетевой стек хоста, среди прочего . Я бы посчитал это чрезвычайно опасным и не намного безопаснее, чем запуск процесса с правами root на хосте.

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

(Я все еще понимаю, что попытка запустить Docker внутри Docker обычно считается ошибкой , и использование демона Docker хоста предпочтительнее. Конечно, этот также дает неограниченный контроль над хозяин ...)

...