如何在Docker容器中使用setfacl?

时间:2014-03-28 13:57:29

标签: permissions docker

似乎在容器内安装了没有' acl'的文件系统,因此' setfacl'不会工作。并且它也不会让我重新安装它,我甚至无法运行' df -h'。

我需要setfacl,因为我让root拥有我网站上的所有文件,并且我只给网络服务器用户写入权限,只有几个目录,如缓存,日志等。

我该怎么办?

1 个答案:

答案 0 :(得分:15)

好消息是Docker支持ACL。

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

docker -d --storage-driver=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