看看dockerfile做了什么

Dockerfile 是一个用来构建 Docker 镜像的文本文件,它包含了一系列的指令和命令。当你运行 docker build 命令并指定 Dockerfile 时,Docker 会按照以下步骤执行 Dockerfile 中的指令:

  1. 基础镜像选择:Dockerfile 的第一条指令通常是一个 FROM 指令,它会指定一个基础镜像。这个基础镜像可以是官方镜像,也可以是你或者其他人创建的自定义镜像。

  2. 运行指令:Dockerfile 中的每一条指令都会在新的层上创建一个容器。指令包括:

    • RUN:执行命令并提交结果。
    • CMD:容器启动时默认运行的命令。
    • ENTRYPOINT:配置容器启动时运行的命令。
    • COPYADD:将文件和目录从宿主机复制到容器中。
    • ENV:设置环境变量。
    • EXPOSE:指定容器运行时暴露的端口。
    • WORKDIR:为后续的 RUN, CMD, ENTRYPOINT, COPYADD 指令设置工作目录。
    • VOLUME:创建数据卷挂载点。
    • USER:设置运行命令的用户。
    • ONBUILD:配置当该镜像作为其他镜像的基础镜像时,所执行的指令。
  3. 执行指令:当你执行 docker build 命令时,Docker 会读取 Dockerfile 文件中的指令,并按顺序执行它们。每一条指令的执行都会在基础镜像的基础上创建一个新的层。

  4. 构建上下文docker build 命令可以指定一个构建上下文路径,这个路径下的所有文件都可以被用来构建镜像。例如,COPY 指令可以从构建上下文路径中复制文件到镜像中。

  5. 层缓存:Docker 会尽可能地重用已经存在的镜像层。如果在构建过程中没有改变某个层的内容,Docker 会使用缓存中的层,这样可以加快构建速度。

  6. 创建最终镜像:当 Dockerfile 中的所有指令都执行完毕后,Docker 会将所有层合并,并创建一个新的镜像。

  7. 存储镜像:构建完成后,新创建的镜像会被存储在你的 Docker 主机上的本地镜像库中。

通过这个过程,Dockerfile 允许用户创建可重复、可移植的容器镜像,这是 Docker 容器技术的一个重要特点。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值