我刚开始使用 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/