在没有--privileged的情况下在Docker中使用ecryptfs.--设备的适当值



我需要设置一个Docker容器,在该容器中对文件系统的一部分进行加密。请不要纠缠于原因,答案是丑陋的,而且更多的是政治性的,而不是技术性的。

如果重要的话,要加密的特定部分将是从主机装载的卷,尽管我最初只是在容器的/tmp中尝试。由于我们的部署工作方式,直接在容器外的卷上执行ecryptfs内容会很不方便;我想作为作为CMD运行的shell脚本的一部分在内部进行装载。

如果我用--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>

添加所有功能在这里没有帮助——问题出在其他地方。

docker运行的文档表示,--privileged还消除了与--device参数相关的障碍,将fuse作为需要设置--device的示例,并在"之前"示例中显示了类似的外观错误。ecryptfs和fuse似乎有一定的共同点,所以这感觉是一个很好的线索。

我尝试将--device /tmp/enc添加到我的docker run命令中,但没有成功(主机不知道这个路径,这是有道理的)。我还注意到有一个/dev/ecryptfs(尽管我不知道它能做什么),并尝试了一下。容器已运行,但ecryptfs装载不起作用。

令人担忧的是,这似乎无法实现。。。有什么想法吗?

docker使用的实际存储驱动程序似乎不适用于eCryptFS。

请在存储库中检查这些问题。

相关内容

  • 没有找到相关文章

最新更新