Sometimes using the filter
flag as a part of the docker image ls
command can be useful to figure out which images are taking space, which are dangling images or unused. In this tutorial, I’m going to show you some useful scenarios on how can you use the --filter
flag to filter the list of images.
Prerequisites
- Docker
- sudo privileges
Filter only dangling images
The following example will only return dangling images:
sudo docker image ls --filter dangling=true
Output:
REPOSITORY TAG IMAGE ID CREATED SIZE
<none> <none> 4fd34165afe0 2 days ago 14.5MB
Docker currently supports the following filters:
dangling
: Accepts true or false, and returns only dangling images (true), or non-dangling images (false).before
: Requires an image name or ID as argument, and returns all images created before it.since
: Same as above, but returns images created after the specified image.label
: Filters images based on the presence of a label or label and value. Thedocker image ls
command does not display labels in its output.
Display only images tagged as latest
Here’s an example using reference
to display only images tagged as latest
.
sudo docker image ls --filter=reference="*:latest"
Output:
REPOSITORY TAG IMAGE ID CREATED SIZE
debian latest fe3c5de03486 9 days ago 124MB
amazonlinux latest d85ab0980c91 3 weeks ago 163MB
ubuntu latest 9873176a8ff5 2 months ago 72.7MB
wordpress latest c01290f258b3 4 months ago 550MB
nginx latest 62d49f9bab67 4 months ago 133MB
Return the size property of images on a Docker host
You can use the --format
flag to format output using Go
templates.
sudo docker image ls --format "{{.Size}}"
Output:
124MB
163MB
227MB
72.7MB
Return all images, but only display repo, tag and size
if you want to return all images with repo, tag and size only, run the following command:
sudo docker image ls --format "{{.Repository}}: {{.Tag}}: {{.Size}}"
Output:
debian: latest: 124MB
amazonlinux: latest: 163MB
rockylinux/rockylinux: latest: 227MB
ubuntu: latest: 72.7MB
mysql: 5.7: 447MB
wordpress: latest: 550MB
nginx: latest: 133MB
Conclusion
There are a lot of complex scenarios on how to filter the output of the docker image ls
. Here I showed you the basic ones, but you can always use the Linux commands such as grep
and awk
to filter more specified outputs. Feel free to leave a comment below and if you find this tutorial useful, follow our official channel on Telegram.