【问题标题】:Bash script within Docker container unexpected "permission denied"Docker 容器中的 Bash 脚本意外“权限被拒绝”
【发布时间】:2018-12-20 03:34:34
【问题描述】:

我正在使用 amazonlinux 映像来测试服务器设置脚本,而无需在真正的 EC2 实例上花费时间和金钱。但是,我无法让脚本在容器中执行。

我正在使用以下命令运行:`docker run -v script.sh:/tmp/script.sh -w /tmp amazonlinux ./script.sh

"Error response from daemon: OCI runtime create failed: container_linux.go:348: starting container process caused "exec: \"./script.sh\": permission denied": unknown. 失败

  1. 主机上的脚本权限为-rwxrwxrwx
  2. 容器内的权限是drwxr-xr-x
  3. 容器中的用户是root

【问题讨论】:

  • /home/root/amazonlinux 是有效路径/目录吗?
  • @JoseRaulBarreras /home/root 是工作目录,amazonlinux 是镜像名称。
  • 在容器 /home/root/script.sh/ 内部是一个目录(这是您第 2 点中的前导“d”)。如果主机上的路径不存在,就会发生这种情况。
  • @ThisIsNoZaku /home/root 存在吗?
  • @JoseRaulBarreras 不,但我将路径更改为无效的路径。

标签: bash docker


【解决方案1】:

试试这个: docker run -v ${PWD}/script.sh:/home/root/script.sh -w /home/root amazonlinux ./script.sh

【讨论】:

  • 这有帮助,但请解释为什么它很重要。
  • 我总是使用已挂载的源卷的完整路径,使用docker inspect 命令查看您的情况。
  • 如果您没有指定完整路径,docker 假定这是卷的名称
猜你喜欢
  • 2019-01-06
  • 2022-10-07
  • 1970-01-01
  • 2015-02-19
  • 2020-01-15
  • 2015-04-09
  • 2022-01-12
  • 2018-10-31
  • 1970-01-01
相关资源
最近更新 更多