docker scout cache prune コマンドを使ってキャッシュを管理する方法

DockerDockerBeginner
今すぐ練習

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

はじめに

この実験では、docker scout コマンドが使用するキャッシュを管理する方法を学びます。docker scout はイメージを分析する際、SBOM(ソフトウェアビルド情報)や脆弱性情報などのデータをキャッシュしてパフォーマンスを向上させます。時間が経つと、このキャッシュは大量のディスク領域を消費することがあります。

docker scout cache prune コマンドとそのオプションを調べます。具体的には、一時データを削除する方法、一時データとキャッシュされた SBOM の両方を削除する方法、および確認なしで削除プロセスを強制実行する方法を学びます。この実験の終わりまでに、docker scout キャッシュを効果的に管理してディスク領域を解放し、必要なときに最新のデータで作業できるようになります。


Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL docker(("Docker")) -.-> docker/ImageOperationsGroup(["Image Operations"]) docker(("Docker")) -.-> docker/SystemManagementGroup(["System Management"]) docker/ImageOperationsGroup -.-> docker/pull("Pull Image from Repository") docker/SystemManagementGroup -.-> docker/prune("Remove Unused Docker Objects") subgraph Lab Skills docker/pull -.-> lab-555199{{"docker scout cache prune コマンドを使ってキャッシュを管理する方法"}} docker/prune -.-> lab-555199{{"docker scout cache prune コマンドを使ってキャッシュを管理する方法"}} end

docker scout cache prune の目的を理解する

このステップでは、docker scout cache prune コマンドの目的を理解します。

docker scout を使用してイメージを分析すると、ソフトウェアビルド情報(SBOM: Software Bill of Materials)や脆弱性情報などのデータがキャッシュされ、その後の分析が高速化されます。時間が経つと、このキャッシュは大きくなり、大量のディスク領域を消費することがあります。docker scout cache prune コマンドは、このキャッシュされたデータを削除するために使用されます。

これは、ウェブブラウザのキャッシュをクリアするのと同じようなものです。ブラウザのキャッシュをクリアすると、領域が解放され、時には問題が解決することがあるように、Docker Scout のキャッシュを削除すると、ディスク領域が解放され、必要に応じて最新のデータで作業できるようになります。

docker scout cache prune コマンドには、削除するデータを制御するためのオプションが用意されています。デフォルトでは、一時データが削除されます。また、キャッシュされた SBOM を削除することも選択できます。

これらのオプションについては、次のステップで詳しく調べます。現時点では、このコマンドが docker scout によってキャッシュされたデータを管理するためのメンテナンスツールであることを理解しておきましょう。

docker scout cache prune を使用して一時データを削除する

このステップでは、docker scout cache prune コマンドを使用して一時データを削除します。

削除する前に、削除するデータがあることを確認するために、いくつかの docker scout のアクティビティをシミュレートしましょう。簡単なイメージを分析します。

まず、作業に使用する小さなイメージを取得します。

docker pull hello-world

イメージが正常に取得されたことを示す出力が表示されるはずです。

次に、このイメージに対して docker scout の分析を実行しましょう。

docker scout cves hello-world

このコマンドは、hello-world イメージに対して一般的な脆弱性(CVE: Common Vulnerabilities and Exposures)の分析を行います。hello-world は非常にシンプルなイメージで、脆弱性がない可能性が高いですが、このコマンドは分析プロセスに関連するいくつかの一時データを生成し、キャッシュします。

分析結果を示す出力が表示されます(おそらく脆弱性が見つからないことを示します)。

次に、一時キャッシュデータを削除しましょう。追加のフラグを指定せずに docker scout cache prune コマンドを実行します。

docker scout cache prune

このコマンドを実行すると、アクションを確認するように促されます。これは、誤ってデータが失われるのを防ぐための安全策です。

WARNING! This will remove all temporary cache data. Are you sure you want to continue? [y/N]

y と入力し、Enter キーを押して確認します。

y

一時キャッシュデータが削除され、解放された領域の量が表示されるはずです。正確な出力は、キャッシュされていた一時データの量によって異なります。

このコマンドは、docker scout の操作中に生成された一時ファイルとデータを対象としており、キャッシュされた SBOM のような永続的なデータを削除することなく、キャッシュをきれいに保つのに役立ちます(次のステップで取り上げます)。

docker scout cache prune --sboms を使用して一時データとキャッシュされた SBOM を削除する

このステップでは、docker scout cache prune --sboms コマンドを使用して、一時データとキャッシュされたソフトウェアビルド情報(SBOM: Software Bill of Materials)の両方を削除します。

前のステップでは、一時データのみを削除しました。キャッシュされた SBOM は、docker scout がイメージを分析して SBOM を作成する際に生成される、より永続的なデータです。キャッシュされた SBOM を保持することで、同じイメージの将来の分析を高速化できますが、ディスク領域も消費します。

SBOM の削除を実演するために、まずイメージを分析して SBOM を生成しましょう。ここでは ubuntu イメージを使用します。

docker pull ubuntu

このコマンドは ubuntu イメージを取得します。

次に、ubuntu イメージの SBOM を生成し、キャッシュしましょう。

docker scout sbom ubuntu

このコマンドは ubuntu イメージの SBOM を生成し、キャッシュします。ターミナルに SBOM の出力が表示されます。

次に、一時データとキャッシュされた SBOM の両方を削除しましょう。docker scout cache prune コマンドに --sboms フラグを使用します。

docker scout cache prune --sboms

再び、アクションを確認するように促されます。今回は、一時データとキャッシュされた SBOM の両方が削除されることを警告が示します。

WARNING! This will remove all temporary cache data and cached SBOMs. Are you sure you want to continue? [y/N]

y と入力し、Enter キーを押して確認します。

y

一時キャッシュデータとキャッシュされた SBOM が削除され、解放された領域の量が表示されるはずです。キャッシュされた SBOM も削除されるため、解放される領域は前のステップよりも多くなるはずです。

--sboms フラグを使用すると、より積極的なキャッシュクリーニングが行われます。これは、より多くのディスク領域を解放する必要がある場合や、キャッシュされた SBOM データに問題があると疑われる場合に便利です。

docker scout cache prune --force を使用して確認なしで強制的に削除する

このステップでは、--force フラグを使用して、確認を求められることなく Docker Scout のキャッシュを強制的に削除する方法を学びます。

デフォルトでは、docker scout cache prune は誤ったデータ削除を防ぐためにユーザーの確認を必要とします。ただし、自動化されたスクリプトやキャッシュを削除することが確定している状況では、--force フラグを使用して確認プロンプトをスキップできます。

まず、再度いくつかのキャッシュデータを生成しましょう。今回は alpine イメージを分析します。

docker pull alpine

このコマンドは alpine イメージを取得します。

次に、このイメージに対して docker scout の分析を実行して、いくつかのキャッシュデータを生成しましょう。

docker scout cves alpine

これにより、alpine イメージの CVE(Common Vulnerabilities and Exposures)が分析され、結果がキャッシュされます。

次に、--force フラグを使用してキャッシュを削除します。また、強制削除の一般的なユースケースとして、--sboms フラグも含めて、一時データとキャッシュされた SBOM(Software Bill of Materials)の両方を削除します。

docker scout cache prune --sboms --force

今回は、アクションを確認するように促されないことに注意してください。コマンドはすぐに実行され、指定されたキャッシュデータが削除されます。

前のステップと同様に、一時キャッシュデータとキャッシュされた SBOM が削除されたことを示す出力が表示されるはずですが、対話型のプロンプトはありません。

--force を使用する場合は注意が必要です。これは安全確認をバイパスするため、非対話型の環境で使用するか、削除操作について完全に確信している場合にのみ使用することをおすすめします。

まとめ

この実験では、docker scout cache prune コマンドの目的を学びました。このコマンドは、docker scout の分析によって生成される SBOM(Software Bill of Materials)や脆弱性情報などのキャッシュデータを管理するために使用されます。このコマンドはディスク領域を解放し、必要なときに最新のデータで作業できるようにします。

次に、hello-world イメージに対する docker scout cves 分析によって生成された一時データを削除するためにこのコマンドを使用する練習を行いました。また、一時データとキャッシュされた SBOM の両方を削除するための --sboms フラグと、削除時の確認プロンプトをバイパスするための --force フラグについても調べました。