gpt4 book ai didi

docker - dockerfile apt-get 缓存会导致不相同的 docker 容器吗?

转载 作者:行者123 更新时间:2023-12-02 18:47:54 29 4
gpt4 key购买 nike

我正在阅读 dockerfile 文档。
我看到它提到 dockerfile 会更好地利用缓存来改进构建过程。
因此,文档建议如果您尝试RUN apt-get update,请将命令合并到以下包安装中,例如 RUN apt-get update && apt-get install curl以避免由于缓存而安装过时的包。

我想知道如果我下载相同的 dockerfile 但我在不同的时间在不同的计算机上构建 docker 镜像会怎样。因为每台计算机都有本地缓存​​,即使它们运行相同的 dockerfile,它们仍然有机会构建不同的 docker 容器。

我没遇到过这个问题。只是想知道这是否可能以及如何预防?

谢谢。

最佳答案

Debian APT 存储库是定期更改的外部资源,因此如果您在不同的机器上 docker build(或在同一台机器上重复 docker build --no-cache machine)你可以获得不同的包版本。

一方面,这是很难避免的。 Debian 和 Ubuntu 存储库都会立即删除旧版本的软件包:在同一 RUN 命令中执行 apt-get updateinstall 的原因是昨天的包索引可以引用今天存储库中不再存在的包文件。原则上,您可以通过手动下载所需的每个 .deb 文件并手动 dpkg --install 来解决此问题,跳过网络 APT 层。

另一方面,这通常无关紧要。一旦您使用了 Debian 或 Ubuntu 的发布版本,软件包更新往往仅限于安全更新和错误修复;您不会在一个系统和另一个系统上获得不同的软件包主版本。这不是我见过的问题,除了缓存 apt-get update 层可能会导致您错过您可能想要的安全更新。

关于docker - dockerfile apt-get 缓存会导致不相同的 docker 容器吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56880225/

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