首页/云/云与容器速查/Dockerfile CMD 默认命令
容器与 Docker106 条

Dockerfile CMD 默认命令

容器启动的默认命令或参数:可被 docker run 尾部命令整体覆盖;多条 CMD 只有最后一条生效。与 ENTRYPOINT 组合时扮演默认参数角色。

云与容器速查云更新于 2026-10-12
作用默认启动命令/参数,运行时可被覆盖
唯一性多条 CMD 仅最后一条生效(前面的静默失效)
exec 形式CMD ["nginx","-g","daemon off;"] 直接执行,信号可达
shell 形式CMD nginx -g "daemon off;" 经 /bin/sh -c,信号先到 sh
配合 ENTRYPOINTCMD 值作为 ENTRYPOINT 的追加参数

推荐写法

推荐写法
CMD ["nginx", "-g", "daemon off;"]
想要『参数可覆盖、入口不可覆盖』就用 ENTRYPOINT + CMD 组合;只有 CMD 时 run 尾参会整条替换。

易错点

  • 写了多条 CMD 期待追加效果:只有最后一条生效
  • shell 形式启动:docker stop 的 SIGTERM 给了 sh,应用没收到,10 秒后被 SIGKILL

数据来源与参考

  • Docker Docs:Dockerfile reference(CMD)

相关工具

​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌