【ディストロレス】
Distroless とは?
最終更新:
💡 実行に必要なものを残し、コンテナ内の道具を減らす
GoogleContainerToolsが公開する、アプリケーションの実行に必要なものへ絞ったコンテナベースイメージ群。通常のイメージはシェルやパッケージマネージャーを含まず、利用者がアプリを追加して使う。
📌 このページのポイント
普通のコンテナと何が違うの?
通常のLinux系イメージも、ディストリビューション全体を丸ごと含むわけではないよ。Distrolessはさらに実行に必要なものへ絞り、通常版にはシェルやパッケージマネージャーを入れない。アプリ自体は利用者が追加するんだ。
シェルがないと侵入されないの?
中に入って調べたいときは?
どうやってアプリを入れるの?
たとえばマルチステージビルドで、ビルド用のステージから実行用のDistrolessへ成果物をコピーする。コンパイラーなどを最終イメージに残さずに済むよ。シェルがない通常版では、起動命令もシェルに頼らない実行形式にする必要があるね。
どの種類を選べばいい?
まとめ:ざっくりこれだけ覚えればOK!
「Distroless」って出てきたら「アプリの実行に必要なものへ絞ったコンテナベースイメージ」と思えればだいたいOK!
📖 おまけ:英語の意味
「Distroless」 = ディストリビューションを省いた、という名前
💬 distroはLinuxディストリビューションの略、lessは「なし」。ただしDebian由来のファイルなどを使っており、OS由来の要素が全くないという意味ではないよ