在没有Dockerfile的情况下减少docker镜像大小

时间:2017-10-05 14:09:33

标签: bash docker optimization continuous-integration

几个星期前我使用这个tutorial而不使用Dockerfile构建了一个图像。

基本上,您从图像运行容器,编辑此容器,然后将其另存为新图像,退出,提交和推送。起初我的形象在某种程度上是可以接受的,但现在它以我不理解的方式成长。

例如,如果我需要编辑我的图像,我会:

  • docker run --name mycontainer -it from/currentimage bash
  • 编辑文件或配置
  • 出口
  • docker commit from/currentimage
  • docker push from/currentimage

问题是更改文件中的一行会使图像变大~250MB。我做错了什么?

从那里,我怎样才能减少那些,从我的想法,无用的层? SO上的其他答案总是使用Dockerfile或重新配置它。在我的案例中,我没有一个。

由于

1 个答案:

答案 0 :(得分:3)

我无法告诉你为什么你的图像增长速度超出预期。您可以使用导出/导入机制来展平图层,这可能会缩小图像大小:

docker create --name foo from/currentimage
docker export foo | docker import - from/currentimage:flat
docker rm foo

docker inspect from/currentimage:flat现在应该显示单个图层。