シェルでDockerHubリポジトリからイメージとタグを取得する方法
【2021-02-02追記】
もしコマンドをインストール可能な環境である場合は、後日リリースされた hub-tool の利用をおすすめします。
はじめに
DockerHubのようなイメージリポジトリからイメージを検索する際には docker search
コマンドが利用できます。
このコマンドで「イメージ名」は検索できるのですが「タグ」が検索できず、例えば「MySQLイメージの5.6バージョンのタグを知りたいんだけど、どうしよう?」となることがよくあります。
コマンドラインでなんとかしてみます。
検証環境
docker search
コマンドとは
Docker Hubでコンテナイメージをを検索するためのコマンドです。
例えば、 "mysql" 用のコンテナイメージを検索する場合には以下のようなコマンドを実行します。
ラベルを見ると分かる通り、1列目にイメージ名が出力されています。
3番目、5番目のイメージは /
で区切られた名前となっています。/
の左は「ユーザ名」を表し右は「イメージ名」となっています。(これにより同一イメージ名を複数のユーザが利用しても競合しないようになっています。)
ちなみに、1番上のイメージはMySQLイメージ、2番目のイメージはMariaDBイメージであり、所有者はDocker公式の library という特殊なユーザです。
library が所有者の場合にはこれが省略されます。
以下の2つのコマンドは同じイメージを指しています。
イメージ名を指定してタグを取得するコマンド
早速タグ名を出力してみたいと思います。
公式に提供されているWebのAPIをコールすることで取得できます。
jq
コマンドがインストールされている場合は楽です。
jq
コマンドがインストールされていない場合は grep
と sed
でがんばります。
実際にタグを使用して起動できるか確認してみます。
タグは「イメージ名」後方に ":<タグ名>" の形式で文字列を付与することで指定できます。
ひとこと
簡単なスクリプトだけど、Github / Dockerhub で公開しました。
- Github : https://github.com/genzouw/docker-tags
- Dockerhub : https://hub.docker.com/r/genzouw/docker-tags
ディスカッション
コメント一覧
まだ、コメントがありません