docker 使用-v挂载文件路径时,没有访问权限出现 Permission denied

过程及报错

今天使用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

你可能感兴趣的:(docker)