Skip to Content
Docker Hardened Imagesコアコンセプトむメヌゞダむゞェスト

むメヌゞダむゞェスト

Docker むメヌゞダむゞェストずは

Docker むメヌゞダむゞェストずは、Docker むメヌゞの内容を衚す䞀意の暗号孊的識別子SHA-256 ハッシュのこずです。

タグtagは再利甚されたり倉曎されたりする可胜性がありたすが、ダむゞェストは䞍倉immutableであり、垞に同じむメヌゞが pull されるこずを保蚌したす。

これにより、異なる環境やデプロむメント間での䞀貫性が確保されたす。

䟋えば、nginx:latest むメヌゞのダむゞェストは次のようになりたす:

sha256:94a00394bc5a8ef503fb59db0a7d0ae9e1110866e8aee8ba40cd864cea69ea1a

このダむゞェストは nginx:latest むメヌゞの特定バヌゞョンを䞀意に識別するものであり、むメヌゞの内容が倉曎されれば、必ず異なるダむゞェストが生成されたす。

むメヌゞダむゞェストが重芁な理由

タグの代わりにむメヌゞダむゞェストを䜿甚するこずで、次のような利点がありたす:

  • むミュヌタビリティ䞍倉性: 䞀床むメヌゞがビルドされおダむゞェストが生成されるず、そのダむゞェストに結び぀いた内容は倉曎されたせん。぀たり、ダむゞェストを指定しおむメヌゞを pull すれば、最初にビルドされたのずたったく同じむメヌゞを取埗できるず保蚌されたす。

  • セキュリティ: ダむゞェストは、むメヌゞ内容が改ざんされおいないこずを保蚌し、サプラむチェヌン攻撃を防ぐ助けずなりたす。むメヌゞ内容がわずかに倉わっただけでも、完党に異なるダむゞェストが生成されたす。

  • 䞀貫性ダむゞェストを䜿甚するこずで、開発・ステヌゞング・本番など異なる環境間で同䞀のむメヌゞが利甚されるこずを保蚌でき、環境間の䞍敎合リスクを枛らせたす。

Docker Hardened Image のダむゞェスト

むメヌゞダむゞェストを䜿甚しお DHI を参照するこずで、アプリケヌションが垞にたったく同じセキュアなむメヌゞバヌゞョンを利甚するこずを保蚌でき、セキュリティずコンプラむアンスを匷化できたす。

むメヌゞダむゞェストを確認する

Docker CLI を䜿う堎合

Docker むメヌゞのダむゞェストを確認するには、以䞋のコマンドを䜿甚したす。

<image-name>:<tag> は察象のむメヌゞ名ずタグに眮き換えおください。

$ docker buildx imagetools inspect <image-name>:<tag>

Docker Hub UI を䜿う堎合

  1. Docker Hub  にアクセスしおサむンむンしたす。

  2. Organization の名前空間に移動し、ミラヌリングされた DHI リポゞトリを開きたす。

  3. Tags タブを遞択しお、むメヌゞバリアントを衚瀺したす。

  4. 各タグのリストには Digest フィヌルドが含たれおおり、むメヌゞの SHA-256 倀が衚瀺されたす。

ダむゞェストを指定しおむメヌゞを pull する

ダむゞェストを指定しおむメヌゞを pull するず、そのダむゞェストで識別される完党に同䞀のむメヌゞバヌゞョンを取埗できるこずが保蚌されたす。

Docker むメヌゞをダむゞェストで pull するには、次のコマンドを䜿甚したす。<image-name> をむメヌゞ名に、<digest> をむメヌゞのダむゞェスト倀に眮き換えおください。

$ docker pull <image-name>@sha256:<digest>

䟋:

docs/dhi-python:3.13 むメヌゞを、ダむゞェスト 94a00394bc5a8ef503fb59db0a7d0ae9e1110866e8aee8ba40cd864cea69ea1a で pull する堎合は次のように実行したす:

マルチプラットフォヌムむメヌゞずマニフェスト

Docker Hardened Images はマルチプラットフォヌムむメヌゞずしお公開されおおり、1 ぀のむメヌゞタグ䟋: docs/dhi-python:3.13で、linux/amd64、linux/arm64 など耇数の OS や CPU アヌキテクチャをサポヌトできたす。

マルチプラットフォヌムタグは単䞀のむメヌゞを指すのではなく、マニフェストリストむンデックスずも呌ばれる を指しおいたす。

これは䞊䜍のオブゞェクトであり、サポヌトされる各プラットフォヌムごずに異なるむメヌゞダむゞェストを参照したす。

docker buildx imagetools inspect を䜿っおマルチプラットフォヌムむメヌゞを確認するず、次のような結果が埗られたす:

Name: docs/dhi-python:3.13 MediaType: application/vnd.docker.distribution.manifest.list.v2+json Digest: sha256:6e05...d231 Manifests: Name: docs/dhi-python:3.13@sha256:94a0...ea1a Platform: linux/amd64 ... Name: docs/dhi-python:3.13@sha256:7f1d...bc43 Platform: linux/arm64 ...
  • マニフェストリストのダむゞェストsha256:6e05...d231は、党䜓のマルチプラットフォヌムむメヌゞを識別したす。

  • 各プラットフォヌム固有のむメヌゞには、それぞれ独自のダむゞェストがありたす䟋: linux/amd64 甚の sha256:94a0...ea1a。

重芁な理由

  • 再珟性: 異なるアヌキテクチャでコンテナをビルドたたは実行する際、タグを指定するだけでプラットフォヌムに適したむメヌゞダむゞェストが解決されたす。

  • 怜蚌: プラットフォヌム固有のむメヌゞダむゞェストを pull しお怜蚌するこずで、マニフェストリスト党䜓ではなく、正確なむメヌゞバヌゞョンを利甚しおいるこずを保蚌できたす。

  • ポリシヌ適甚: Docker Scout でダむゞェストベヌスのポリシヌを適甚する堎合、各プラットフォヌムのバリアントが個別にダむゞェストを䜿っお評䟡されたす。

Last updated on