【发布时间】:2019-05-19 00:47:31
【问题描述】:
我目前正在学习 Docker,并通过 Dockerfile reference,特别是 RUN 指令。 RUN 有两种形式 - shell 形式,它在 shell 中运行命令,以及 exec 形式,它“执行不调用命令 shell”(引自 Note 部分)。
如果我正确理解了文档,我的问题是 - Docker 是否以及如何在没有 shell 的情况下运行命令?
请注意,Can a command be executed without a shell? 的答案实际上并不能回答问题。
【问题讨论】:
-
一旦shell解析了你输入的命令行,你认为shell本身如何调用外部命令? 必须有一个它可以调用的操作系统级接口。 (此外,pass-a-string-to-a-shell 方法存在重大安全漏洞——如果您在环境中或其他 argv 位置带外传递参数,则很容易避免 shell 注入漏洞,但是 @ 987654326@ 也没有提供方便的方法)。
标签: shell docker dockerfile