Dockerfile(5) - CMD 指令详解

简介: Dockerfile(5) - CMD 指令详解

CMD


指定容器默认执行的命令

#  exec 形式,推荐
CMD ["executable","param1","param2"]
CMD ["可执行命令", "参数1", "参数2"...]
# 作为ENTRYPOINT的默认参数
CMD ["param1","param2"]
# shell
CMD 命令 param1 param2


重点


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

 

exec 模式下使用环境变量


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

 

RUN 和 CMD


  • RUN 可以在构建阶段运行很多个命令,而且每运行一个命令都会单独提交结果
  • CMD 在构建阶段执行任何操作,而是指定镜像默认执行的命令
相关文章
|
NoSQL 关系型数据库 MySQL
Dockerfile(9) - ENTRYPOINT 指令详解
Dockerfile(9) - ENTRYPOINT 指令详解
838 0
|
缓存 Linux Go
Dockerfile(11) - COPY 指令详解
Dockerfile(11) - COPY 指令详解
2878 0
|
数据安全/隐私保护 Docker 容器
Dockerfile(15) - ARG 指令详解
Dockerfile(15) - ARG 指令详解
1467 0
|
3月前
|
JSON Java Shell
Dockerfile中RUN、CMD、ENTRYPOINT、SHELL命令的区别
理解这些指令的差异和应用场景,有助于构建高效、灵活且易于管理的Docker镜像。在实际应用中,根据需要选择合适的指令,可以有效地控制镜像构建和容器运行的行为。
259 0
|
8月前
|
关系型数据库 Java Android开发
CMD常用的指令
CMD是Windows操作系统的命令行操作工具,用户可以通过输入命令来完成系统或程序的操作。以下是一些常用的CMD指令
|
8月前
|
JSON 物联网 Shell
Dockerfile指令详解
Dockerfile指令详解
138 0
Dockerfile(3) - WORKDIR 指令详解
Dockerfile(3) - WORKDIR 指令详解
1073 0
|
Docker 容器
48-Dockerfile-CMD/ENTRYPOINT指令
48-Dockerfile-CMD/ENTRYPOINT指令
|
Docker 容器
Dockerfile文件中CMD指令与ENTRYPOINT指令的区别
本文是博主学习docker 制作镜像指令的记录,希望对大家有所帮助
201 0
Dockerfile文件中CMD指令与ENTRYPOINT指令的区别
|
缓存 Linux Go
Dockerfile(10) - ADD 指令详解
Dockerfile(10) - ADD 指令详解
2448 0