docker中报permission denied错误

当使用Docker运行容器时遇到Permissiondenied错误,通常是因为CMD中的权限设置在运行时无效。文章建议将CMDchmod修改为RUNchmod,因为RUN在构建镜像时执行,确保文件具有正确权限。此外,挂载宿主机目录时需注意权限问题。
摘要由CSDN通过智能技术生成
  • 执行 Docker 命令 提示 permission denied
  • docker命令permission denied
  • docker容器启动报错Permission denied
  • Docker容器内Permission denied解决方法
  • docker: Error response from daemon: OCI runtime create failed: container_linux.go:349: starting container process caused “exec: “/usr/local/tomcat/bin/catalina.sh”: permission denied”: unknown.

转自:https://lingkang.top/archives/docker-zhong-bao-permissiondenied-cuo-wu

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-WimXPBA2-1684919670708)(/upload/2023/05/image-1684919040776.png)]

首先观察一下我的Dockerfile

FROM adoptopenjdk/openjdk8:ubi

# 工作目录
WORKDIR /usr/local


# 加入tomcat
COPY apache-tomcat-9.0.75 /usr/local/tomcat

ENV TZ=Asia/Shanghai
EXPOSE 8080

CMD chmod 777 /usr/local/tomcat/bin/*.sh

#启动时运行tomcat
CMD ["/usr/local/tomcat/bin/catalina.sh","run"]

这是由于启动docker时使用的用户不是root导致 CMD chmod 无效,将CMD chmod 777 改为 RUN chmod 777 即可

解决

将添加全选的 CMD chmod 777 /usr/local/tomcat/bin/*.sh 改为
RUN chmod 777 /usr/local/tomcat/bin/*.sh

PS 此方法只适用于非挂载宿主机目录,挂载宿主机目录时需要注意目录权限问题

RUNCMD的执行时机不同,RUN是在构建镜像时执行,属于root权限。CMD是在运行镜像时执行,此时会受到运行用户权限管控

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

凌康ACG

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值