一尘不染

如何在Docker容器中使用setfacl?

docker

似乎在容器中没有“ acl”的情况下挂载了文件系统,因此“ setfacl”将不起作用。而且它也不会让我重新安装它,甚至无法运行’df -h’。

我需要setfacl,因为我以root身份拥有我网站上的所有文件,并且授予Web服务器用户仅对几个目录(如缓存,日志等)的写权限。

我能做什么?


阅读 249

收藏
2020-06-17

共1个答案

一尘不染

好消息是Docker支持ACL。

在早期版本中,Docker使用了一个不支持它们的名为AUFS的文件系统。通过使用适当的选项启动Docker守护程序,您可以告诉Docker使用Device
Mapper(LVM)进行存储:

码头工人 **-d-存储驱动程序= devicemapper** --daemon = true

来源:https//groups.google.com/forum/#!topic /
docker- user
/ 165AARba2Bk

然后您就可以setfacl在容器中使用了。

现在,任何合理的最新发行版或Docker都将使用overlay2存储驱动程序,该驱动程序可立即使用。要检查什么是您的存储驱动程序:

docker info | grep Storage

df -h由于其他不相关的原因而无法正常工作:它依赖于/etc/mtab,在您的情况下不存在。在您的容器中,从创建一个链接procfs,以解决此问题:

ln -s /proc/mounts /etc/mtab
2020-06-17