docker buildx history rm コマンドでビルドレコードを削除する方法

DockerDockerBeginner
今すぐ練習

💡 このチュートリアルは英語版からAIによって翻訳されています。原文を確認するには、 ここをクリックしてください

はじめに

この実験では、docker buildx history rm コマンドを使用してビルドレコードを管理する方法を学びます。ビルドレコードは、ビルドプロセスとその結果を追跡するために非常に有用です。

まず、docker buildx build を使用してビルドレコードを作成し、そのメタデータを保存します。次に、docker buildx ls を使用して既存のビルドレコードを一覧表示し、その詳細を確認する方法を学びます。最後に、docker buildx history rm コマンドを使用して特定のビルドレコードを削除したり、すべてのビルドレコードをクリアしたりする練習を行います。


Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL docker(("Docker")) -.-> docker/ContainerOperationsGroup(["Container Operations"]) docker(("Docker")) -.-> docker/SystemManagementGroup(["System Management"]) docker(("Docker")) -.-> docker/DockerfileGroup(["Dockerfile"]) docker/ContainerOperationsGroup -.-> docker/ls("List Containers") docker/SystemManagementGroup -.-> docker/prune("Remove Unused Docker Objects") docker/DockerfileGroup -.-> docker/build("Build Image from Dockerfile") subgraph Lab Skills docker/ls -.-> lab-555055{{"docker buildx history rm コマンドでビルドレコードを削除する方法"}} docker/prune -.-> lab-555055{{"docker buildx history rm コマンドでビルドレコードを削除する方法"}} docker/build -.-> lab-555055{{"docker buildx history rm コマンドでビルドレコードを削除する方法"}} end

ビルドレコードの作成

このステップでは、docker buildx build コマンドを使用してビルドレコードを作成する方法を学びます。ビルドレコードは、ビルドコンテキスト、ビルド引数、生成されたイメージ ID など、ビルド結果を追跡するのに役立ちます。

まず、ビルドに使用するシンプルな Dockerfile を作成しましょう。プロジェクトディレクトリに移動し、以下の内容でDockerfileという名前のファイルを作成します:

FROM alpine
CMD ["echo", "Hello, Docker!"]

この Dockerfile は非常にシンプルです。alpineベースイメージを使用し、"Hello, Docker!"と表示するコマンドを定義しています。

次に、この Dockerfile からイメージをビルドし、ビルドレコードを作成します。docker buildx buildコマンドに--metadata-fileフラグを指定して、ビルドレコードをファイルに保存します。

docker buildx build . --metadata-file build-record.json -t my-hello-image

このコマンドの説明:

  • docker buildx build . は、カレントディレクトリの Dockerfile からイメージをビルドするよう Docker に指示します
  • --metadata-file build-record.json は、ビルドレコードをbuild-record.jsonというファイルに保存するよう指定します
  • -t my-hello-image は、生成されたイメージにmy-hello-imageというタグを付けます

コマンドを実行後、ビルドプロセスを示す出力が表示されます。カレントディレクトリにbuild-record.jsonというファイルが作成されます。このファイルには JSON 形式のビルドレコードが含まれています。

build-record.jsonファイルの内容は、catコマンドで確認できます:

cat build-record.json

これにより、ビルドに関する情報を含むビルドレコードの JSON 内容が表示されます。

ビルドレコードの一覧表示

このステップでは、docker buildx ls コマンドを使用して既存のビルドレコードを一覧表示する方法を学びます。このコマンドにより、作成済みのすべてのビルドレコードを確認できます。

ビルドレコードを一覧表示するには、以下のコマンドを実行します:

docker buildx ls

このコマンドを実行すると、利用可能なビルドレコードに関する情報がテーブル形式で表示されます。出力には通常、ビルダー名、使用されたドライバー、およびステータスが含まれます。

docker buildx build を実行した際に使用されるデフォルトビルダーのエントリが表示されるはずです。前のステップで作成したビルドレコードは、このビルダーに関連付けられています。

docker buildx ls コマンドは、ビルド環境と関連するビルドレコードの概要を把握するのに役立ちます。

特定のビルドレコードを削除する

このステップでは、docker buildx prune コマンドを使用して特定のビルドレコードを削除する方法を学びます。これは不要になった個々のビルドレコードをクリーンアップするのに役立ちます。

特定のビルドレコードを削除するには、まずその ID を特定する必要があります。ビルドレコード ID は最初のステップで作成したbuild-record.jsonファイルに記載されています。catコマンドでファイルを開きます:

cat build-record.json

JSON 出力内の"BuildRecord"セクションを探してください。このセクション内に"ID"フィールドがあります。この ID の値をコピーします。これは長い文字列になります。

次に、docker buildx pruneコマンドに--keep-storageフラグとビルドレコード ID を指定して、特定のレコードを削除します。<BUILD_RECORD_ID>はコピーした実際の ID に置き換えてください。

docker buildx prune --keep-storage <BUILD_RECORD_ID>

ここで使用している--keep-storageフラグは、ビルドキャッシュではなくビルドレコードを削除することを示すために使用されます。

コマンド実行後、ビルドレコードが削除されたことを確認する出力が表示されます。

ビルドレコードが削除されたことを確認するには、再度ビルドレコードを一覧表示してみてください:

docker buildx ls

削除した特定のビルドレコードは、リストに表示されなくなっているはずです。

すべてのビルドレコードを削除する

このステップでは、docker buildx pruneコマンドに--allフラグを指定してすべてのビルドレコードを削除する方法を学びます。これはすべてのビルドレコードを一括でクリーンアップする便利な方法です。

すべてのビルドレコードを削除するには、次のコマンドを実行します:

docker buildx prune --all --keep-storage --force

このコマンドの各オプションについて:

  • docker buildx pruneはビルド関連データを削除するコマンドです
  • --allはすべてのビルドレコードを削除することを指定します
  • --keep-storageはビルドキャッシュではなくビルドレコードを削除することを示します
  • --forceは確認プロンプトをスキップし、スクリプトや対話ができない環境で有用です

コマンド実行後、ビルドレコードが削除されたことを示す出力が表示されます。

すべてのビルドレコードが削除されたことを確認するには、再度ビルドレコードを一覧表示します:

docker buildx ls

デフォルトのビルダーエントリのみが表示され、特定のビルドレコードはリストされなくなっているはずです。

これで Docker ビルドレコードの管理に関する実験は完了です。ビルドレコードの作成、一覧表示、削除方法を学びました。

まとめ

この実験では、docker buildxを使用して Docker ビルドレコードを管理する方法を学びました。まずシンプルな Dockerfile を作成し、docker buildx buildコマンドに--metadata-fileフラグを指定してイメージをビルドし、ビルドレコードを JSON ファイルに保存しました。次に、docker buildx lsコマンドを使用して既存のビルドレコードを一覧表示し、ビルド情報を確認する方法を学びました。

また、特定のビルドレコードを削除するdocker buildx history rm <record_id>コマンドと、すべてのビルドレコードを一括削除するdocker buildx history rm --allコマンドについても学習しました。これらの手順は、Docker Buildx におけるビルドレコードのライフサイクル管理を示しています。