如何减少docker图像大小?

时间:2014-10-03 20:49:59

标签: ruby-on-rails docker dockerhub

我使用docker官方rails onbuild pack(https://registry.hub.docker.com/_/rails/)来构建和创建带应用程序的rails image。但每个应用程序大约需要900MB。有什么办法可以减少这个尺寸吗?

这是我的工作流程 - >

add dockerfile to the project -> build -> run

问题是这个系统上可以有N个应用程序,如果每个应用程序占用1G的磁盘空间,那将是一个问题。如果我们减少层数会减少尺寸吗?如果是,怎么办呢?

REPOSITORY           TAG                 IMAGE ID            CREATED              VIRTUAL SIZE
blog2                latest              9d37aaaa3beb        About a minute ago   931.1 MB
my-rails-app         latest              9904zzzzc2af        About an hour ago    931.1 MB

1 个答案:

答案 0 :(得分:4)

由于它们都来自相同的基本图像,因此它们不会占用900MB(假设您使用AUFS作为文件系统*)。将有一个基本图像副本(_/rails),然后您所做的更改将存储在单独的(通常小得多)图层中。

如果您想查看每个图片图层的尺寸,可以使用this tool。我还将它集装箱化here

*)如果你在Ubuntu或Debian上使用docker,你很可能默认为AUFS。其他主机Linux版本可以为图像使用不同的文件系统,并且它们不能很好地共享基本图像。