容器内权限正常,无权限创建目录
相关环境
- Docker 18.09.07
- kernel 4.4.185
问题
容器内用户为某特定用户,比如woniu,容器内应用要在a目录下创建新目录,a目录属主为woniu,权限750。但是在创建时报错,权限不足。
排查过程
- 首先排查镜像是否正常。在其他主机run镜像,进入容器,可以成功创建目录;
- 对比两个环境的docker版本、配置等,通过调整docker配置等,还是无法解决问题,排除docker影响;
- 对比两个环境系统内核,发现内核版本不一致,分别为3.10.0 和4.4.185;
解决
将内核版本有4.4.185降为3.10.0,运行容器,正常。
总结
应该是docker在4.4.185上有bug,有待确认。
后来发现,貌似和tomcat版本有关,9.0版本普遍存在这个问题,跟镜像分层有关。
1 2 3 4 5 6 7 8 9 10 11 12 13
| FROM centos:7.2.1511 COPY apache-tomcat-9.0.30.tar.gz /opt/
RUN cd /opt \ && tar xvf apache-tomcat-9.0.30.tar.gz \ RUN groupadd -g 5666 demo && useradd -l -r demo -g demo -u 666 \ && chown -R demo:demo /opt/apache-tomcat-9.0.30
RUN cd /opt \ && tar xvf apache-tomcat-9.0.30.tar.gz \ && groupadd -g 5666 demo && useradd -l -r demo -g demo -u 666 \ && chown -R demo:demo /opt/apache-tomcat-9.0.30
|
https://github.com/docker-library/tomcat/issues/35