↓ Skip to main content

Useful tool for Dockerhub

·191 words·1 min

Skopeo
#

I have stumbled upon this tool: https://github.com/containers/skopeo - command line tools for manipulation with Docker images and Docker image registries.

It can work with OCI images as well as the original Docker v2 images.

Installation
#

brew install skopeo

Usage
#

➜  deploy-2018-10-24 skopeo --override-os=linux inspect docker://docker.io/fedora
{
    "Name": "docker.io/library/fedora",
    "Digest": "sha256:b41cd083421dd7aa46d619e958b75a026a5d5733f08f14ba6d53943d6106ea6d",
    "RepoTags": [
        "20",
        "21",
        "22",
        "23",
        "24",
        "25",
        "26-modular",
        "26",
        "27",
        "28",
        "29",
        "branched",
        "heisenbug",
        "latest",
        "modular",
        "rawhide"
    ],
    "Created": "2018-09-07T19:20:02.809176076Z",
    "DockerVersion": "17.06.2-ce",
    "Labels": null,
    "Architecture": "amd64",
    "Os": "linux",
    "Layers": [
        "sha256:565884f490d9ec697e519c57d55d09e268542ef2c1340fd63262751fa308f047"
    ]
}

It works with protected repos as well - as long as creds are provided

skopeo --override-os=linux inspect --creds=''${CREDS}'' docker://docker.io/thinkwrap/dropship-ui:uat | jq ".Digest"

"sha256:43f95207dafa7dbc034e5126a9f6b6952e47e162206e889c1071f6e06308f4f4"

The reason for override-os is running the client on MacOS. On Linux, this can be removed.

The double single quotes around ${CREDS} is to make sure that special characters in password such as ;!| will not confuse shell.

Getting information about all Tags
#

skopeo --override-os=linux inspect --creds=''${CREDS}'' docker://docker.io/thinkwrap/dropship-ui:uat | jq ".RepoTags[]"

"0.3.0"
"1.3.0-uat"
"1.3.1-uat"
"1.3.2-uat"
"1.4.0-uat"
"1.4.1-uat"
"1.4.2-uat"
"1.4.3-uat"
"1.4.4-uat"
"1.4.5-uat"
"1.4.6-uat"
"1.5.0-uat"
"1.5.1-uat"
"1.5.2-uat"
"1.5.3-uat"
"1.5.4-uat"
"1.5.5-uat"
"1.5.6-uat"
"development"
"uat"

Speaking of Docker container tools, see also: https://github.com/GoogleContainerTools/container-diff