我正在尝试使用Dockerfiles生成docker映像,顺序如下
1)使用dokerfile创建图像,该文件将复制图像中的abc.txt(大小为200kb)
2)使用另一个docker文件创建另一个图像,该文件将使用先前生成的图像(在步骤(1)中)作为基础图像,并复制文件abc.txt(附加数据,大小为400kb)
当我检查第二个图像的层时,它显示基本图像层,其中第二层由于200kb文件(abc.txt)而具有200kb的大小,而顶层由于400kb文件(abc.txt)而具有400kb的顶层
我期望的是在顶层,只有abc.txt文件的200kb更改应该出现在第二个图像中,但是我不是这种情况。
还有其他方法可以实现吗? 任何建议都会有所帮助。
这些是我的dockerfile内容 :-
来自ubuntu
复制abc.txt /home/root/abc.txt
在此之后,我使用
docker build -t ubuntu2
来自ubuntu2
复制abc.txt /home/root/abc.txt
我修改了abc.txt并用以上内容覆盖了现有的Dockerfile 并使用
构建图像docker build -t ubuntu3
答案 0 :(得分:1)
在您的情况下,您将文件abc.txt
替换为另一个具有相同名称的文件,因此所做的更改是删除和添加文件。我认为只有这样才能有所作为,您必须使用RUN
而不是COPY
这样的命令:
RUN echo "data to add" >> /home/root/abc.txt