过程及报错
今天使用docker跑一个tomcat 的 domo 然后使用命令
docker run -d --name="test-web" -u root --rm -p 8170:8080 -v /data/tomcat/app-logs1:/app/tomcat/logs testtomcat:v1.0
发现容器创建成功 , 容器的id也出来了
但是 使用 docker ps 和 docker ps -a 均未找到容器
于是就把上面命令中的 -d (docker容器后台运行) 去掉
然后发现报错了
/app/tomcat/bin/catalina.sh:
line 132: /app/tomcat/logs/startup.log: Permission denied
原因分析
错误的原因 是 /app/tomcat/logs/startup.log 这个文件没有访问权限
但是我们已经 通过 docker run 命令中的 -v /data/tomcat/app-logs1:/app/tomcat/logs
进行了挂载 所以就是我们的宿主机 /data/tomcat/app-logs1: 这个文件夹没有权限
使用 ll 查看这个 文件夹 会看到 开头的权限是 rwx r-x —
我们发现 其实是有权限的
是你当前的 宿主机用户 和 你的docker 容器用户不一致,导致没有访问权限
解决
在docker run 命令中 更改 -u 进行用户的指定
docker run -d --name="test-web" -u yueluo --rm -p 8170:8080 -v /data/tomcat/app-logs1:/app/tomcat/logs testtomcat:v1.0