繁体   English   中英

Docker 启动容器进程导致“exec:\\”arg\\“:在 $PATH 中找不到可执行文件”:未知。

[英]Docker starting container process caused “exec: \”arg\“: executable file not found in $PATH”: unknown.

我的任务是创建Dockerfile ,使其按以下方式工作:

docker build -t test .
返回Image named test successfully created

docker run --rm test
返回Hello world!

docker run --rm test Universe
返回Hello Universe!

到目前为止我所拥有的:
文件

FROM ubuntu:14.04

LABEL maintainer="trthhrtz"

CMD if [ $# -eq 0 ]; then echo "Hello world!"; else echo "Hello " + $@ + "!"; fi

在输入参数的情况下它不起作用,错误是:
docker: Error response from daemon: OCI runtime create failed: container_linux.go:348: starting container process caused "exec: \\"Universe\\": executable file not found in $PATH": unknown.
ERRO[0000] error waiting for container: context canceled

这样做会更容易:

  • 定义一个入口点脚本entrypoint.sh并在其中编写您的命令逻辑。
  • 将该文件COPYDockerfile 中
  • CMD未定义

这样,您的docker run -it --rm myImage arg1 arg2 ...命令的任何附加参数都将传递给 bash entrypoint.sh 脚本,该脚本将正确解释$@ ,如“ set -eexec "$@"为 docker 入口点脚本做些什么? "。
有关更多信息,请参阅“在 docker 中从 CMD 传递参数”。

确保在执行docker command时参数顺序正确。

例如:

docker run --name test-ubuntu -it d37f4165b5d2 bash
代替
docker run --name test-ubuntu d37f4165b5d2 -it bash

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM