docker trust inspect コマンドを使ってイメージの信頼情報を調べる方法

DockerDockerBeginner
今すぐ練習

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

はじめに

この実験では、docker trust inspect コマンドを使用して、Docker イメージに関連付けられた信頼情報を調べる方法を学びます。単一の署名付きおよび署名なしのイメージタグ、ならびにリポジトリ内のすべての署名付きタグの信頼データを調べる方法を探索します。

実践的な演習を通じて、デジタル署名を調べることでイメージの整合性と公開者を検証する実践的な経験を積むことができます。docker trust inspect コマンドの出力を解釈する方法を学び、署名付きイメージと署名なしイメージの信頼情報の違いを理解します。最後に、複数のイメージの信頼情報を調べ、人間が読みやすい形式で出力を表示する方法を見ていきます。


Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL docker(("Docker")) -.-> docker/ContainerOperationsGroup(["Container Operations"]) docker(("Docker")) -.-> docker/ImageOperationsGroup(["Image Operations"]) docker/ContainerOperationsGroup -.-> docker/inspect("Inspect Container") docker/ImageOperationsGroup -.-> docker/pull("Pull Image from Repository") subgraph Lab Skills docker/inspect -.-> lab-555251{{"docker trust inspect コマンドを使ってイメージの信頼情報を調べる方法"}} docker/pull -.-> lab-555251{{"docker trust inspect コマンドを使ってイメージの信頼情報を調べる方法"}} end

単一の署名付きイメージタグの信頼情報を調べる

このステップでは、docker trust inspect コマンドを使用して、単一の署名付きイメージタグの信頼情報を調べる方法を学びます。Docker Content Trust を使用すると、レジストリから取得するイメージの整合性と公開者を検証することができます。

まず、署名付きイメージを取得しましょう。Docker Content Trust のテスト用に特別に設計された docker/trusttest イメージを使用します。

docker pull docker/trusttest:latest

イメージが取得されていることを示す出力が表示されるはずです。

ここで、この特定のイメージタグの信頼情報を調べることができます。この目的のために docker trust inspect コマンドを使用します。

docker trust inspect docker/trusttest:latest

このコマンドの出力には、イメージタグに関連付けられた署名の詳細が表示されます。これには、署名者とそのキーが含まれます。イメージに署名が付けられている場合、署名に関する情報が表示されます。署名が付けられていない場合、出力には信頼データが見つからないことが示されます。

署名付きリポジトリ内の署名なしイメージタグの信頼情報を調べる

このステップでは、署名付きイメージを含むリポジトリ内の署名なしイメージタグの信頼情報を調べる方法を学びます。これは、リポジトリに署名付きタグがあっても、個々の署名なしタグには信頼情報がないことを示しています。

引き続き docker/trusttest リポジトリを使用します。前のステップでは、署名付きの latest タグを調べました。今度は、同じリポジトリ内で署名がないことがわかっているタグを調べてみましょう。この目的のために unsigned タグを使用します。

まず、unsigned タグのイメージを取得してみましょう。

docker pull docker/trusttest:unsigned

イメージが取得されていることを示す出力が表示されるはずです。

次に、docker trust inspect コマンドを使用して unsigned タグの信頼情報を調べましょう。

docker trust inspect docker/trusttest:unsigned

このコマンドを実行すると、おそらくこの特定のタグに信頼データが見つからないことを示す出力が表示されます。これは、unsigned タグは署名付きタグを持つリポジトリ内にあるものの、それ自体に有効な署名がないためです。これは、Docker Content Trust がタグごとに動作することを強調しています。

リポジトリ内のすべての署名付きタグの信頼情報を調べる

このステップでは、特定のリポジトリ内のすべての署名付きイメージタグの信頼情報を調べる方法を学びます。これは、リポジトリ内のどのタグが信頼できるかを概観するのに役立ちます。

引き続き docker/trusttest リポジトリを使用します。前のステップでは個々のタグを調べました。今度は、すべての署名付きタグを確認するために、リポジトリ全体を調べます。

リポジトリ内のすべての署名付きタグを調べるには、docker trust inspect コマンドの後に、特定のタグを指定せずにリポジトリ名を入力します。

docker trust inspect docker/trusttest

このコマンドを実行すると、出力には docker/trusttest リポジトリ内の、有効な信頼データが関連付けられたすべてのタグがリストされます。(ステップ 1 で署名付きであることを確認した)latest タグの情報が表示され、そのリポジトリ内に他の署名付きタグが存在する場合は、それらのタグの情報も表示されるはずです。ステップ 2 で調べた unsigned タグのような署名なしタグは、この出力には表示されません。

このコマンドは、Docker Content Trust によって信頼されているとみなされるリポジトリ内のイメージのバージョンをすぐに確認する便利な方法を提供します。

複数のイメージの信頼情報を調べる

このステップでは、1 つの docker trust inspect コマンドで複数のイメージタグの信頼情報を調べる方法を学びます。一度にいくつかの特定のイメージの信頼状態を確認したい場合に便利です。

docker/trusttest リポジトリの署名付きの latest タグと署名なしの unsigned タグの両方の信頼情報を 1 つのコマンドで調べます。

複数のイメージを調べるには、docker trust inspect コマンドの後に、イメージ名(タグを含む)をスペースで区切って列挙するだけです。

docker trust inspect docker/trusttest:latest docker/trusttest:unsigned

このコマンドを実行すると、出力には指定された各イメージタグの信頼情報が表示されます。docker/trusttest:latest の署名の詳細が表示され、docker/trusttest:unsigned には信頼データが見つからないことが示されるはずです。これにより、1 回の操作で複数のイメージの信頼状態を効率的に確認できることが確認されます。

人間が読みやすい形式で信頼情報を調べる

このステップでは、docker trust inspect コマンドに --pretty フラグを使用して、信頼情報を人間がより読みやすい形式で表示する方法を学びます。デフォルトでは、出力は JSON 形式です。これはスクリプトで使用するには便利ですが、人がすぐに確認するには適していません。

署名付きの docker/trusttest:latest イメージの信頼情報を再度調べますが、今回は --pretty フラグを追加します。

docker trust inspect --pretty docker/trusttest:latest

このコマンドを実行すると、出力は読みやすく理解しやすい形式に整形されます。通常、情報は表のような構造で表示され、イメージ、署名者、およびそれらのキーに関する詳細が明確なレイアウトで示されます。

この出力をステップ 1 のデフォルトの JSON 出力と比較すると、--pretty フラグが信頼情報を人が見やすくする方法がわかります。これは、手動でイメージの信頼状態を確認するときに特に役立ちます。

まとめ

この実験では、docker trust inspect コマンドを使用してイメージの信頼情報を調べる方法を学びました。まず、1 つの署名付きイメージタグの信頼データを調べ、関連する署名と署名者の詳細を確認しました。次に、署名付きリポジトリ内の署名なしイメージタグを調べることで、署名付きタグのみが信頼情報を持っていることを明らかにしました。

さらに、リポジトリ内のすべての署名付きタグの信頼情報や、複数のイメージの信頼情報を同時に調べることで理解を深めました。最後に、信頼情報を人間がより読みやすい形式で表示する方法を学び、署名の詳細を解釈しやすくしました。これらのステップを通じて、Docker Content Trust を使用して Docker イメージの整合性と公開者を検証する実践的な経験を得ました。