4

我正在使用 docker 官方 rails onbuild pack ( https://registry.hub.docker.com/_/rails/ ) 使用应用程序构建和创建 rails 映像。但是每个应用程序占用大约 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
4

1 回答 1

4

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

如果您想查看每个图像层的大小,您可能想使用此工具。我也在这里容器化了它。

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

于 2014-10-04T01:35:23.800 回答