リモートレジストリ上のDockerイメージのすべてのタグを一覧表示するにはどうすればいいですか? 質問する

リモートレジストリ上のDockerイメージのすべてのタグを一覧表示するにはどうすればいいですか? 質問する

CLI (推奨) または curl を使用して、リモート Docker レジストリ上の Docker イメージのすべてのタグを一覧表示するにはどうすればよいでしょうか?

できれば、リモート レジストリからすべてのバージョンを取得せずに、タグを一覧表示したいだけです。

ベストアンサー1

更新: DockerはDocker Hub v1 API を非推奨にしました. タグを取得するにはv2 API、例えば

wget -q -O - "https://hub.docker.com/v2/namespaces/library/repositories/debian/tags?page_size=100" | grep -o '"name": *"[^"]*' | grep -o '[^"]*$'

注:結果は最新の 100 個のタグに限定されます。次の 100 個のタグを取得するには、URL をhttps://.../tags?page_size=100&page=2etcに設定します。

Docker 公式イメージ以外のイメージの場合は、libraryユーザー/組織の名前に置き換えます。

URLhttps://hub.docker.com/v2/repositories/{namespace}/{repository}/tagsも現時点では機能しますが、API 仕様からは合法かどうかは不明です。

(jqインストールしている場合は、この不格好な grep コマンドを に置き換えることができますjq -r '.results[].name'。)


元の回答 (v1 API、サポート終了):

私は答えを得たここ。 どうもありがとう! :)

たった 1 行のスクリプト:(debian のすべてのタグを検索)

wget -q https://registry.hub.docker.com/v1/repositories/debian/tags -O -  | sed -e 's/[][]//g' -e 's/"//g' -e 's/ //g' | tr '}' '\n'  | awk -F: '{print $3}'

更新 @degelf のアドバイスに感謝します。これがシェル スクリプトです。

#!/bin/bash

if [ $# -lt 1 ]
then
cat << HELP

dockertags  --  list all tags for a Docker image on a remote registry.

EXAMPLE: 
    - list all tags for ubuntu:
       dockertags ubuntu

    - list all php tags containing apache:
       dockertags php apache

HELP
fi

image="$1"
tags=`wget -q https://registry.hub.docker.com/v1/repositories/${image}/tags -O -  | sed -e 's/[][]//g' -e 's/"//g' -e 's/ //g' | tr '}' '\n'  | awk -F: '{print $3}'`

if [ -n "$2" ]
then
    tags=` echo "${tags}" | grep "$2" `
fi

echo "${tags}"

/usr/local/bin の下に新しいファイル名 を作成し(または/dockertagsに PATH 環境を追加し)、そのコードを配置するだけです。次に、実行権限 ( ) を追加します。.bashrc.zshrcchmod +x dockertags

使用法:

dockertags ubuntu---> Ubuntu のすべてのタグを一覧表示します

dockertags php apache---> 'apache' を含むすべての PHP タグを一覧表示します

おすすめ記事