似乎在容器内安装了没有' acl'的文件系统,因此' setfacl'不会工作。并且它也不会让我重新安装它,我甚至无法运行' df -h'。
我需要setfacl,因为我让root拥有我网站上的所有文件,并且我只给网络服务器用户写入权限,只有几个目录,如缓存,日志等。
我该怎么办?
答案 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