繁体   English   中英

以字符串形式运行命令时,Docker exec错误“在$ PATH中找不到可执行文件:未知”

[英]Docker exec error “executable file not found in $PATH”: unknown" when running a command as a string

以下是我尝试运行的命令:

docker exec sandbox_1 'influxd-ctl sandbox_1:8091'

我知道显然这意味着容器将使用确实具有必要的$PATH的其他外壳执行它,但是我不确定如何处理。

对于它的价值,我尝试了不带单引号的influxd-ctl ,但没有读取命令的其余部分。

docker exec sandbox_1 influxd-ctl sandbox_1:8091

思考?

更新:我也尝试运行bash -c <string>作为传递给exec的命令,但这似乎也不起作用。

不应使用单引号。 Exec命令将命令及其参数作为单独的参数。

根据您的情况,正确的命令应为:

docker exec <container> influxd-ctl <container>:8091

您还可以在容器内有外壳时测试命令,如下所示:

docker exec -it <container> bash

然后,您应该(提供的bash在容器内可用,否则可以使用其他shell)获得如下所示的根shell:

root@<container>:~# 

注意:根据在用于构建容器映像的Dockerfile中设置的位置,工作目录可能会有所不同。

在与容器进行交互的交互式外壳中,您可以显式地尝试命令,而无需Exec命令来回传递东西。

root@<container>:~# influxd-ctl <container>:8091

如果发现您的命令在那里不起作用,则可能influxd-ctl命令期望使用与您建议的参数不同的参数。

暂无
暂无

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

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