Использование ecryptfs внутри Docker без --privileged. Подходящее значение для --device?
Мне необходимо настроить контейнер Docker, внутри которого часть файловой системы зашифрована. Пожалуйста, давайте не будем останавливаться на том, почему, ответ уродлив и скорее политический, чем технический.
В случае, если это имеет значение, конкретная часть, которая будет зашифрована, будет монтироваться на томе с хоста, хотя я изначально пробую это только в /tmp
, Из-за того, как работает наше развертывание, было бы неудобно делать ecryptfs прямо на томе, вне контейнера; Я хочу сделать монтирование внутри как часть сценария оболочки, запущенного как CMD
,
Я могу сделать это хорошо при условии, что я запускаю контейнер с --privileged
(благодаря этому подробному комментарию) - но я не хочу предоставлять все, что идет с этим. Методом проб и ошибок я обнаружил, что добавление --cap-add IPC_LOCK
преодолевает первую непостижимую ошибку (Exiting. Unable to obtain passwd info
) но процесс позже терпит неудачу с этим:
mount: block device /tmp/enc is write-protected, mounting read-only
mount: cannot mount block device /tmp/enc read-only
Error mounting eCryptfs: [-1] Operation not permitted
Check your system logs; visit <http://ecryptfs.org/support.html>
Добавление всех возможностей здесь не помогает - проблема кроется в другом.
Документы, управляемые докером, говорят, что --privileged
также устраняет барьеры, связанные с --device
параметр, дает предохранитель в качестве примера того, что нужно --device
установить, и показывает довольно похожие ошибки в примере "до". ecryptfs и fuse, кажется, имеют определенное общее количество, так что это хорошая подсказка.
Я пытался добавить --device /tmp/enc
к моему docker run
команда, безрезультатно (хост не знает об этом пути, что имеет смысл). Я также заметил, что есть /dev/ecryptfs
(хотя я не знаю, что он делает) и попробовал это. Контейнер запустился, но монтирование ecryptfs не сработало.
Это начинает беспокоиться, как будто это не может быть сделано... Есть идеи?
1 ответ
Кажется, что фактические драйверы хранилища, используемые докером, не работают на eCryptFS.