Linux   发布时间:2022-04-01  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了linux – 不能将基于保险丝的卷暴露给Docker容器大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。

概述

我试图向Docker容器提供一卷加密的文件系统供内部使用. 想法是容器将像往常一样写入卷,但事实上,主机将在将数据写入文件系统之前对其进行加密. 我正在尝试使用EncFS – 它在主机上运行良好,例如: encfs /encrypted /visible 我可以将文件写入/可见,那些被加密. 但是,当尝试运行具有/可见的容器的容器时,例如: docker run -i -t –privileged
我试图向Docker容器提供一卷加密的文件系统供内部使用.
想法是容器将像往常一样写入卷,但事实上,主机将在将数据写入文件系统之前对其进行加密.

我正在尝试使用EncFS – 它在主机上运行良好,例如:

我可以将文件写入/可见,那些被加密.
但是,当尝试运行具有/可见的容器的容器时,例如:

我在容器中得到一个卷,但它是在原始/加密的文件夹,而不是通过EncFs.如果我从/ visible卸载了EncFS,我可以看到容器写入的文件.不用说/加密是空的.

有没有办法让Docker通过EncFS安装卷,而不是直接写入文件夹?
相比之下,当我使用NFS挂载作为卷时,docker工作正常.它写入网络设备,而不是我装载设备的本地文件夹.

谢谢

解决方法

我无在本地复制您的问题.如果我尝试将encfs文件系统作为Docker卷公开,那么尝试启动容器时出错:
FATA[0003] Error response from daemon: CAnnot start container <cid>:
setup mount namespace stat /visible: permission denied

所以有可能你有不同的事情.无论如何,这是什么解决了我的问题:

认情况下,FUSE仅允许安装文件系统的用户访问该文件系统.当您运行Docker容器时,该容器最初以root身份运行.

安装FUSE文件系统时,可以使用allow_root或allow_other mount选项.例如:

$encfs -o allow_root /encrypted /other

这里,allow_root将允许root用户访问挂载点,而Allow_other将允许任何人访问安装点(只要目录中的Unix权限允许他们访问).

如果我使用allow_root通过encfs filesytem安装,那么我可以将该文件系统作为Docker卷进行公开,并且该文件系统的内容从容器内部正确显示.

大佬总结

以上是大佬教程为你收集整理的linux – 不能将基于保险丝的卷暴露给Docker容器全部内容,希望文章能够帮你解决linux – 不能将基于保险丝的卷暴露给Docker容器所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。