2017-10-05 77 views
0

几周前,我使用此tutorial而不使用Dockerfile构建了一个图像。不使用Dockerfile减少码头图像大小

基本上,您从图像运行容器,编辑此容器,然后将其保存为新图像,退出,提交并推送。起初我的形象在尺寸上有点可以接受,但现在它的增长方式我不明白。

例如,如果我需要修改我的形象,我会:

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

T他的问题是,改变文件中的一行可以使图像变大〜250MB。我究竟做错了什么?

从那里,我怎么能减少那些从我认为无用的图层的大小? SO上的其他答案始终使用Dockerfile或重新配置它。我的情况没有。

谢谢

回答

1

我不能告诉你为什么你的图像增长得比你想象的要快。您可以使用导出/导入机制,但拼合图层,这可能会降低图像尺寸:

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

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

+0

它做了斩〜1Go这是一个好的开始。我可以“合并”这是最新的吗? (我刚试过)看来我需要区分两者。 – Pobe

+0

当然,你只是把它标记为“from/currentimage:latest”。我不想把它写在答案中,所以你不会意外覆盖现有的图像。 – Peter