Labels for the Derived Image

IT Asset Management (Cloud)

The derived images created by imgtrack are not tagged with a name. If you have used one of the options that prevent cleanup of the derived image(s), you may want to manage the images or eventually delete them. To facilitate this, the derived images are labelled with a variety of information.

Firstly, all the derived images have a label app.flexera.com with the value imgtrack. The --filter option to the docker image ls command can be used to list all images tagged with this label:
docker image ls --filter=label=app.flexera.com=imgtrack
In the output from this command, the REPOSITORY and TAG field have the value <none>, and cannot be used for image management. The IMAGE ID field, however, has the short-form ID (the first 12 characters of the ID) of the image, which can be used in subsequent docker commands to interact with the image.
Other labels:
  • Describe the source image
  • Identify the versions used of imgtrack and ndtrack
  • Link the image to the .ndi inventory file that was (or would have been) generated by ndtrack for the image.
You can extract the labels from the image metadata in any of the following ways:
  • Run the docker inspect command, and visually identify the labels in the JSON data the command produces.
  • Use Docker's templating feature to extract and format the labels (lines wrapped for presentation here):
    shell$ docker inspect b069f4a6dd3b 
        --format='{{range $k, $v := .Config.Labels}}{{printf "%s: %s\n" $k $v}}{{end}}'
    app.flexera.com: imgtrack
    imgtrack.flexera.com/filename: imgtrack-sha256_6647385dd9ae.ndi
    imgtrack.flexera.com/id: 
        sha256:6647385dd9ae11aa2216bf55c54d126b0a85637b3cf4039ef24e3234113588e3
    imgtrack.flexera.com/managesoft_version: 17.3.0
    imgtrack.flexera.com/version: 1.0.0
    source.imgtrack.flexera.com/image_id: 
        sha256:b2fcd079c1d403dc1dba5397ca1bca606f17ebcf99b03b66c59941929acff57c
    source.imgtrack.flexera.com/repo_digest: 
        postgres@sha256:6647385dd9ae11aa2216bf55c54d126b0a85637b3cf4039ef24e3234113588e3
    source.imgtrack.flexera.com/tag: postgres:13
  • Use the jq tool to extract the labels from the JSON data (lines wrapped for presentation):
    shell$ docker inspect b069f4a6dd3b | jq .[0].Config.Labels
    {
      "app.flexera.com": "imgtrack",
      "imgtrack.flexera.com/filename": "imgtrack-sha256_6647385dd9ae.ndi",
      "imgtrack.flexera.com/id": 
         "sha256:6647385dd9ae11aa2216bf55c54d126b0a85637b3cf4039ef24e3234113588e3",
      "imgtrack.flexera.com/managesoft_version": "17.3.0",
      "imgtrack.flexera.com/version": "1.0.0",
      "source.imgtrack.flexera.com/image_id": 
         "sha256:b2fcd079c1d403dc1dba5397ca1bca606f17ebcf99b03b66c59941929acff57c",
      "source.imgtrack.flexera.com/repo_digest": 
         "postgres@sha256:6647385dd9ae11aa2216bf55c54d126b0a85637b3cf4039ef24e3234113588e3",
      "source.imgtrack.flexera.com/tag": "postgres:13"
    }
As an exercise, the following shell script snippet illustrates how you could find and display the labels for every derived image built by imgtrack on the Linux device:
for image in $(docker image ls --filter=label=app.flexera.com=imgtrack --format={{.ID}}); do
  echo "$image"
  docker inspect $image 
      --format='{{range $k, $v := .Config.Labels}}{{printf "\t%s: %s\n" $k $v}}{{end}}'
done

IT Asset Management (Cloud)

Current