在describe或kubelet日志中没有明确记录错误原因,基本都是因为command命令不合法导致
命令和参数说明:
command和args分别对应于 Dockerfile 中的ENTRYPOINT和CMD。command表示要执行的命令,args是传递给该命令的参数。如果command和args均没有写,那么用Dockerfile的配置。
如果command写了,但args没有写,那么Dockerfile默认的配置会被忽略,执行输入的command(不带任何参数,当然command中可自带参数)。
如果command没写,但args写了,那么Dockerfile中配置的ENTRYPOINT的命令行会被执行,并且将args中填写的参数追加到ENTRYPOINT中。
如果command和args都写了,那么Dockerfile的配置被忽略,执行command并追加上args参数。比如:command:/test.sh,p1,p2
args: p3,p4关于CMD和ENTRYPOINT还有一点需要特别注意的是:如果一个Dockerfile中有多个CMD或ENTRYPOINT,只有最后一个会生效,前面其他的都会被覆盖
多条命令执行
kubernetes中,
command指令不允许执行多条命令。如果需要执行多条指令,可参照如下写法
写法1
1 | - command: |
写法2(args类似写shell)
1 | command: ["/bin/sh","-c"] |
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来源 小五的个人杂货铺!
