(十一)DockerFile体系的保留字指令

本文详细解析Dockerfile中的各项指令,包括CMD与ENTRYPOINT的区别、基础镜像的选择、维护者信息设定、构建时的命令执行、端口暴露、工作目录设定、环境变量配置、文件拷贝、数据卷定义等,帮助读者深入了解Docker容器构建流程。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

 

ps) CMD和ENTRYPOINT之间的区别

当通过run命令通过镜像创建容器时,如果追加了命令,会将CMD的命令进行覆盖,而如果是 ENTRYPOINT的话,会在ENTRYPOINT命令之后追加

  1. FROM  基础镜像,当前新镜像是基于哪个镜像的
  2. MAINTAINER  镜像维护者的姓名和邮箱地址
  3. RUN  容器构建时需要运行的命令
  4. EXPOSE 当前容器对外暴露出的端口
  5. WORKDIR  指定在创建容器后,终端默认登陆的进来工作目录,一个落脚点
  6. ENV  
    1.  用来在构建镜像过程中设置环境变量 
    2. ENV MY_PATH /usr/mytest 这个环境变量可以在后续的任何RUN指令中使用,这就如同在命令前面指定了环境变量前缀一样;也可以在其它指令中直接使用这些环境变量,比如:WORKDIR $MY_PATH     
  7. ADD   将宿主机目录下的文件拷贝进镜像且ADD命令会自动处理URL和解压tar压缩包
  8. COPY  类似ADD,拷贝文件和目录到镜像中。将从构建上下文目录中 <源路径> 的文件/目录复制到新的一层的镜像内的 <目标路径> 位置
    1.  COPY  src dest
    2.  COPY ["src", "dest"]
  9. VOLUME  容器数据卷,用于数据保存和持久化工作
  10. CMD
    1. 指定一个容器启动时要运行的命令
    2. Dockerfile 中可以有多个 CMD 指令,但只有最后一个生效,CMD 会被 docker run 之后的参数替换 
  11. ENTRYPOINT​
    1. 指定一个容器启动时要运行的命令
    2. ENTRYPOINT 的目的和CMD一样,都是在指定的容器启动程序和参数
  12. ONBUILD  当构建一个被继承的Dockerfile时运行命令,父镜像在被子继承后父镜像的onbuild被触发

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值