docker search コマンドを使ってイメージを検索する方法

DockerDockerBeginner
今すぐ練習

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

はじめに

この実験では、docker search コマンドを効果的に使用して Docker Hub 上でコンテナイメージを検索する方法を学びます。まずは、イメージ名で基本的な検索を行います。

基本的な検索をベースに、検索結果の完全な(省略されていない)説明を表示するオプションを探索します。さらに、星の数や公式ステータスなどの基準に基づいて結果をフィルタリングすることで、検索を絞り込む方法を学びます。最後に、表示する結果の数を制限し、カスタマイズした表示のために Go テンプレートを使用して検索出力を整形する方法を学びます。


Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL docker(("Docker")) -.-> docker/ImageOperationsGroup(["Image Operations"]) docker/ImageOperationsGroup -.-> docker/search("Search Images in Repository") subgraph Lab Skills docker/search -.-> lab-555219{{"docker search コマンドを使ってイメージを検索する方法"}} end

Docker Hub でイメージを名前で検索する

このステップでは、docker search コマンドを使用して Docker Hub 上で Docker イメージを検索する方法を学びます。Docker Hub は Docker が提供するクラウドベースのレジストリサービスで、コンテナイメージを検索し共有することができます。

docker search コマンドの基本的な構文は次の通りです。

docker search [OPTIONS] TERM

ここで、TERM はイメージを検索するために使用する検索語です。

まずは、"ubuntu" に関連するイメージを検索してみましょう。LabEx 環境でターミナルを開き、次のコマンドを実行します。

docker search ubuntu

Ubuntu に関連するイメージのリストが表示されるはずです。出力には通常、イメージ名、説明、星の数(いいねの数)、公式ステータス、自動ビルドステータスが含まれます。

出力は次のようになるかもしれません(正確な出力は異なる場合があります)。

NAME                                                   DESCRIPTION                                       STARS     OFFICIAL   AUTOMATED
ubuntu                                                 Ubuntu is a Debian-based Linux operating sys...   15000     [OK]
ubuntu-upstart                                         Upstart is an event-based replacement for th...   50        [OK]
ubuntu/apache2                                         Apache2 web server                                60                   [OK]
ubuntu/nginx                                           Nginx web server                                  50                   [OK]
...

このコマンドは、名前または説明が "ubuntu" と一致するイメージを Docker Hub で検索します。結果は表形式で表示されます。

検索結果の省略されていない説明を表示する

前のステップで Docker イメージを検索した際、説明欄が省略されている場合があり、完全な説明が表示されないことがありました。完全な説明を表示するには、docker search コマンドに --no-trunc オプションを使用します。

再度 "ubuntu" を検索しましょう。今回は、完全な説明を表示するために --no-trunc フラグを使用します。

docker search --no-trunc ubuntu

出力を確認してください。これで、各イメージの完全な説明が省略されずに表示されるはずです。これは、イメージを使用するかどうかを決定する前に、その詳細を完全に読む必要がある場合に便利です。

--no-trunc オプションは、docker search だけでなく、さまざまな Docker コマンドの出力で完全な情報を取得するのに役立ちます。

星の数と公式ステータスで検索結果をフィルタリングする

このステップでは、星の数やイメージが公式かどうかなどの基準に基づいて検索結果をフィルタリングする方法を学びます。これにより、より関連性が高く信頼できるイメージを見つけることができます。

--filter オプションを使用して、検索にフィルターを適用することができます。--filter オプションはキー=値のペアを取ります。

星の数でフィルタリングするには、stars キーの後に必要な最小の星の数を指定します。たとえば、少なくとも 1000 個の星を持つ Ubuntu イメージを見つけるには、次のコマンドを実行します。

docker search --filter stars=1000 ubuntu

出力を確認してください。これで、1000 個以上の星を持つ Ubuntu イメージのみが表示されるはずです。

is-official キーに true の値を指定することで、公式イメージをフィルタリングすることもできます。公式イメージは Docker またはオリジナルのソフトウェアベンダーによって管理されており、一般的により信頼できると考えられています。

公式の Ubuntu イメージを見つけるには、次のコマンドを使用します。

docker search --filter is-official=true ubuntu

出力には、公式の Ubuntu イメージのみが表示されます。

--filter オプションを複数回使用することで、複数のフィルターを組み合わせることができます。たとえば、少なくとも 1000 個の星を持つ公式の Ubuntu イメージを見つけるには、次のようにします。

docker search --filter is-official=true --filter stars=1000 ubuntu

このコマンドは、少なくとも 1000 個の星を獲得した公式の Ubuntu イメージのみを表示するように結果を絞り込みます。

検索結果の数を制限する

このステップでは、docker search コマンドで表示される検索結果の数を制限する方法を学びます。広い範囲の用語を検索し、上位の結果のみを表示したい場合に便利です。

--limit オプションを使用して、表示する最大結果数を指定できます。--limit オプションは整数値を取ります。

たとえば、"ubuntu" を検索し、結果を上位 5 件に制限するには、次のコマンドを実行します。

docker search --limit 5 ubuntu

出力を確認してください。これで、検索クエリの結果が最大 5 件表示されるはずです。

--limit オプションは、--filter--no-trunc などの他のオプションと組み合わせることができます。たとえば、少なくとも 1000 個の星を持つ上位 3 件の公式 Ubuntu イメージを見つけ、その完全な説明を表示するには、次のようにします。

docker search --filter is-official=true --filter stars=1000 --limit 3 --no-trunc ubuntu

このコマンドは、さまざまなオプションを組み合わせて検索を絞り込み、出力を制御する方法を示しています。

Go テンプレートを使用して検索出力をフォーマットする

このステップでは、Go テンプレートを使用して docker search コマンドの出力をフォーマットする方法を学びます。これにより、表示する情報とその表示形式をカスタマイズすることができます。

--format オプションを使用すると、出力をフォーマットするための Go テンプレートを指定できます。Go テンプレートは、出力を制御するために強力かつ柔軟です。

出力をフォーマットして、イメージ名と星の数のみをタブで区切って表示しましょう。テンプレートはこのようになります:{{.Name}}\t{{.Stars}}

次のコマンドを実行して、"ubuntu" を検索し、出力をフォーマットします。

docker search --format "{{.Name}}\t{{.Stars}}" ubuntu

各行にイメージ名の後にタブと星の数が表示されるリストが表示されるはずです。

名前、公式ステータス、説明をそれぞれ新しい行に表示する、少し複雑なテンプレートを試してみましょう。テンプレートは Name: {{.Name}}\nOfficial: {{.IsOfficial}}\nDescription: {{.Description}}\n となります。

docker search --format "Name: {{.Name}}\nOfficial: {{.IsOfficial}}\nDescription: {{.Description}}\n" --limit 3 ubuntu

このコマンドは、上位 3 件の Ubuntu イメージの名前、公式ステータス、説明を表示し、各情報は別々の行に表示されます。また、出力を簡潔にするために --limit 3 オプションも含めています。

Go テンプレートを使用することで、docker search の結果から必要な特定の情報を抽出して表示する強力な方法が提供されます。

まとめ

この実験では、docker search コマンドを使用して Docker Hub 上で Docker イメージを検索する方法を学びました。まず、イメージ名で基本的な検索を行い、名前、説明、星の数、公式ステータス、自動ビルドステータスを含むデフォルトの出力形式を確認しました。

次に、--no-trunc オプションを使用して、検索結果の完全な(省略されていない)説明を表示する方法を調べました。さらに、星の数や公式ステータスに基づいて結果をフィルタリングすることで検索を絞り込む方法、および表示する結果の数を制限する方法を学びました。最後に、Go テンプレートを使用して検索結果の出力形式をカスタマイズする方法を発見しました。