我刚开始使用 docker,这个问题可能清楚地表明我还没有真正理解基本概念,但我无法弄清楚。

所以,我想使用这个图像作为我的“基础”图像:https://registry.hub.docker.com/u/phusion/baseimage/

现在,这个基础镜像有许多标签(版本)。最近的一个是 0.9.11。
所以,假设我将根据这个“基本”图像生成一些图像并将它们推向生产。

然后 Phusion 人员将对该镜像推送一些更新,我不仅要升级实际的基本镜像,还要升级我已经在产品上使用的所有镜像(基于“基本”镜像)。

那我该怎么做呢?

==================

补充问题:

我认为的另一种情况应该是完全可能的:
基础镜像有一些通用的库,例如 openssl 。现在发现了一个新错误,我需要升级到更新的 openssl 版本。

这是否可以升级基本镜像上的 openssl,将其提交到我的本地注册表,然后在基于该“基本”镜像的所有镜像上提取该更改?

最佳答案

当您构建 Dockerfile 时,将尽可能使用缓存从上到下读取指令。
第一次遇到更改的命令或新命令时,缓存被破坏。
FROM 指令通常位于 Dockerfile 的顶部,因此如果您更改基础镜像的标签,整个 Dockerfile 将从头开始重新构建。

这就是你“更新”基础镜像的方式,你从它们的 Dockerfile 重建你所有的容器,你不“推送”更改。

关于docker 基础镜像 : how to upgrade,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/24520543/

10-16 23:51