1個852MBのイメージを200個置くと、単純計算で170400MBです。
土台まで共有すれば86820MB、依存まで同じなら3240MBになります。1.9%です。
個数に比例して増えるのは、イメージごとに違う層だけです。揃えた範囲は1つで済みます。
コンテナレジストリの保存量は、どこまで層を揃えられるかで決まります。実際に計算しました。
1つのイメージの内訳を、土台420MB・実行環境180MB・依存240MB・自分のコード12MBと置きました。合わせて852MBです。
イメージ数 共有しない 土台だけ共有 依存まで共有 依存まで共有した割合 1個 852MB 852MB 852MB 100.0% 5個 4260MB 2580MB 900MB 21.1% 20個 17040MB 9060MB 1080MB 6.3% 50個 42600MB 22020MB 1440MB 3.4% 200個 170400MB 86820MB 3240MB 1.9%
共有しない場合、200個で170400MBです。1個852MBの単純な掛け算になります。
土台だけ共有すると86820MBで、およそ半分です。土台420MBは1つで済むためです。
依存まで同じなら3240MBです。共有しない場合の1.9%まで落ちます。
この場合、個数に比例して増えるのは自分のコードの12MBだけです。200個でも2400MBにしかなりません。
出典もレジストリの役割をイメージレジストリは、コンテナイメージを保存し共有するための集約された場所であるとしています。共有できる範囲が効きます。
個数に比例するのは、イメージごとに違う層だけ。
An image registry is a centralized location for storing and sharing your container images.原文Docker Docs「What is a registry?」 この内容の有効期限2027-02-18
レジストリは置き場所全体、保管庫はその中のまとまりです。層はレジストリの単位で共有されます。
コンテナレジストリの話では、2つの言葉が混ざりがちです。出典が区別を書いています。
その説明はレジストリはコンテナイメージを保存し管理する集約された場所であり、いっぽう保管庫はレジストリの中にある関連したコンテナイメージのまとまりであるというものです。
前の節の共有は、レジストリの単位で起きます。保管庫が違っても、層の内容が同じなら1つで済みます。
つまり、アプリごとに保管庫を分けても保存量は増えません。増えるのは、層の内容が違うときだけです。
3番目は気づきにくい形です。層の中に作成時刻が書き込まれると、内容が同じでも別の層になります。
並べ方そのものの効き方はDockerの記事で測っています。同じ理屈が、保存量にも効いています。
A registry is a centralized location that stores and manages container images, whereas a repository is a collection of related container images within a registry.原文Docker Docs「What is a registry?」 この内容の有効期限2027-02-18
総量だけでは、増えている原因が分かりません。共有できている層と、そうでない層を分けます。
コンテナレジストリの運用で見るべきなのは、共有できていない層の量です。総量ではありません。
総量が増えていても、イメージの数が増えただけなら問題ありません。1個あたりの増え方が変わったときに手を打ちます。
1番目がこの計測の主題です。依存まで揃っていれば12MB、揃っていなければ432MBになります。
3番目と4番目は放っておくと積み上がります。古い版を残す期間を決めて、それ以外は消します。
出典も保管庫の中身を各保管庫は1つ以上のコンテナイメージを含むと書いています。1つの保管庫に版が積み上がる形です。
消す判断のために、いま動いている版がどれかを分かるようにしておきます。使われている版を消すと復旧できません。
総量ではなく、1個あたりの増分を見る。
層の大きさは置いた値です。実際の内訳は言語や土台で大きく違い、圧縮の効き方も層によって変わります。共有の判定も、内容が完全に一致するかどうかという単純な形にしています。ここで見せているのは、個数に比例するのが「揃っていない層」だけだという構造です。
Each repository contains one or more container images.原文Docker Docs「What is a registry?」 この内容の有効期限2027-02-18
同じ課題を持つ会社にとって、動いている設定は「作る時間」を買えるということです。ServiceDockは自作のワークフローやテンプレートを出品できるマーケットプレイスです。手数料や出品の流れは出品者向けページにまとまっています。
出品の仕組みを見る