在没有 – 特权的情况下在Docker中使用ecryptfs。 – 设备的适当价值?
我需要设置一个Docker容器,其中的一部分文件系统被encryption。 请不要谈论为什么,答案是丑陋的,比技术更具政治性。
万一它很重要,要encryption的特定部分将是从主机的卷挂载,虽然我最初只是在容器的/tmp
尝试了这一点。 由于我们的部署工作方式,在容器外部直接在卷上执行ecryptfs的东西是不方便的, 我想做一个作为CMD
运行的shell脚本的一部分。
我可以做到这一点确定只要我运行容器与 – --privileged
(感谢这一 --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>
添加所有function在这里没有帮助 – 问题在于别处。
--privileged
运行的文档说 – --privileged
也会消除与--device
参数相关的障碍,给出导火索作为一个需要设置的东西的例子,并且在“之前”的例子中显示相当类似的外观错误。 ecryptfs和fuse似乎有一定的共同点,所以这感觉是一个很好的线索。
我尝试添加--device /tmp/enc
到我的docker run
命令,无济于事(主机不知道这个path,这是有道理的)。 我也注意到有一个/dev/ecryptfs
(虽然我不知道它是什么),并尝试过。 容器运行,但ecryptfs安装将无法正常工作。
这似乎开始似乎令人担忧,如果这不能做…任何想法?
看起来docker使用的实际存储驱动程序在eCryptFS上不起作用。
检查存储库中的这个问题。