Skip to content

skopeoでコンテナイメージで利用可能な全てのタグを表示する

skopeoを使ってコンテナイメージで利用可能なタグを一覧表示する方法をメモしておきます。

検証環境

対象 バージョン
macOS Tahoe 26.3.1

インストール

いずれのOSであってもインストールは簡単です。

Ubuntu

標準リポジトリからインストールできました。

apt-get update
apt-get install -y skopeo

macOS

Homebrewでインストールできました。

brew install skopeo

skopeoの基本的な使い方

skopeoではイメージ名に「docker://」というトランスポートを指定するのが基本ルールです。但し、対象イメージの公開場所・種類などによってURL構造が異なります。

DockerHubの公式イメージ

nginxやubuntuなどの公式イメージ(URL構造にユーザ名を含まないもの)は、libraryという名前空間に属しています。ですので例えばnginxであれば以下のように指定します。

skopeo list-tags docker://docker.io/library/nginx

実際の実行例は以下の通りです。レスポンスはJSON形式です。

# skopeo list-tags docker://docker.io/library/nginx
{
    "Repository": "docker.io/library/nginx",
    "Tags": [
        "1",
        "1-alpine",
        "1-alpine-otel",
        "1-alpine-perl",
・
・
(snip)
・
・
        "trixie",
        "trixie-otel",
        "trixie-perl"
    ]
}

JSON形式ではなく、タグの文字列だけを取得するにはjqを利用して以下のように実行します。

# skopeo list-tags docker://docker.io/library/nginx | jq -r '.Tags[]'
1
1-alpine
1-alpine-otel
・
・
(snip)
・
・
trixie
trixie-otel
trixie-perl

DockerHubの一般的なイメージ(ユーザイメージ)

DockerHubへユーザが登録した一般的なイメージであれば、skopeoで指定すべきURL構造は以下です。

docker://docker.io/[ユーザ名]/[リポジトリ名]

DockerHubのsig9/alpine-openssh-clientであれば、以下のように指定します。

skopeo list-tags docker://docker.io/sig9/alpine-openssh-client

実行例は以下の通りです。

% skopeo list-tags docker://docker.io/sig9/alpine-openssh-client
{
    "Repository": "docker.io/sig9/alpine-openssh-client",
    "Tags": [
        "10.0_p1-r10",
        "10.2_p1-r0",
        "6.6_p1-r8",
・
・
(snip)
・
・
        "9.7_p1-r5",
        "9.9_p2-r0",
        "latest"
    ]
}

同じく「タグの文字列だけ取得する」場合は以下のように実行します。

skopeo list-tags docker://docker.io/sig9/alpine-openssh-client | jq -r '.Tags[]'

DockerHub以外のレジストリ

DockerHub以外のレジストリであれば、例えば以下のようなURL構造を指定します。

レジストリ種別 URLの形式例
GitHub (GHCR) docker://ghcr.io/OWNER/IMAGE_NAME
Google (GCR) docker://gcr.io/PROJECT_ID/IMAGE_NAME
Quay.io docker://quay.io/USER/IMAGE_NAME
AWS (ECR) docker://[ACCOUNT_ID].dkr.ecr.[REGION].amazonaws.com/REPO