2

Pod YAML 文件中的以下三个声明有什么区别:

  1. 容器:
  • 名称:busybox
    图片:busybox
    参数:
    -sleep
    -"1000"
  1. 容器:

    • 名称:busybox
      图像:busybox
      命令:["/bin/sh", "-c", "sleep 1000"]
  2. 容器:

  • 名称:busybox
    图片:busybox
    参数:
    -/bin/sh
    --c
    -sleep 1000

另外,上面的1、2和3会产生相同的结果吗?



我进一步编辑。这真的越来越令人困惑。看来,以下两个将产生相同的结果。如果是这样,不确定每个的目的是什么:

命令:
-睡眠
-“5000”

参数:
-睡眠
-“5000”

4

2 回答 2

0

根据https://kubernetes.io/docs/tasks/inject-data-application/define-command-argument-container/

在 Shell 中运行命令

command: ["/bin/sh"]
args: ["-c", "while true; do echo hello; sleep 10; done"]

Acommand是必需的args。或者

如果您不为容器提供命令或参数,则使用 Docker 映像中定义的默认值。

于 2021-07-24T09:07:17.410 回答
0

对于第一种情况:

如果您只为容器提供 args,则 Docker 映像中定义的默认入口点将使用您提供的 args 运行。

对于第二种情况:

如果您为容器提供命令但没有参数,则仅使用提供的命令。Docker 镜像中定义的默认 EntryPoint 和默认 Cmd 将被忽略。

所以在第一种情况下,busybox 默认入口点将执行给定的参数。在第二种情况下,busybox 默认入口点被忽略,“/bin/sh”命令将执行给定的参数。

参考:https ://kubernetes.io/docs/tasks/inject-data-application/define-command-argument-container/#notes

于 2021-03-17T16:01:34.287 回答