gpt4 book ai didi

Docker buildkit 缓存位置/大小和 ID

转载 作者:行者123 更新时间:2023-12-02 18:00:39 28 4
gpt4 key购买 nike

有 Docker 构建工具包:https://github.com/moby/buildkit/blob/master/frontend/dockerfile/docs/experimental.md
它有一个额外的选项 RUN (除其他外):--mount=type=cache .
我从文档中无法弄清楚的是:

  • 该缓存存储在哪里?
  • 如何删除/检查它?
  • buildkit 如何决定缓存去哪里?例如,如果我在两个位置有相同的 Dockerfile,缓存是否相同?缓存的关键是什么?
  • ID 选项仍然不明确。如果我在不同的 dockerfile 中指定相同的 ID,它们会引用相同的缓存吗?
  • 最佳答案

    是的,它在 docker 20.10.5 中有些含糊。可以使用一两个拉取请求来更新文档。

  • 缓存使用与用于图像层相同的存储驱动程序。元数据存储在数据库中 /var/lib/docker/buildkit .通常层本身在 /var/lib/docker/overlay2/<ID>/diff/ .对于 <ID> , 见下文。
  • docker buildx du --verbose列出构建缓存。您也可以从 docker system df -v --format '{{ .BuildCache | json }}' 检查它.缓存类型 exec.cachemountRUN --mount type=cache .您可以使用 ID 找到图层。 ,这与 --mount id 中使用的不同. mount 类型由 buildkit 实现,所以 docker run --mount不认识它。要摆脱它docker buildx prunedocker build --no-cache .
  • 缓存键是来自 id= 的值. id默认值为 target .您需要指定 id当您需要在同一个缓存中使用不同的缓存时 target .
  • 是的。无论 target 如何,它们都是相同的缓存或 Dockerfile。不同的构建器有自己的缓存,例如用于不同架构的缓存是分开的。
  • 关于Docker buildkit 缓存位置/大小和 ID,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62834806/

    28 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com