You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

docker-compose.yml的command参数与Dockerfile的CMD参数有何区别?

Dockerfile RUN/CMD 与 docker-compose command 的核心区别
  • RUN 指令属于镜像构建阶段执行的命令:每一条 RUN 语句都会在当前镜像层之上新增一层,执行结果会永久固化到构建完成的镜像中。你示例中安装依赖的操作,只会在执行 docker build 构建镜像的时候运行一次,后续基于该镜像启动容器时不会重复执行。
  • CMD 指令属于容器启动阶段的默认执行命令:是镜像自带的默认启动参数,一个Dockerfile中只有最后一条CMD会生效。如果启动容器时没有主动指定其他启动命令,就会默认执行CMD定义的内容,比如你示例中默认启动容器就会运行python3 main.py。
  • docker-compose中的command参数作用是覆盖镜像默认的CMD指令:你给对应服务配置command后,启动该服务的容器时,会直接执行command定义的内容,完全忽略镜像原本的CMD设置,比如你示例中配置了echo语句后,container_a启动时只会输出对应提示,不会运行原来的python3 main.py。

内容的提问来源于stack exchange,提问作者Alexander Rakhmaev

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.23 20:36:00