【发布时间】:2021-09-20 19:13:01
【问题描述】:
Dockerfile有如下内容,
FROM node:16.4.2-alpine3.14
WORKDIR /app
COPY package.json .
COPY . /app
并运行以下构建命令,
docker build -t app:0.1 .
花了 28.4 秒,下面是终端日志,
[+] 建筑 28.4 秒 (10/10) 完成 => [internal] 从 Dockerfile 0.1s 加载构建定义 => => 传输 dockerfile: 124B 0.0s => [内部] 加载 .dockerignore 0.1s => => 传输上下文:53B 0.0s => [内部] 为 docker.io/library/node:16.4.2-alpine3.14 17.1s 加载元数据 => [auth] library/node:pull token for registry-1.docker.io 0.0s => [内部] 加载构建上下文 0.1s => => 传输上下文:2.01MB 0.0s => [1/4] FROM docker.io/library/node:16.4.2-alpine3.14@sha256:fabfca5e7dcb339097f998d6ef11c53dd80a3f99ed5cecc005e93d0ff6d4bda9 9.9s => => 解决 docker.io/library/node:16.4.2-alpine3.14@sha256:fabfca5e7dcb339097f998d6ef11c53dd80a3f99ed5cecc005e93d0ff6d4bda9 0.0s => => sha256:fabfca5e7dcb339097f998d6ef11c53dd80a3f99ed5cecc005e93d0ff6d4bda9 1.00kB / 1.00kB 0.0s => => sha256:75dec02064547a8ec570f2953e8d68a1674ad3f37730160f1570cce077be9ed0 1.16kB / 1.16kB 0.0s => => sha256:40cb916373b08a087466d2e72402d0b3a4587fd3e9135169498cf0db4ff42a88 6.53kB / 6.53kB 0.0s => => sha256:5843afab387455b37944e709ee8c78d7520df80f8d01cf7f861aae63beeddb6b 2.81MB / 2.81MB 0.8s => => sha256:c118dce16b0057d713fc98e31606a84e4348fa2c967eaf1bb5fd21ba42825956 35.55MB / 35.55MB 7.1s => => sha256:aef8e8137ac43c8199343c96874993063af6584260f22b15e99f735cce5de653 2.35MB / 2.35MB 2.6s => => 提取 sha256:5843afab387455b37944e709ee8c78d7520df80f8d01cf7f861aae63beeddb6b 0.2s => => sha256:ad336e0e52b8dfc38c23599663deb060b1ac169d548dec8072ead94712f708be 281B / 281B 2.0s => => 提取sha256:c118dce16b0057d713fc98e31606a84e4348fa2c967eaf1bb5fd21ba42825956 2.0s => => 提取 sha256:aef8e8137ac43c8199343c96874993063af6584260f22b15e99f735cce5de653 0.2s => => 提取 sha256:ad336e0e52b8dfc38c23599663deb060b1ac169d548dec8072ead94712f708be 0.0s => [2/4] WORKDIR /app 0.6s => [3/4] 复制 package.json 。 0.1s => [4/4] 复制。 /app 0.1s => 导出到图像 0.2s => => 导出图层 0.2s => => 写入图像 sha256:91d93eddff55cba6bd8b72144b7320e025de93e9865177ff584c75b94d1bafc1 0.0s => => 命名为 docker.io/library/app:0.1当我再次运行相同的构建命令时,需要 14.6 秒。
但是,如果我使用 node:16.4.2-alpine3.14 拉动,
docker pull node:16.4.2-alpine3.14
然后运行 build 命令,那么 build 只需要 0.3 秒
我认为,当我们构建映像时,依赖项也会被下载,这就是为什么所需时间从 28.4 秒减少到 14.6 秒的原因。但为什么甚至 14.6 秒?它应该少于 0.3 秒。
为什么会这样?我错过了什么?
【问题讨论】:
标签: docker dockerfile