从bash脚本运行`docker run`失败。命令在命令行上不会失败

时间:2018-12-31 19:44:27

标签: bash docker

如果我从命令行运行以下命令。

wp_reset_postdata()

命令成功执行就好了。但是,如果我在bash脚本中调用相同的命令,则会出现以下错误:

  

docker:来自守护程序的错误响应:OCI运行时创建失败:   container_linux.go:348:启动容器进程导致“ exec:\” ls   -l \“:在$ PATH中找不到可执行文件”:未知。

bash脚本导致此错误怎么办?

1 个答案:

答案 0 :(得分:1)

  

“ exec:\” ls -l \“:在$ PATH中找不到可执行文件”

从错误中我可以看出,当您调用docker时,您以某种方式使用ls -l进行调用,其中包括空格作为一个参数。

docker run -t repo:tag "ls -l" # wrong

或者也许

cmd="ls -l" 
docker run -t repo:tag "$cmd" # wrong

用于解析docker命令的shell必须将ls-l视为单独的参数,以便将参数-lls可执行文件名区分开来。

cmd="ls -l" 
docker run -t repo:tag $cmd #works