“hub-tool”を使って”Docker Hub”上のイメージタグを一覧表示する

2023-05-08Bash,Docker

はじめに

シェルでDockerHubリポジトリからイメージとタグを取得する方法 | ゲンゾウ用ポストイット で、
Docker Hub 上のイメージで利用できるタグを一覧表示するための方法を紹介しましたが、

hub-tool という便利なツールを導入することでタグの一覧表示が容易に実現できるようになりましたので紹介します。

検証環境

$ uname -moi
x86_64 MacBookPro16,1 Darwin

$ bash -version | head -n 1
GNU bash, version 5.0.18(1)-release (x86_64-apple-darwin19.5.0)

$ docker --version
Docker version 20.10.2, build 2291f61

hub-tool コマンド : Docker Hub Tool

Docker Hub Tool とは、 コマンドラインから "Docker Hub" で自分が作成したリポジトリを操作するためのコマンドラインツールになります。

「自分が作成したリポジトリ」のみですが、例外として他のエンジニアが提供しているDockerイメージのタグを一覧表示するための機能が提供されています。

インストール

go get コマンドを使ってインストール

Go言語の実行環境が用意されている場合は go get コマンドが利用できます。

$ GO111MODULE=on go get github.com/docker/hub-tool

Go言語の実行環境が用意されていない場合には後述の方法をお試しください。

tar パッケージを使ってインストール

パッケージが提供されていたためそちらをダウンロードすればすぐに利用できます。

# 作業ディレクトリへ移動(どこでもよい)
$ cd /tmp

# ダウンロード
$ curl -L -O https://github.com/docker/hub-tool/releases/download/v0.3.0/hub-tool-darwin-amd64.tar.gz

# 展開
$ tar xf hub-tool-darwin-amd64.tar.gz

# パスの通っているディレクトリへ移動
$ mv hub-tool/hub-tool /usr/local/bin

正しくインストールされているか確認してみます。

$ hub-tool --version
Docker Hub Tool v0.3.0, build 4b740d3

初期設定

初期設定として、 Docker Hub にアクセスするための認証設定を行う必要があります。

当然、すでにサイトからアカウントが作成済みである必要があります。

# 引数として、自分の **Docker Hub** アカウント名を指定。
# パスワードを聞かれるので入力する。
$ hub-tool login genzouw
Password:
Login Succeeded

Login Succeeded の文字が表示されれば初期設定完了です。

公式の "MySQL" イメージのタグを一覧表示してみる

それでは早速、公式の MySQL Dockerイメージのタグを一覧表示してみます。

hub-tool tag ls コマンドを利用します。引数にはタグを一覧表示する対象のイメージ名を指定しましょう。

( --all オプションを付けないと、比較的新しくプッシュされたタグしか表示されません。過去にプッシュされたタグも含めすべて確認したい場合には必要です。)

$ hub-tool tag ls --all mysql
TAG                DIGEST                                                                     STATUS    LAST UPDATE      LAST PUSHED    LAST PULLED    SIZE
mysql:latest       sha256:43bf7db32d11e75d8463a8bc077f09af5fb5b84b182b1d74124ddca633093bfa    active    2 weeks ago      2 weeks        40 minutes     159.3MB
mysql:5.6.51       sha256:1c224b6270c6a02f9e7eb9e4ca6486d3466f12be7390c0c0b6e6f908ea1a0346    active    13 days ago      13 days        20 minutes     103MB
mysql:5.6          sha256:1c224b6270c6a02f9e7eb9e4ca6486d3466f12be7390c0c0b6e6f908ea1a0346    active    13 days ago      13 days        20 minutes     103MB
mysql:8.0.23       sha256:43bf7db32d11e75d8463a8bc077f09af5fb5b84b182b1d74124ddca633093bfa    active    2 weeks ago      2 weeks        40 minutes     159.3MB
mysql:8.0          sha256:43bf7db32d11e75d8463a8bc077f09af5fb5b84b182b1d74124ddca633093bfa    active    2 weeks ago      2 weeks        40 minutes     159.3MB
mysql:8            sha256:43bf7db32d11e75d8463a8bc077f09af5fb5b84b182b1d74124ddca633093bfa    active    2 weeks ago      2 weeks        40 minutes     159.3MB
mysql:5.7.33       sha256:45ad5952e4f304d39aedb02caf7e0afc30a310e66f7ab60af8acf20fd4a0f54c    active    2 weeks ago      2 weeks        40 minutes     154.6MB
mysql:5.7          sha256:45ad5952e4f304d39aedb02caf7e0afc30a310e66f7ab60af8acf20fd4a0f54c    active    2 weeks ago      2 weeks        40 minutes     154.6MB
mysql:5            sha256:45ad5952e4f304d39aedb02caf7e0afc30a310e66f7ab60af8acf20fd4a0f54c    active    2 weeks ago      2 weeks        40 minutes     154.6MB
mysql:8.0.22       sha256:7d83f4d89c92d7e72b366cc9d0f5c19b12cba934c5e135d21d81b2b84651df69    active    3 weeks ago      3 weeks        54 minutes     159MB
...(省略)...
mysql:5.6.27                                                                                  stale     5 years ago      5 years                       111.2MB
mysql:5.7.9                                                                                   stale     5 years ago      5 years                       123MB
mysql:5.5.46                                                                                  stale     5 years ago      5 years                       88.03MB
mysql:5.5.40                                                                                  stale     5 years ago      5 years                       73.55MB
mysql:5.7.4                                                                                   stale     5 years ago      5 years                       88.53MB
mysql:5.6.17                                                                                  stale     5 years ago      5 years                       164MB
mysql:5.5.41                                                                                  stale     5 years ago      5 years                       73.5MB
mysql:5.7.5-m15                                                                               stale     5 years ago      5 years                       113.4MB
mysql:5.6.21                                                                                  stale     5 years ago      5 years                       79.21MB
mysql:5.6.20                                                                                  stale     5 years ago      5 years                       79.25MB
100/117 listed, use --all flag to show all

過去に シェルでDockerHubリポジトリからイメージとタグを取得する方法 | ゲンゾウ用ポストイット で紹介した方法とは異なり、あっという間にすべてのタグが一覧表示されます。

ひとこと

もちろん、本来の機能である「自分が作成したリポジトリ」の一覧表示や削除なども行えるツールとなっています。

2023-05-08Bash,Docker