是否可以替换泊坞窗图像层次结构中的图像? Docker提供了将图像插入层次结构的功能,但是可以替换层次结构中的图像吗?我的用例是拥有一些带有一些系统库的映像,并在库升级到更新版本后将此映像替换为另一个映像。我想通过替换基本映像来测试软件与新库的兼容性。
答案 0 :(得分:4)
一种解决方案是使用以下方法:
mybase
FROM mybase
mybase
图像(使用这些库)并重建您的软件同样,当我在Ubuntu之上构建一个容器时,它通常以FROM ubuntu:12.04
开头。在几个月内,当14.04 LTS发布时,我计划用FROM ubuntu:14.04
更新我的Dockerfiles。
如果由于某些原因,您想要更新尚未使用Dockerfiles构建的容器,还有另一种方法,但它需要更深入的Docker图像格式知识,和它是不能保证在所有情况下都能正常工作。
另一种方法是在现有图像上使用docker save
。它将输出包含构成图像的所有图层的tarball。这些层将分为两组,我将任意称为“上”和“下”层。 “较低”层包含基本系统映像和要升级的库。 “上层”图层包含您想要保持不变的应用程序。我们的想法是将上层的layer.tar
文件放在一边,然后构建新的基础图像(如果你愿意的话,下层的新版本),然后在新的下层上面应用上层
最困难的部分是:
如果你想探索这条路线,首先要确保你理解basics about layers: - )