从bash脚本运行"docker run"失败.命令行上的命令不会失败



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

docker run -t repo:tag ls -l

命令成功得很好。然而,如果我在bash脚本中调用相同的脚本,我会得到以下错误:

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

bash脚本会导致此错误吗?

"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

相关内容

最新更新