首页/云/Docker 容器速查/ENTRYPOINT 与 CMD 组合用法
镜像与构建107 条

ENTRYPOINT 与 CMD 组合用法

镜像参数模型的核心组合:ENTRYPOINT 固定程序、CMD 提供默认可覆盖的参数;理解覆盖规则才能让镜像按预期接收 run 参数。

Docker 容器速查云更新于 2026-10-12

覆盖规则速查

启动命令实际执行
docker run imgENTRYPOINT + CMD(默认参数)
docker run img --port 9090ENTRYPOINT + --port 9090(CMD 被替换)
docker run --entrypoint /bin/sh imgsh + CMD 作为其参数
docker run --entrypoint /bin/sh img -c 'env'sh -c env(CMD 也替换)

示例

示例
ENTRYPOINT ["/app/server"]
CMD ["--port", "8080", "--log", "stdout"]
需要「追加参数」体验就固定 ENTRYPOINT;需要「整体替换命令」体验就用纯 CMD。

易错点

  • run 追加参数只追加给 ENTRYPOINT,不会追加给 CMD;想改参数得整段替换
  • ENTRYPOINT 与 CMD 都在 Dockerfile 里重复出现时只有最后一个生效,易被忽略

数据来源与参考

  • Docker 官方文档:Dockerfile ENTRYPOINT / CMD(docs.docker.com)
​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌