docker builds之间的层不能共享

问题描述 投票:0回答:1

我想通过以下方式在两台不同的计算机上重用docker映像中的层:

  • 构建图像(1)
  • 将图像推送到注册表(1)
  • 从注册表中提取图像(2)
  • 构建相同的Docker映像并从提取的映像(2)中重复使用图层

因此,

机器1

我建立了以下图像:

FROM node:13-slim

COPY package.json package.json
  • 使用以下命令生成此图像:docker build . -t <registry>/test-docker-image:latest
  • 将图像推送到注册表:docker push <registry>/test-docker-image:latest

机器2

  • 从注册表中拉出图像:docker pull <registry>/test-docker-image:latest

如果我在此计算机上运行docker build .,则不会从提取的图像中重用图层。

是否有方法可以重用docker build中提取的图像中的图层?

类似问题

GitHub上有以下线程描述了类似的内容,但这描述了docker builddocker-compose build之间共享层之间的问题。 https://github.com/docker/compose/issues/883

docker docker-layer
1个回答
0
投票

要信任不是本地构建的提取图像的层,您需要-cache-from,例如:

docker build --cache-from=<registry>/test-docker-image:latest -t newimg:latest .

默认情况下,Docker不会信任拉出的图像,以避免恶意图像声称为您可能生成的图像提供了层,而实际上却在该层中包含了恶意内容。

© www.soinside.com 2019 - 2024. All rights reserved.