Dockerfile中ENTRYPOINT,CMD 与 K8s Yaml中command,args

Dockerfile中ENTRYPOINT,CMD 比较

ENTRYPOINT 的两种格式:

  • ENTRYPOINT ["executable", "param1", "param2"] (exec格式,推荐使用此格式)
  • ENTRYPOINT command param1 param2 (shell 格式)

CMD指令有三种格式:

  • CMD ["executable","param1","param2"] (exec 格式,推荐用此格式)
  • CMD command param1 param2 (shell 格式)

下图是对比Dockerfile

请将下列代码复制- http://www.mdeditor.com/ 效果展示

ENTRYPOINT CMD docker run ... image CMD 运行结果
exec格式 shell格式 exec格式 shell格式

注意:

  • Dockerfile 中多个CMD 最后一个生效
  • shell和exec格式的区别,只有shell形式才会获取相关环境变量(这里环境变量指例如:$HOME)
  • Docker run CMD 会覆盖 Dockerfile 中的 CMD
K8s Yaml中command,args
K8s Yaml Docker 运行结果
command args ENTRYPOINT CMD
按照docker规则
√ | x √ | x 没有参数
√ | x √ | x

备注:

  • | 表示或
  • x 表示空
  • √ 表示有

你可能感兴趣的:(Dockerfile中ENTRYPOINT,CMD 与 K8s Yaml中command,args)