linux - 在没有 --privileged 的​​情况下在 Docker 中使用 ecryptfs。 --device 的适当值?

标签 linux docker ecryptfs

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

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

只要我使用 --privileged 运行容器,我就可以做到这一点(感谢 this throwaway comment )- 但我不想授予随之而来的一切。通过反复试验,我发现添加 --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-run 文档说 --privileged还消除了与 --device 相关的障碍参数,给出 fuse 作为需要 --device 的示例。设置,并在“之前”示例中显示非常相似的错误。 ecryptfs 和 fusion 似乎有一定的共同点,所以这感觉是一个很好的线索。

我尝试添加--device /tmp/enc给我的docker run命令,无济于事(主机不知道这个路径,这是有道理的)。我还注意到有一个 /dev/ecryptfs (虽然我不知道它的作用)并尝试过。容器已运行,但 ecryptfs 挂载无法工作。

开始令人担忧,好像这无法完成......有什么想法吗?

最佳答案

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

检查these问题in the存储库。

关于linux - 在没有 --privileged 的​​情况下在 Docker 中使用 ecryptfs。 --device 的适当值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33924422/

相关文章:

regex - 优化 sed 字符串

linux - 使用命令行 Linux 远程服务器运行并启动 denodo 平台,无需 GUI

docker - 错误:约束无法满足:在更新 Alpine docker文件中的软件包时

ubuntu - 如何使用 Linux Mint 18.3 KDE 挂载加密/主目录?

超过 MSS 时的 Java 套接字发送延迟

linux - 如何仅列出点文件和点文件夹名称(不包含其中的内容)

postgresql - 在Docker中以哪种方式运行PostgreSQL?

git - docker 错误 : Unable to locate package git

linux - Plex 媒体服务器和 encFS

ssh - 如何挂载远程 ecryptfs 目录?