SKOPEO-LIST-TAGS(1)

πŸŽ€ skopeo-list-tags(1) β€” the ls of the tag world, bestie πŸŽ€

okay so real talk, this is the skopeo-list-tags page from the skopeo manual. she's a little legend whose whole personality is: "show me every tag in this transport-specific collection of images." no cap. πŸ’…


✨ NAME ✨

skopeo-list-tags β€” list image names in a transport-specific collection of images. that's it, that's the job, and she ate. πŸ“


🌸 SYNOPSIS 🌸

skopeo list-tags [options] source-image

so the vibe is: return a list of tags from source-image in a registry or a local docker-archive file. πŸ¦‹

  • source-image β€” the name of the repository you want a tag listing from, or a local docker-archive file. literally just tell her where to look and she'll spill the tea. β˜•

πŸ’– OPTIONS πŸ’–

also peep skopeo(1) for options that go before the subcommand name, k? those live up front. 🫢
  • --authfile path β€” path of the updated registry credentials file. on Linux, the default is ${XDG_RUNTIME_DIR}/containers/auth.json. see containers-auth.json(5) for more details about the credential search mechanism and the defaults on other platforms. use skopeo login to manage the credentials, bestie. the default value of this option is read from the REGISTRY_AUTH_FILE environment variable. πŸ”
  • --creds username[:password] β€” for accessing the registry.
  • --cert-dir path β€” use certificates at path (*.crt, *.cert, *.key) to connect to the registry. it's giving secure connection energy. 🧚
  • --help, -h β€” print usage statement. the classic "what do i even do" button. πŸ’€
  • --no-creds β€” access the registry anonymously. main character incognito mode. πŸ™ˆ
  • --registry-token Bearer token β€” Bearer token for accessing the registry.
  • --retry-times β€” the number of times to retry. by default, no retries are attempted. zero. none. she just goes for it once. 😭
  • --retry-delay β€” fixed delay between retries. if not set (or set to 0s), retry wait time will be exponentially increased based on the number of failed attempts. glow-up on every attempt, lowkey. πŸ”₯
  • --tls-verify=bool β€” require HTTPS and verify certificates when talking to the container registry or daemon. default to registry.conf setting.
  • --username β€” the username to access the registry.
  • --password β€” the password to access the registry.

πŸ¦‹ REPOSITORY NAMES πŸ¦‹

repository names are transport-specific references, because each transport may have its own concept of a "repository" and "tags". they're all individuals, ok. 🌈

this commands refers to repositories using a transport:details format. the following formats are supported:

🐳 docker://docker-repository-reference

a repository in a registry implementing the "Docker Registry HTTP API V2". ngl, iconic spec.

a docker-repository-reference is of the form: registryhost:port/repositoryname, which is similar to an image-reference but with no tag or digest allowed as the last component (e.g no :latest or @sha256:xyz). read that again, bestie β€” no tag, no digest. periodt. πŸ’…

examples of valid docker-repository-references:

  • "docker.io/myuser/myrepo"
  • "docker.io/nginx"
  • "docker.io/library/fedora"
  • "localhost:5000/myrepository"

examples of invalid references:

  • "docker.io/nginx:latest"
  • "docker.io/myuser/myimage:v1.0"
  • "docker.io/myuser/myimage@sha256:f48c4cc192f4c3c6a069cb5cca6d0a9e34d6076ba7c214fd0cc3ca60e0af76bb"
yeah those last three are a no. not the vibe. she wants the repo, not the tag or digest. 🚫

πŸ“¦ docker-archive:path[:docker-reference]

images stored in a docker save-formatted file. retro but she respects it. πŸŽ€


⭐ EXAMPLES ⭐

πŸ”₯ Docker Transport

to get the list of tags in the "fedora" repository from the docker.io registry (the repository name expands to "library/fedora" per docker transport canonical form):

$ skopeo list-tags docker://docker.io/fedora
{
    "Repository": "docker.io/library/fedora",
    "Tags": [
        "20",
        "21",
        "22",
        "23",
        "24",
        "25",
        "26-modular",
        "26",
        "27",
        "28",
        "29",
        "30",
        "31",
        "32",
        "branched",
        "heisenbug",
        "latest",
        "modular",
        "rawhide"
    ]
}

to list the tags in a local host docker/distribution registry on port 5000, in this case for the "fedora" repository:

$ skopeo list-tags docker://localhost:5000/fedora
{
    "Repository": "localhost:5000/fedora",
    "Tags": [
        "latest",
        "30",
        "31"
    ]
}

🧚 Docker-archive Transport

to list the tags in a local docker-archive file:

$ skopeo list-tags docker-archive:/tmp/busybox.tar.gz
{
    "Tags": [
        "busybox:1.28.3"
    ]
}

also supports more than one tags in an archive. she's flexible like that. πŸ’œ

$ skopeo list-tags docker-archive:/tmp/docker-two-images.tar.gz
{
    "Tags": [
        "example.com/empty:latest",
        "example.com/empty/but:different"
    ]
}

will include a source-index entry for each untagged image:

$ skopeo list-tags docker-archive:/tmp/four-tags-with-an-untag.tar
{
    "Tags": [
        "image1:tag1",
        "image2:tag2",
        "@2",
        "image4:tag4"
    ]
}
see that "@2"? that's the untagged-image source-index entry doing its little cameo. πŸ‘‘

πŸ‘‘ SEE ALSO πŸ‘‘

skopeo(1), skopeo-login(1), docker-login(1), containers-auth.json(5), containers-transports(1) β€” go read the whole friend group, they're all connected. 🫢


🌸 AUTHORS 🌸

Zach Hill zach@anchore.com ⟨mailto:zach@anchore.com⟩ β€” thank you for your service, king. 🫑


and that's the whole page, bestie! the footer down there is just skopeo-list-tags(1)() being its usual mysterious self β€” no extra source, version or date gossip attached, literally just the man page name twice with empty parens doing absolutely nothing. so we're signing off with that exact energy: skopeo-list-tags(1)() πŸ’…βœ¨πŸŽ€πŸ¦‹

πŸ“¦ where this page comes from