有关Docker容器内权限的奇怪错误

我正在运行一个官方的tomcat镜像( https://github.com/docker-library/tomcat/tree/master/8.5/jre8 ),并应用了自定义权限:我创build了一个tomcat:tomcat用户和组,并让他/ usr / local / tomcat的所有者和所有子目录。

在/ usr / local / tomcat中,当我做“touch test”或者“mkdir testdir”的时候,它可以工作,但是如果我在“work”子目录或者任何子目录下做同样的事情,它会失败。

tomcat@462080a55bca:/usr/local/tomcat$ ll | grep work drwxr-x--- 2 tomcat tomcat 4096 Jan 10 21:03 work tomcat@462080a55bca:/usr/local/tomcat$ touch work/test touch: cannot touch 'work/test': Permission denied tomcat@462080a55bca:/usr/local/tomcat$ mkdir work/testdir mkdir: cannot create directory 'work/testdir': Permission denied 

任何人都能告诉我为什么?

这是在Linux内核(也可能在aufs / overlay2)中的一个错误。 它在kernel> = 4.7中被修复了。更多细节见https://github.com/docker/docker/issues/30285

来自Docker的工程师Justin Cormack的其他信息:“这些修复中的很多都被回溯到稳定的4.4内核”,“具有4.9内核的Debian新版本将在几个月内发布,Docker for AWS和Azure也有4.9内核“。 (实际上Debian的版本是4.10,也许比预期的要晚,但是仍然是2017年上半年)。