dockerfile常用命令解析

FROM

基础镜像,FROM 命令必须是 Dockerfile 的首个命令

也就是继承哪个镜像

LABEL

为镜像生成元数据标签信息

原有指令 MAINTAINER 已经放弃使用,用 LABEL maintainer="你的邮箱" 替代

USER

指定运行容器时的用户名或 UID,后续 RUN 也会使用指定用户

VOLUME

定义匿名卷,容器运行时应该尽量保持容器存储层不发生写操作,为了防止运行时用户忘记将动态文件保存的目录挂载为卷,可以事先指定某些目录挂载为匿名卷。这样就不会向容器存储层写入大量数据

WORKDIR

用于设置 CMD 指明的命令的运行目录

为后续的 RUN、CMD、ENTRYPOINT、ADD 指令配置工作目录。可以使用多个 WORKDIR 指令,后续命令如果参数是相对路径,则会基于之前命令指定的路径。使用 docker exec -it 进入容器后,默认也会进入到 WORKDIR 指定的目录

容器启动时的⼯作⽬录

ENV

指定容器启动时的环境变量(注意,只有在容器启动时,启动脚本能读取到,如果希望其他用户登录到容器也生效的话,需要写入 .bashrc)

设置镜像内的环境变量

COPY

COPY 命令有两个参数,源和目标。它的基本作用是从源系统的文件系统上复制文件到目标容器的文件系统

EXPOSE

指定端口转发

CMD

设置容器创建是执行的默认命令

支持三种格式,默认会被 docker run 指定的参数覆盖。每个容器只能执行一条 CMD 命令。执行的命令和参数当指定多个时,只有最后一个起效

  • CMD [“executable”, “参数1”,“参数2”]:使用 exec 方式执行,推荐
  • CMD command 参数1 参数2:shell 方式执行
  • CMD [“参数1”,“参数2”]:提供给 ENTRYPOINT 做默认参数

启动容器时执行的shell命令

ENTRYPOINT

指定容器的“入口”

支持两种格式,默认不会被 docker run 指定的参数覆盖。可以指定 --entrypoint 参数去覆盖。每个 Dockerfile 中只能有一个 ENTRYPOINT,当指定多个时,只有最后一个起效

  • ENTRYPOINT [“executable”, “参数1”,“参数2”]:使用 exec 方式执行
  • 推荐 - ENTRYPOINT command 参数1 参数2:shell 方式执行

指定容器启动脚本

HEALTHCHECK

Docker 1.12版本后引入的判断容器运行状态是否正常

 ADD 

将⼯作⽬录下的某个⽬录或者⽂件copy到镜像的某个路径下

ARG

构建环境的环境变量

RUN

RUN 命令是 Dockerfile 执行命令的核心部分。它接受命令作为参数并用于创建镜像。每条 RUN 命令在当前基础镜像上执行,并且会提交一个新镜像
执⾏shell 命令
 
 

延伸

COPY和ADD的区别

 
 
posted @ 2022-05-25 10:05  未来可期_Durant  阅读(362)  评论(0编辑  收藏  举报