Dockerfile(5) - CMD 指令详解

CMD

指定容器默认执行的命令

python 复制代码
#  exec 形式,推荐
CMD ["executable","param1","param2"]
CMD ["可执行命令", "参数1", "参数2"...]

# 作为ENTRYPOINT的默认参数
CMD ["param1","param2"]

# shell
CMD 命令 param1 param2
 

重点

  • 一个 Dockerfile 只有一个 CMD 指令,若有多个,只有最后一个 CMD 指令生效
  • CMD 主要目的:为容器提供默认执行的命令,这个默认值可以包含可执行文件
  • 也可以不包含可执行文件,意味着必须指定 ENTRYPOINT 指令(第二种写法)

exec 模式下使用环境变量

python 复制代码
# 错误写法,不会使用 HOME 环境变量
CMD [ "echo", "$HOME" ]

# 正确写法,需要将 echo 和使用环境变量放一起
CMD [ "sh", "-c", "echo $HOME" ]

RUN 和 CMD

  • RUN 可以在构建阶段运行很多个命令,而且每运行一个命令都会单独提交结果
  • CMD 在构建阶段不执行任何操作,而是指定镜像默认执行的命令

最后感谢每一个认真阅读我文章的人,礼尚往来总是要有的,这些资料,对于【软件测试】的朋友来说应该是最全面最完整的备战仓库,虽然不是什么很值钱的东西,如果你用得到的话可以直接拿走:

这些资料,对于【软件测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴上万个测试工程师们走过最艰难的路程,希望也能帮助到你!

相关推荐
林开落L9 小时前
【项目实战】在线五子棋对战项目测试报告
功能测试·jmeter·压力测试·postman·性能测试·xmind
张子都10 小时前
【新版系统架构设计师】备考
职场和发展·系统架构·软件工程
米粒111 小时前
力扣算法刷题 Day 42(股票问题总结)
算法·leetcode·职场和发展
_深海凉_13 小时前
LeetCode热题100-最大数(179)
算法·leetcode·职场和发展
程序员老邢13 小时前
【技术底稿 15】SpringBoot 异步文件上传实战:多线程池隔离 + 失败重试 + 实时状态推送
java·经验分享·spring boot·后端·程序人生·spring
programhelp_14 小时前
Snowflake OA 2026 面经|3道高频真题拆解 + 速通攻略
经验分享·算法·面试·职场和发展
马士兵教育15 小时前
AI工作岗位的就业分层?
开发语言·人工智能·学习·面试·职场和发展
zjeweler16 小时前
“网安+护网”终极300多问题面试笔记-1共3-内网&域相关
笔记·web安全·网络安全·面试·职场和发展·护网面试
吃着火锅x唱着歌16 小时前
LeetCode 678.有效的括号字符串
算法·leetcode·职场和发展