CMD指令和ENTRYPOINT指令的作用都是为镜像指定容器启动后的命令。
CMD
支持三种格式CMD ["executable","param1","param2"] 使用 exec 执行,推荐方式;
CMD command param1 param2 shell中执行 ( /bin/sh ),提供给需要交互的应用;
CMD ["param1","param2"] 注: 当Dockerfile内有ENTRYPOINT命令时,CMD命令会变成参数追加到ENTRYPOINT命令后;
指定启动容器时执行的命令,每个 Dockerfile只能有一条 CMD 命令。如果指定了多条命令,只有最后一条会被执行。如果用户启动容器时候指定了运行的命令,则会覆盖掉 CMD 指定的命令。
ENTRYPOINT
两种格式:ENTRYPOINT ["executable", "param1", "param2"] 使用 exec 执行,推荐方式;
ENTRYPOINT command param1 param2 shell中执行 ( /bin/sh )
配置容器启动后执行的命令,并且不可被 docker run 提供的参数覆盖。
每个 Dockerfile 中只能有一个 ENTRYPOINT,当指定多个时,只有最后一个起效。
差异1