我已经创建了一个docker镜像,并开始安装一些测试所需的软件包。
然而,在我完成之后,我意识到我可以删除一些文件夹来减小图像大小。
这就是我所做的,我将这些更改提交到一个新图像。
但是,图像大小保持不变。我在SO中看到有人遇到类似的问题,但似乎有一个答案解释了docker使用层进行存储,因此图像大小只会增加。
所以我的问题是,如果有可能通过删除文件夹和文件来减少图像大小,还是我应该从头开始?
docker image ls
输出供参考:
REPOSITORY TAG IMAGE ID CREATED SIZE
abacate melancia 9c1b3acdf62c 3 seconds ago 34.8GB
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx v2 68f6862f8371 9 minutes ago 34.8GB
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx v1 2090d0a74e9d 5 days ago 34.8GB
是的,你应该从头开始。正如现有的答案所指出的那样,最初的图层确实是在向您的图像添加内容。
如果您保留了您的Dockerfile
,您应该能够重播您对原始映像所做的更改。这是使用Docker的一个关键方法。如果构建过程是可重复的,那么构建过程的结果就不是很有价值。将Dockerfile置于源代码控制之下,Docker镜像就会像Docker容器一样短暂。