4

私は docker official 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 を使用していると仮定します*)。ベース イメージ ( ) の 1 つのコピーがあり、_/rails行った変更は別の (通常ははるかに小さい) レイヤーに保存されます。

各画像レイヤーのサイズを確認したい場合は、このツールで遊んでみてください。こちらにもコンテナ化しました。

*) dockerUbuntu または Debian で使用している場合、デフォルトで AUFS を使用している可能性があります。他のホスト Linux バージョンでは、イメージに異なるファイル システムを使用でき、すべてが基本イメージを適切に共有しているわけではありません。

于 2014-10-04T01:35:23.800 に答える