Filtering Docker Images by Repository with Docker CLI

Posted on Mar 18, 2025

Filtering Docker Images by Repository with Docker CLI

When managing multiple Docker images from different registries, finding specific images quickly becomes essential. Docker’s built-in filtering capabilities make this straightforward.

Basic Image Filtering

Search for Docker images by repository pattern:

docker image ls --filter 'reference=registry.gitlab.com/xxx-org/*'

This command lists all images from the GitLab registry under the xxx-org namespace.

Filter Options

The --filter flag supports several reference patterns:

# Exact repository match
docker image ls --filter 'reference=nginx'

# Wildcard matching
docker image ls --filter 'reference=*nginx*'

# Specific registry
docker image ls --filter 'reference=docker.io/library/*'

# Multiple filters (AND operation)
docker image ls --filter 'reference=*api*' --filter 'dangling=false'

Useful Filter Combinations

# Show only images with tags containing "latest"
docker image ls --filter 'reference=*:latest'

# Find dangling (untagged) images
docker image ls --filter 'dangling=true'

# Images created before a specific image
docker image ls --filter 'before=nginx:latest'

# Images created after a specific image
docker image ls --filter 'after=ubuntu:20.04'

Practical Use Cases

  • Registry Cleanup: Identify images from specific registries for bulk operations
  • Namespace Management: Group images by organization or project
  • Build Pipeline Debugging: Find images created during specific deployment cycles
  • Storage Optimization: Locate unused or old images for removal

Pro Tips

  • Use --format to customize output: docker image ls --format "table {{.Repository}}\t{{.Tag}}\t{{.Size}}"
  • Combine with other commands: docker image ls --filter 'dangling=true' -q | xargs docker rmi
  • Use --no-trunc to see full image IDs and repository names

Efficient image filtering helps maintain clean Docker environments and speeds up container management workflows.