Skip to content

Instantly share code, notes, and snippets.

@thatreguy
Forked from kizbitz/dockerhub-v2-api-user.sh
Last active November 8, 2019 03:10
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save thatreguy/f190dc0f61b6ec367c943aa265715b82 to your computer and use it in GitHub Desktop.
Save thatreguy/f190dc0f61b6ec367c943aa265715b82 to your computer and use it in GitHub Desktop.
Get the list of images and tags for a Docker Hub user account.
#!/bin/bash
# Example for the Docker Hub V2 API
# Returns all imagas and tags associated with a Docker Hub user account.
# Requires 'jq': https://stedolan.github.io/jq/
# set username and password
UNAME="FOO"
UPASS="BAR"
# Target UNAME
T_UNAME="FOOBARZ"
# -------
# -------
set -e
echo
# aquire token
TOKEN=$(curl -s -H "Content-Type: application/json" -X POST -d '{"username": "'${UNAME}'", "password": "'${UPASS}'"}' https://hub.docker.com/v2/users/login/ | jq -r .token)
# get list of repositories for the user account
REPO_LIST=$(curl -s -H "Authorization: JWT ${TOKEN}" https://hub.docker.com/v2/repositories/${T_UNAME}/?page_size=100 | jq -r '.results|.[]|.name')
# build a list of all images & tags
for i in ${REPO_LIST}
do
# get tags for repo
IMAGE_TAGS=$(curl -s -H "Authorization: JWT ${TOKEN}" https://hub.docker.com/v2/repositories/${T_UNAME}/${i}/tags/?page_size=100 | jq -r '.results|.[]|.name')
# build a list of images from tags
for j in ${IMAGE_TAGS}
do
# add each tag to list
FULL_IMAGE_LIST="${FULL_IMAGE_LIST} ${UNAME}/${i}:${j}"
done
done
# output
for i in ${FULL_IMAGE_LIST}
do
echo ${i}
done
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment