Docker Hardened Images クイックスタート

ゼロから Docker Hardened Image(DHI)を実行するまでの手順を、実例を用いて解説します。

このガイドでは、ゼロから Docker Hardened Image(DHI)を実行するまでの手順を、実例を用いて解説します。ここでは特定のイメージを例にしていますが、紹介する手順はどの DHI に対しても同様に適用できます。

ステップ 1: DHI を利用するために無料トライアルを開始する

サブスクリプションがなくても Docker Hardened Images カタログを閲覧できますが、実際にイメージを利用するには、Docker Hardened Images を購入するか、組織向けの無料トライアルを利用する必要があります。本ガイドでは、無料トライアルの開始手順を説明します。

無料トライアルを開始するには:

  1. Docker Hub の Hardened Images カタログにアクセスし、サインインします。

  2. Start trial を選択し、画面の指示に従って進めます。

ステップ 2: 使用するイメージを探す
  1. Docker Hub の Hardened Images カタログにアクセスし、サインインします。

  2. 左側のサイドバーで、DHI にアクセスできる組織を選択します。

  3. 同じく左側のサイドバーから Hardened Images > Catalog を選択します。

  4. 検索バーやフィルターを使って、利用したいイメージ (例:python、node、golang) を探します。本ガイドでは例として Python イメージを使用します。

  5. Python リポジトリを選択して詳細を確認します。

ステップ 3: イメージをミラーリングする

Docker Hardened Image を利用するには、まず組織にミラーリングする必要があります。この操作は組織のオーナーのみ実行可能です。ミラーリングを行うと、組織の名前空間内にイメージのコピーが作成され、チーム メンバーがプルして使用できるようになります。

  1. イメージのリポジトリ ページで Mirror to repository を選択します。

  2. 画面の指示に従ってリポジトリをミラーリングします。

すべてのタグがミラーリングされるまでに数分かかる場合があります。ミラーリングが完了すると、イメージ リポジトリは組織の名前空間に表示されます。たとえば Docker Hub では、My Hub > YOUR_ORG > Repositories に移動すると、dhi-python が一覧に表示されます。これで、他のイメージと同じようにプルして使用できるようになります。

次のステップでは、イメージをプルして実行します。イメージのミラーリングについてさらに詳しく知りたい場合は、Docker Hardened Image リポジトリのミラーリング (英語) を参照してください。

ステップ 4: イメージをプルして実行する

イメージを組織にミラーリングしたら、他の Docker イメージと同じようにプルして実行できます。なお、Docker Hardened Images は最小限かつセキュアに設計されているため、通常のイメージに含まれるすべてのツールやライブラリが含まれていない場合があります。一般的な違いについては DHI を導入する際の注意点 (英語) を参照してください。

以下の例では、Python イメージを実行し、他の Docker イメージと同じように簡単な Python コマンドを実行できることを示しています。

1. イメージのプル

まず、ミラーリングしたイメージをプルします。ターミナルを開き、以下のコマンドを実行してください。<your-namespace> は組織の名前空間に置き換えます。

$  docker pull <your-namespace>/dhi-python:3.13
2. イメージの実行

イメージを実行して、正しく動作することを確認します。

$  docker run --rm <your-namespace>/dhi-python:3.13 python -c "print('Hello from DHI')"

これにより、dhi-python:3.13 イメージからコンテナーが起動し、Hello from DHI と表示する簡単な Python スクリプトが実行されます。

詳細情報
ステップ 5: 他のイメージと比較する

DHIs を他のイメージと比較することで、セキュリティの向上点や違いを素早く確認できます。この比較により、ハードニング済みイメージを使用する価値を理解することができます。

以下のコマンドを実行して、要約比較を確認してください。<your-namespace> は組織の名前空間に置き換えます。

   docker scout compare <your-namespace>/dhi-python:3.13 \
     --to python:3.13 \
     --platform linux/amd64 \
     --ignore-unchanged \
     2>/dev/null | sed -n '/## Overview/,/^  ## /p' | head -n -1

出力例:

 
   ## Overview
 
                       │                  Analyzed Image                       │               Comparison Image
   ────────────────────┼───────────────────────────────────────────────────────│────────────────────────────────────────────────
     Target            │  docker/dhi-python:3.13                               │  python:3.13
       digest          │  c215e9da9f84                                         │  7f48e892134c
       tag             │  3.13                                                 │  3.13
       platform        │ linux/amd64                                           │ linux/amd64
       provenance      │ https://github.com/docker-hardened-images/definitions │ https://github.com/docker-library/python.git
                       │  77a629b3d0db035700206c2a4e7ed904e5902ea8             │  3f2d7e4c339ab883455b81a873519f1d0f2cd80a
       vulnerabilities │    0C     0H     0M     0L                            │    0C     1H     5M   141L     2?
                       │           -1     -5   -141     -2                     │
       size            │ 35 MB (-377 MB)                                       │ 412 MB
       packages        │ 80 (-530)                                             │ 610
                       │                                                       │                        
 
   

この比較から、Docker Hardened Image は以下の点で優れていることがわかります。

  • 脆弱性の除去: 高リスク 1 件、中リスク 5 件、低リスク 141 件、未分類リスク 2 件の CVE を除去
  • サイズの削減: 412 MB から 35 MB へ (91% 減少)
  • パッケージの最小化: 610 パッケージから 80 パッケージへ (87% 減少)

イメージ比較の詳細については Docker Hardened Images の比較 (英語) を参照してください。

次のステップ

最初の Docker Hardened Image をプルして実行できました。次のステップは以下のように進められます。

Migrate
既存アプリケーションを DHI に移行する (英語)

Dockerfile を更新して、Docker Hardened Image をベースとして使用する方法を学ぶ。

ドキュメントを見る
Verify
DHI を検証する (英語)

Docker Scout や Cosign などのツールを使用して、SBOM やプロベナンスなどの署名済み証跡を確認、検証する。

ドキュメントを見る
Scan
DHI をスキャンする (英語)

Docker Scout などのスキャナーを使ってイメージを解析し、既知の CVE を特定する。

ドキュメントを見る