Distrolessイメージ - CI/CD用語集の定義
distrolessイメージは、アプリケーションとそのランタイム依存関係のみを含む最小限のベースイメージで、パッケージマネージャー、シェル、汎用のOSユーティリティを含みません。Googleのgcr.io/distrolessイメージが一般的な例です。
使う理由
シェルとパッケージマネージャーを取り除くとイメージが小さくなり、攻撃対象領域が減り、イメージスキャナーが報告するCVEの数も減ります。脆弱性を抱えうるOSパッケージがはるかに少なくなるためです。
トレードオフ
distrolessコンテナにはシェルがないため、デバッグのためにdocker execでシェルに入ることはできません。マルチステージbuildはdistrolessと相性が良く、フルイメージでビルドし、バイナリだけをdistrolessの最終ステージにコピーします。
関連ガイド
Multi-Stage Build - CI/CD Glossary DefinitionA multi-stage build uses several FROM stages in one Dockerfile so heavy build tools stay out of the final ima…
Base Image - CI/CD Glossary DefinitionA base image is the starting layer a Dockerfile builds on, set by the first FROM. Choosing a slim, trusted ba…
Image Scanning - CI/CD Glossary DefinitionImage scanning inspects a container image’s OS packages and libraries for known vulnerabilities and misconfig…