A CLI tool for analyzing and comparing Docker container images across multiple criteria like file system, packages, and history.
container-diff is a CLI tool for analyzing and comparing Docker container images. It inspects images across multiple dimensions such as file system structure, installed packages (Apt, RPM, pip, npm), image history, and size to help users understand what their containers contain and how they differ.
DevOps engineers, container developers, and security auditors who need to inspect, audit, or debug Docker images, especially in CI/CD pipelines or for compliance checks.
It provides a unified, extensible tool for deep container introspection and comparison, offering more granular insights than standard Docker commands and enabling automated analysis through JSON output.
container-diff: Diff your Docker containers
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.
Examines images across Docker history, file system, size, and multiple package managers (Apt, RPM, pip, npm), providing comprehensive insights for debugging and optimization.
Supports images from local Docker daemons, remote registries, or tarballs, allowing analysis in various environments without image conversion.
Offers JSON output and Go templates for custom formatting, enabling easy automation in CI/CD pipelines and scripted workflows.
Allows creation of custom analyzers by implementing defined interfaces, useful for specialized container inspection needs beyond built-in features.
The project is officially archived and in maintenance mode, meaning no new features, limited bug fixes, and potential security vulnerabilities over time.
Requires Docker to be installed for history analysis and image ID handling, making it incompatible with pure Podman or other container runtimes without workarounds.
Only supports specific package managers (Apt, RPM, pip, npm), missing common ones like yum, apk, or gem, which restricts analysis for many containerized applications.
Creating custom analyzers requires implementing Go interfaces and understanding the codebase, posing a steep learning curve for non-Go developers.