本記事は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イメージをアップロードすることも可能になりますが、イメージの検索を行うだけであれば、ユーザ登録の必要はありません。
CentOSやApache、最近ではMicrosoftなど、数多くの公式イメージもありますので、お時間のあるときにのぞいてみてはいかがでしょうか。
おわりに
以上でdocker searchコマンドの紹介を終わります。
ご指摘、ご要望などが御座いましたらコメントいただけるとうれしいです。
他のDockerコマンドの実例付紹介記事は、本サイト内の別記事「Dockerのコマンドの一覧(オリジナルな実例付き)」をご参照ください。
ご訪問ありがとうございました!
コメント