docker scout compare
Description | Compare two images and display differences (experimental) |
---|---|
Usage | docker scout compare --to IMAGE|DIRECTORY|ARCHIVE [IMAGE|DIRECTORY|ARCHIVE] |
Aliases | docker scout diff |
Experimental
This command is experimental.
Experimental features are intended for testing and feedback as their functionality or design may change between releases without warning or can be removed entirely in a future release.
Description
The docker scout compare
command analyzes two images and displays a comparison.
This command is experimental and its behaviour might change in the future
The intended use of this command is to compare two versions of the same image. For instance, when a new image is built and compared to the version running in production.
If no image is specified, the most recently built image is used as a comparison target.
The following artifact types are supported:
- Images
- OCI layout directories
- Tarball archives, as created by
docker save
- Local directory or file
By default, the tool expects an image reference, such as:
redis
curlimages/curl:7.87.0
mcr.microsoft.com/dotnet/runtime:7.0
If the artifact you want to analyze is an OCI directory, a tarball archive, a local file or directory, or if you want to control from where the image will be resolved, you must prefix the reference with one of the following:
image://
(default) use a local image, or fall back to a registry lookuplocal://
use an image from the local image store (don't do a registry lookup)registry://
use an image from a registry (don't use a local image)oci-dir://
use an OCI layout directoryarchive://
use a tarball archive, as created bydocker save
fs://
use a local directory or filesbom://
SPDX file or in-toto attestation file with SPDX predicate orsyft
json SBOM file
Options
Option | Default | Description |
---|---|---|
-x, --exit-on | Comma separated list of conditions to fail the action step if worse, options are: vulnerability, policy | |
--format | text | Output format of the generated vulnerability report: - text: default output, plain text with or without colors depending on the terminal - markdown: Markdown output |
--hide-policies | Hide policy status from the output | |
--ignore-base | Filter out CVEs introduced from base image | |
--ignore-unchanged | Filter out unchanged packages | |
--multi-stage | Show packages from multi-stage Docker builds | |
--only-fixed | Filter to fixable CVEs | |
--only-package-type | Comma separated list of package types (like apk, deb, rpm, npm, pypi, golang, etc) | |
--only-policy | Comma separated list of policies to evaluate | |
--only-severity | Comma separated list of severities (critical, high, medium, low, unspecified) to filter CVEs by | |
--only-stage | Comma separated list of multi-stage Docker build stage names | |
--only-unfixed | Filter to unfixed CVEs | |
--org | Namespace of the Docker organization | |
-o, --output | Write the report to a file | |
--platform | Platform of image to analyze | |
--ref | Reference to use if the provided tarball contains multiple references. Can only be used with archive | |
--to | Image, directory, or archive to compare to | |
--to-env | Name of environment to compare to | |
--to-latest | Latest image processed to compare to | |
--to-ref | Reference to use if the provided tarball contains multiple references. Can only be used with archive. |
Examples
Compare the most recently built image to the latest tag
$ docker scout compare --to namespace/repo:latest
Compare local build to the same tag from the registry
$ docker scout compare local://namespace/repo:latest --to registry://namespace/repo:latest
Ignore base images
$ docker scout compare --ignore-base --to namespace/repo:latest namespace/repo:v1.2.3-pre
Generate a markdown output
$ docker scout compare --format markdown --to namespace/repo:latest namespace/repo:v1.2.3-pre
Only compare maven packages and only display critical vulnerabilities for maven packages
$ docker scout compare --only-package-type maven --only-severity critical --to namespace/repo:latest namespace/repo:v1.2.3-pre
Show all policy results for both images
docker scout compare --to namespace/repo:latest namespace/repo:v1.2.3-pre