CMD

参考:CMD

一个Dockerfile文件仅能执行一条CMD指令。如果存在多条CMD指令,仅最后一个CMD指令起作用

语法

CMD指令有3种书写格式:

  1. CMD ["executable","param1","param2"]exec形式,推荐)
  2. CMD ["param1","param2"]ENTRYPOINT指令的默认参数)
  3. CMD command param1 param2shell形式)

作用

CMD指令的主要目的是提供容器默认操作。可以通过CMD指定一个可执行文件,如果在Dockerfile中指定了ENTRYPOINT,那么CMD指定的可执行文件会被忽略

注意:如果CMD指令用于提供ENTRYPOINT指令参数,那么两者必须按JSON数组格式编写

注意:如果使用exec格式,其将会解析成JSON数组,所以必须使用双引号而不是单引号

调用shell命令:

调用非shell命令,必须使用exec形式,且使用命令绝对路径,比如CMD ["/usr/bin/wc","--help"]

如果在运行docker run时指定了运行命令,将会覆盖CMD指令操作

RUN vs. CMD

示例一

示例二

示例三