docker searchコマンドの使い方(実例で解説)

docker searchコマンド解説

 本記事はDocker ver24.0.7の環境で確認しています。

 このコマンドは、Docker公式レジストリであるDocker Hub内のdockerイメージを検索することができます。

 レジストリとは、Dockerイメージを共有するための保管場所を指します。

 Docker Hubの中には数多くのDockerイメージがアップされてますが、その中から自分の目的に合ったイメージを探す際にdocker searchコマンドを利用します。

docker searchコマンドのフォーマットとオプション

フォーマット

docker search [オプション] [ キーワード ]

主なオプション一覧

オプション概説
--filter=[ ] フィルターを使用して結果を出力する
--limit=n結果出力の最大数を指定する
(デフォルトは25、最大値は100)
--no-trunc出力内容を省略しない

※Docker公式の非推奨オプションは省略しています

コマンド例

$ docker search backup
$ docker search --no-trunc httpd

docker searchコマンドの主な使い方

 以下で実例をまじえたコマンドの使い方を解説していきたいと思います。

基本事項の解説

 docker searchは、Docker Hubにアップロードされている数多くのDockerイメージを、キーワードやお気に入りの数など、色々な条件を指定して検索することが可能です。

 Docker初心者の方は、apacheやmysqlなどソフトウエア名を使用してdocker pullコマンドでDockerイメージを入手される方が多いと思います。

 でもDockerに慣れてきますと、Docker Hubの中から目的に合ったDockerイメージを探したくなってきます。

 Docker HubのWebサービスを利用されるのも良いですが、お手軽なdocker searchコマンドも使えると便利です。

キーワードを指定してDocker Hub内のDockerイメージを検索する

 Docker Hub内に存在するDockerイメージから、指定したキーワードを含むものを一覧で出力します。

 キーワードとして「backup」を指定して実行してみました。

$ docker search backup

 以下のようなDockerイメージの一覧が表示されました。

NAME                          DESCRIPTION                             
         STARS OFFICIAL AUTOMATED
adferrand/backuppc            Docker container with BackupPC version 4.x/3…  32             [OK]
istepanov/backup-to-s3        Container that backups files to Amazon S3 us…     28             [OK]
dsteinkopf/backup-all-mysql   backup all DBs in a mysql server
         8              [OK]
dinkel/backup                 File and database backup service to local Bt…     7              [OK]
vladgh/backup                 Backup
         1              [OK]
osixia/backup-manager         backup-manager run periodically.
         1
getupcloud/backup             OpenShift Database Backup Image
         0              [OK]
(以下省略)

 量が多いので全量は掲載しておりません。

 Dockerイメージ名(NAME)の部分、若しくは説明(DESCRIPTION)の部分に、指定したキーワード「backup」が含まれているイメージの一覧が出力されました。

 大小文字は無視されます。

 docker searchコマンドの検索結果の情報量は、この程度の内容です。

 Dockerイメージのサマリー情報を参照する目的としては良いと思いますが、対象のDockerイメージについて詳しく調べるという目的には向かないと思います。

 より詳しい内容の検索は、後述するDocker HubのWebサービスをご利用いただければと思います。

フィルター条件を指定してDockerイメージを検索する

 docker searchコマンドには、3種類のフィルターが用意されてます。

フィルター説明
is-automated=
<true or false>
Docker Hubの自動構築機能で作成されたDocker
イメージであるか否か
is-official=
<true or false>
各ベンダー公式のDockerイメージであるか否か
stars=<数値>指定した数値以上のお気に入りの数を持つ

 「is-automated」オプションは、Docker Hubのautomated build機能(自動構築機能)を利用して構築したイメージであるか否かを示しています。

 「is-official」オプションは、CentOSやUbuntu、Apacheなどの各ベンダが公式イメージとして提供しているイメージであるか否かを示しています。

 「stars=<数値>」オプションは、各Dockerイメージに付けられた星(star)の数を指定して検索します。指定した数以上の星の数のDockerイメージが対象となります。星は、Docker Hubのユーザがお気に入りとして指定したことを示す印です。この数が多いということは人気があるDockerイメージの可能性が高いということを示しています。

 実際にフィルターを指定してdocker searchコマンドを実行してみます。

 星の数が10以上でキーワード「backup」を含むDockerイメージを検索します。

$ docker search --filter stars=10 backup

 結果は以下のとおりです。星の数が10以上のイメージのみ表示されました。

NAME                           DESCRIPTION                                    STARS  OFFICIAL AUTOMATED
kubernetes/pause               restore from backup of kubernetes/pause        15
itzg/mc-backup                 Provides a side-car container to backup itzg… 38

 次は、星の数が3以上のキーワード「http」を含む公式イメージを検索してみます。

$ docker search --filter stars=3 --filter is-official=true http

 結果は以下のとおりです。

NAME      DESCRIPTION                                     STARS     OFFICIAL   AUTOMATED
httpd     The Apache HTTP Server Project                  3623      [OK]
haproxy   HAProxy - The Reliable, High Performance TCP…   1624      [OK]      
couchdb   CouchDB is a database that uses JSON for doc…   430       [OK]      
caddy     Caddy 2 is a powerful, enterprise-ready, ope…   254       [OK]

 2つ目の「haproxy」の行には「http」のキーワードが見当たりませんが、これは説明部分がカットされて表示されているからです。

 後述する「--no-trunc」オプションを付けることによって、説明部分が省略なして表示されます。

Dockerイメージの説明部分を省略しないで結果を表示する

 デフォルトでは、docker searchコマンドの出力のDockerイメージの説明部分(DESCRIPTION)は、最大45文字です。

 それ以上の文字数の場合はカットされます。

 カット無しで全量表示させたい場合は、「--no-trunc」オプションを付けて実行します。

 前項の例を再度使用します。

 星の数が3以上のキーワード「http」を含む公式イメージを検索してみます。

$ docker search --filter stars=3 --filter is-official=true http

 結果が出力されましたが、2つ目のDockerイメージhaproxyの行にはhttpの文字が見当たりません。

NAME      DESCRIPTION                                     STARS     OFFICIAL   AUTOMATED
httpd     The Apache HTTP Server Project                  3623      [OK]
haproxy   HAProxy - The Reliable, High Performance TCP…   1624      [OK]      
couchdb   CouchDB is a database that uses JSON for doc…   430       [OK]      
caddy     Caddy 2 is a powerful, enterprise-ready, ope…   254       [OK]

 次に「--no-trunc」オプションを追加で付けて実行してみます。

$ docker search --no-trunc --filter stars=3 --filter is-official=true http

 結果は以下のとおりです。

NAME      DESCRIPTION                                                                                           STARS     OFFICIAL   AUTOMATED
httpd     The Apache HTTP Server Project                                                                        3623      [OK]
haproxy   HAProxy - The Reliable, High Performance TCP/HTTP Load Balancer                                       1624      [OK]
couchdb   CouchDB is a database that uses JSON for documents, an HTTP API, & JavaScript/declarative indexing.   430       [OK]
caddy     Caddy 2 is a powerful, enterprise-ready, open source web server with automatic HTTPS written in Go.   254       [OK]

 説明(DESCRIPTION)部分が全部出力されて、Dockerイメージ「haproxy」の説明部分にhttpの文字が存在することが確認できました。

検索結果の行数を指定する

 デフォルトでは、docker searchコマンドの最大出力行数は25行です。

 「--limit」で出力する最大行数を指定することが可能です。

 指定可能な数値は1~100までとなってます。

 例えば、最大出力行数を80行にして、キーワード「http」を含むDockerイメージを検索する場合は、以下のように指定します。

$ docker search --limit=80 http

操作性や情報量をお求めの場合はDocker HubのWebサービスが便利

 Docker Hubをコマンド実行で検索する機能としては、docker searchコマンドで十分だと思います。

 もし、操作性や情報量をお求めでしたら、Docker HubのWebサービスを使用した方がよろしいでしょう。

 Docker Hubはこちらからどうぞ。

Docker Hub公式サイト

 ユーザ登録することで、自分で作成したDockerイメージをアップロードすることも可能になりますが、イメージの検索を行うだけであれば、ユーザ登録の必要はありません。

 CentOSやApache、最近ではMicrosoftなど、数多くの公式イメージもありますので、お時間のあるときにのぞいてみてはいかがでしょうか。

おわりに

  以上でdocker searchコマンドの紹介を終わります。

 ご指摘、ご要望などが御座いましたらコメントいただけるとうれしいです。

 他のDockerコマンドの実例付紹介記事は、本サイト内の別記事「Dockerのコマンドの一覧(オリジナルな実例付き)」をご参照ください。

 ご訪問ありがとうございました!

コメント