У меня есть следующая настройка контейнера.
На голом металлическом сервере установлены и запущены два демона Docker.
- Главный демон Docker Запускает мои контейнеры приложений, открывая 80/443 внешнему миру.
- Демон плагина Docker Запускает некоторые контейнеры, предоставленные клиентом, которые взаимодействуют с моим приложением через 80/443.
Я хотел бы предоставить клиенту доступ к API (2376) Демон плагина Docker чтобы клиент мог развертывать / запускать / останавливать свои собственные контейнеры. Клиент будет иметь доступ только к API, а не к хосту (SSH).
Проблема, с которой я сейчас сталкиваюсь, заключается в том, что, если клиенты запускают контейнер, который делает что-то небезопасное, например docker run -v /:/host/root Ubuntu rm -rf /host/root
.
Мой вопрос в том, что я могу сделать, чтобы предотвратить Демон плагина Docker от монтажного корня /
или любой другой каталог за пределами /home/user/
,
- Есть ли возможность запустить демон Docker в
/home/user/
? - Могу ли я использовать некоторую магию LSM (модули безопасности Linux SELinux /Apparmor), чтобы запретить демону docker монтировать некоторые или все пути к хосту, кроме users home или var /docker /libs?
- Мочь
--userns-remap
помочь мне достичь моей цели? - Доступны ли какие-либо другие варианты, кроме виртуальных машин?
Сервер полностью принадлежит одному клиенту. Так что безопасность или утечка данных не являются моей главной заботой. Что я действительно хочу предотвратить, так это то, что кто-то в Демон плагина делает что-то глупое, что влияет на мои контейнеры, которые запускаются в Главный демон Docker. Я хотел бы сохранить бережливость и придерживаться рабочего процесса только для docker и не хочу настраивать дополнительный рабочий процесс для создания виртуальной машины.