Skip to content

Commit 3b63ec2

Browse files
craig-osterhoutdvdksn
authored andcommitted
dhi: introducing dhi free
Signed-off-by: Craig Osterhout <craig.osterhout@docker.com>
1 parent 8d8aaf7 commit 3b63ec2

58 files changed

Lines changed: 1740 additions & 1420 deletions

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

content/manuals/dhi/_index.md

Lines changed: 15 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -1,22 +1,22 @@
11
---
22
title: Docker Hardened Images
33
description: Secure, minimal, and production-ready base images
4-
weight: 13
4+
weight: 8
55
params:
66
sidebar:
7+
group: Products
78
badge:
89
color: green
910
text: New
10-
group: Products
1111
grid_sections:
1212
- title: Quickstart
13-
description: Follow a step-by-step guide to explore, mirror, and run a Docker Hardened Image.
13+
description: Follow a step-by-step guide to explore and run a Docker Hardened Image.
1414
icon: rocket_launch
1515
link: /dhi/get-started/
16-
- title: About
16+
- title: Explore
1717
description: Learn what Docker Hardened Images are, how they're built, and what sets them apart from typical base images.
1818
icon: info
19-
link: /dhi/about/
19+
link: /dhi/explore/
2020
- title: Features
2121
description: Discover the security, compliance, and enterprise-readiness features built into Docker Hardened Images.
2222
icon: lock
@@ -35,13 +35,18 @@ params:
3535
link: /dhi/troubleshoot/
3636
---
3737

38-
{{< summary-bar feature_name="Docker Hardened Images" >}}
39-
40-
Docker Hardened Images (DHIs) are minimal, secure, and production-ready
41-
container base and application images maintained by Docker. Designed to reduce
42-
vulnerabilities and simplify compliance, DHIs integrate easily into your
38+
Docker Hardened Images (DHI) are minimal, secure, and production-ready container
39+
base and application images maintained by Docker. Designed to reduce
40+
vulnerabilities and simplify compliance, DHI integrates easily into your
4341
existing Docker-based workflows with little to no retooling required.
4442

43+
DHI is available in two tiers: **DHI Free** provides core security features at
44+
no cost, while **DHI Enterprise** adds SLA-backed support, compliance variants,
45+
customization, and Extended Lifecycle Support for organizations with advanced
46+
requirements.
47+
48+
![DHI Subscription](./images/dhi-subscription.png)
49+
4550
Explore the sections below to get started with Docker Hardened Images, integrate
4651
them into your workflow, and learn what makes them secure and enterprise-ready.
4752

content/manuals/dhi/core-concepts/_index.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,7 @@ params:
2727
icon: verified
2828
link: /dhi/core-concepts/fips/
2929
- title: STIG
30-
description: Learn how Docker Hardened Images provide STIG-hardened container images with verifiable security scan attestations for government and enterprise compliance requirements.
30+
description: Learn how Docker Hardened Images provide STIG-ready container images with verifiable security scan attestations for government and enterprise compliance requirements.
3131
icon: policy
3232
link: /dhi/core-concepts/stig/
3333
- title: CIS Benchmarks

content/manuals/dhi/core-concepts/attestations.md

Lines changed: 38 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ description: Review the full set of signed attestations included with each Docke
44
keywords: container image attestations, signed sbom, build provenance, slsa compliance, vex document
55
---
66

7-
Docker Hardened Images (DHIs) include comprehensive, signed security
7+
Docker Hardened Images (DHIs) and charts include comprehensive, signed security
88
attestations that verify the image's build process, contents, and security
99
posture. These attestations are a core part of secure software supply chain
1010
practices and help users validate that an image is trustworthy and
@@ -13,13 +13,13 @@ policy-compliant.
1313
## What is an attestation?
1414

1515
An attestation is a signed statement that provides verifiable information
16-
about an image, such as how it was built, what's inside it, and what security
16+
about an image or chart, such as how it was built, what's inside it, and what security
1717
checks it has passed. Attestations are typically signed using Sigstore tooling
1818
(such as Cosign), making them tamper-evident and cryptographically verifiable.
1919

2020
Attestations follow standardized formats (like [in-toto](https://in-toto.io/),
2121
[CycloneDX](https://cyclonedx.org/), and [SLSA](https://slsa.dev/)) and are
22-
attached to the image as OCI-compliant metadata. They can be generated
22+
attached to the image or chart as OCI-compliant metadata. They can be generated
2323
automatically during image builds or added manually to document extra tests,
2424
scan results, or custom provenance.
2525

@@ -38,25 +38,25 @@ They are essential for meeting industry standards such as SLSA,
3838
and help teams reduce the risk of supply chain attacks by making build and
3939
security data transparent and verifiable.
4040

41-
## How Docker Hardened Images use attestations
41+
## How Docker Hardened Images and charts use attestations
4242

43-
All DHIs are built using [SLSA Build Level
43+
All DHIs and charts are built using [SLSA Build Level
4444
3](https://slsa.dev/spec/latest/levels) practices, and each image variant is
4545
published with a full set of signed attestations. These attestations allow users
4646
to:
4747

48-
- Verify that the image was built from trusted sources in a secure environment
48+
- Verify that the image or chart was built from trusted sources in a secure environment
4949
- View SBOMs in multiple formats to understand component-level details
5050
- Review scan results to check for vulnerabilities or embedded secrets
5151
- Confirm the build and deployment history of each image
5252

53-
Attestations are automatically published and associated with each mirrored DHI
54-
in your Docker Hub organization. They can be inspected using tools like [Docker
53+
Attestations are automatically published and associated with each DHI
54+
and chart. They can be inspected using tools like [Docker
5555
Scout](../how-to/verify.md) or
5656
[Cosign](https://docs.sigstore.dev/cosign/overview), and are consumable by CI/CD
5757
tooling or security platforms.
5858

59-
## Available attestations
59+
## Image attestations
6060

6161
While every DHI variant includes a set of attestations, the attestations may
6262
vary based on the image variant. For example, some images may include a STIG
@@ -82,10 +82,38 @@ details](../how-to/explore.md#view-image-variant-details) in Docker Hub.
8282
| SLSA verification summary | A summary attestation indicating the image's compliance with SLSA requirements. | `https://slsa.dev/verification_summary/v1` |
8383
| SPDX SBOM | An SBOM in [SPDX](https://spdx.dev/) format, widely adopted in open-source ecosystems. | `https://spdx.dev/Document` |
8484
| FIPS compliance | An attestation that verifies the image uses FIPS 140-validated cryptographic modules. | `https://docker.com/dhi/fips/v0.1` |
85+
| DHI Image Sources | Links to a corresponding source image containing all materials used to build the image, including package source code, git repos, and local files, ensuring compliance with open source license requirements. | `https://docker.com/dhi/source/v0.1` |
86+
87+
## Helm chart attestations
88+
89+
Docker Hardened Image (DHI) charts also include comprehensive signed attestations
90+
that provide transparency and verification for your Kubernetes deployments. Like
91+
DHI container images, these charts are built following SLSA Build Level 3
92+
practices and include extensive security metadata.
93+
94+
DHI Helm charts include the following attestations:
95+
96+
| Attestation type | Description | Predicate type URI |
97+
|----------------------------|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|----------------------------------------------------|
98+
| CycloneDX SBOM | A software bill of materials in [CycloneDX](https://cyclonedx.org/) format, listing the chart itself and all container images and tools referenced by the chart. | `https://cyclonedx.org/bom/v1.6` |
99+
| CVEs (In-Toto format) | A list of known vulnerabilities (CVEs) affecting the container images and components referenced by the chart. | `https://in-toto.io/attestation/vulns/v0.1` |
100+
| Scout health score | A signed attestation from Docker Scout that summarizes the overall security and quality posture of the chart and its referenced images. | `https://scout.docker.com/health/v0.1` |
101+
| Scout provenance | Provenance metadata generated by Docker Scout, including the chart source repository, build images used, and build parameters. | `https://scout.docker.com/provenance/v0.1` |
102+
| Scout SBOM | An SBOM generated and signed by Docker Scout, including the chart and container images it references, with additional Docker-specific metadata. | `https://scout.docker.com/sbom/v0.1` |
103+
| Secrets scan | Results of a scan for accidentally included secrets, such as credentials, tokens, or private keys, in the chart package. | `https://scout.docker.com/secrets/v0.1` |
104+
| Tests | A record of automated tests run against the chart to validate functionality and compatibility with referenced images. | `https://scout.docker.com/tests/v0.1` |
105+
| Virus scan | Results of antivirus scans performed on the chart package. | `https://scout.docker.com/virus/v0.1` |
106+
| CVEs (Scout format) | A vulnerability report generated by Docker Scout, listing known CVEs and severity data for the chart's referenced images. | `https://scout.docker.com/vulnerabilities/v0.1` |
107+
| SLSA provenance | A standard [SLSA](https://slsa.dev/) provenance statement describing how the chart was built, including build tool, source repository, referenced images, and build materials. | `https://slsa.dev/provenance/v0.2` |
108+
| SPDX SBOM | An SBOM in [SPDX](https://spdx.dev/) format, listing the chart and all container images and tools it references. | `https://spdx.dev/Document` |
109+
110+
For instructions on how to view and verify Helm chart attestations, see [Verify
111+
Helm chart
112+
attestations](../how-to/verify.md#verify-helm-chart-attestations-with-docker-scout).
85113

86114
## View and verify attestations
87115

88-
To view and verify attestations for an image, see [Verify a Docker Hardened
116+
To view and verify attestations, see [Verify a Docker Hardened
89117
Image](../how-to/verify.md).
90118

91119
## Add your own attestations

content/manuals/dhi/core-concepts/cves.md

Lines changed: 15 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -70,7 +70,7 @@ To scan a Docker Hardened Image using Docker Scout, run the following
7070
command:
7171

7272
```console
73-
$ docker scout cves <your-namespace>/dhi-<image>:<tag>
73+
$ docker scout cves dhi.io/<image>:<tag> --platform <platform>
7474
```
7575

7676
Example output:
@@ -94,11 +94,13 @@ advisories.
9494
#### Scan a DHI using Grype
9595

9696
After installing Grype, you can scan a Docker Hardened Image by pulling
97-
the image and running the scan command:
97+
the image and running the scan command. Grype requires you to export the VEX
98+
attestation to a file first:
9899

99100
```console
100-
$ docker pull <your-namespace>/dhi-<image>:<tag>
101-
$ grype <your-namespace>/dhi-<image>:<tag>
101+
$ docker pull dhi.io/<image>:<tag>
102+
$ docker scout vex get dhi.io/<image>:<tag> --output vex.json
103+
$ grype dhi.io/<image>:<tag> --vex vex.json
102104
```
103105

104106
Example output:
@@ -123,8 +125,8 @@ After installing Trivy, you can scan a Docker Hardened Image by pulling
123125
the image and running the scan command:
124126

125127
```console
126-
$ docker pull <your-namespace>/dhi-<image>:<tag>
127-
$ trivy image <your-namespace>/dhi-<image>:<tag>
128+
$ docker pull dhi.io/<image>:<tag>
129+
$ trivy image --scanners vuln --vex repo dhi.io/<image>:<tag>
128130
```
129131

130132
Example output:
@@ -135,7 +137,7 @@ Report Summary
135137
┌──────────────────────────────────────────────────────────────────────────────┬────────────┬─────────────────┬─────────┐
136138
│ Target │ Type │ Vulnerabilities │ Secrets │
137139
├──────────────────────────────────────────────────────────────────────────────┼────────────┼─────────────────┼─────────┤
138-
<namespace>/dhi-<image>:<tag> (debian 12.11) │ debian │ 66 │ - │
140+
│ dhi.io/<image>:<tag> (debian 12.11) │ debian │ 66 │ - │
139141
├──────────────────────────────────────────────────────────────────────────────┼────────────┼─────────────────┼─────────┤
140142
│ opt/python-3.13.4/lib/python3.13/site-packages/pip-25.1.1.dist-info/METADATA │ python-pkg │ 0 │ - │
141143
└──────────────────────────────────────────────────────────────────────────────┴────────────┴─────────────────┴─────────┘
@@ -147,13 +149,13 @@ Docker Hardened Images include signed [VEX (Vulnerability Exploitability
147149
eXchange)](./vex.md) attestations that identify vulnerabilities not relevant to the image’s
148150
runtime behavior.
149151

150-
When using Docker Scout, these VEX statements are automatically applied and no
151-
manual configuration needed.
152+
When using Docker Scout or Trivy, these VEX statements are automatically
153+
applied using the previous examples, and no manual configuration needed.
152154

153155
To manually retrieve the VEX attestation for tools that support it:
154156

155157
```console
156-
$ docker scout vex get <your-namespace>/dhi-<image>:<tag> --output vex.json
158+
$ docker scout vex get dhi.io/<image>:<tag> --output vex.json
157159
```
158160

159161
> [!NOTE]
@@ -162,20 +164,13 @@ $ docker scout vex get <your-namespace>/dhi-<image>:<tag> --output vex.json
162164
> CLI](https://github.com/docker/scout-cli/) version 1.18.3 or later.
163165
>
164166
> If the image exists locally on your device, you must prefix the image name with `registry://`. For example, use
165-
> `registry://docs/dhi-python:3.13` instead of `docs/dhi-python:3.13`.
167+
> `registry://dhi.io/python:3.13` instead of `dhi.io/python:3.13`.
166168
167169
For example:
168170

169171
```console
170-
$ docker scout vex get docs/dhi-python:3.13 --output vex.json
172+
$ docker scout vex get dhi.io/python:3.13 --output vex.json
171173
```
172174

173175
This creates a `vex.json` file containing the VEX statements for the specified
174-
image. You can then use this file with tools that support VEX to filter out known non-exploitable CVEs.
175-
176-
For example, with Grype and Trivy, you can use the `--vex` flag to apply the VEX
177-
statements during the scan:
178-
179-
```console
180-
$ grype <your-namespace>/dhi-<image>:<tag> --vex vex.json
181-
```
176+
image. You can then use this file with tools that support VEX to filter out known non-exploitable CVEs.

content/manuals/dhi/core-concepts/fips.md

Lines changed: 14 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,12 @@
11
---
2-
title: FIPS
2+
title: 'FIPS <span class="not-prose bg-blue-500 dark:bg-blue-400 rounded-sm px-1 text-xs text-white whitespace-nowrap">DHI Enterprise</span>'
3+
linkTitle: FIPS
34
description: Learn how Docker Hardened Images support FIPS 140 through validated cryptographic modules to help organizations meet compliance requirements.
45
keywords: docker fips, fips 140 images, fips docker images, docker compliance, secure container images
56
---
67

8+
{{< summary-bar feature_name="Docker Hardened Images" >}}
9+
710
## What is FIPS 140?
811

912
[FIPS 140](https://csrc.nist.gov/publications/detail/fips/140/3/final) is a U.S.
@@ -35,6 +38,9 @@ Using software components that rely on validated cryptographic modules can help
3538

3639
## How Docker Hardened Images support FIPS compliance
3740

41+
While Docker Hardened Images are available to all, the FIPS variant requires a
42+
Docker Hardened Images Enterprise subscription.
43+
3844
Docker Hardened Images (DHIs) include variants that use cryptographic modules
3945
validated under FIPS 140. These images are intended to help organizations meet
4046
compliance requirements by incorporating components that meet the standard.
@@ -67,6 +73,11 @@ These indicators help you quickly locate repositories that support FIPS-based
6773
compliance needs. Image variants that include FIPS support will have a tag
6874
ending with `-fips`, such as `3.13-fips`.
6975

76+
## Use a FIPS variant
77+
78+
To use a FIPS variant, you must [mirror](../how-to/mirror.md) the repository
79+
and then pull the FIPS image from your mirrored repository.
80+
7081
## View the FIPS attestation
7182

7283
The FIPS variants of Docker Hardened Images contain a FIPS attestation that
@@ -78,7 +89,7 @@ You can retrieve and inspect the FIPS attestation using the Docker Scout CLI:
7889
$ docker scout attest get \
7990
--predicate-type https://docker.com/dhi/fips/v0.1 \
8091
--predicate \
81-
<your-namespace>/dhi-<image>:<tag>
92+
dhi.io/<image>:<tag>
8293
```
8394

8495
For example:
@@ -87,7 +98,7 @@ For example:
8798
$ docker scout attest get \
8899
--predicate-type https://docker.com/dhi/fips/v0.1 \
89100
--predicate \
90-
docs/dhi-python:3.13-fips
101+
dhi.io/python:3.13-fips
91102
```
92103

93104
The attestation output is a JSON array describing the cryptographic modules

content/manuals/dhi/core-concepts/sbom.md

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -62,7 +62,7 @@ To view the SBOM of a Docker Hardened Image, you can use the `docker scout sbom`
6262
command. Replace `<image-name>:<tag>` with the image name and tag.
6363

6464
```console
65-
$ docker scout sbom <image-name>:<tag>
65+
$ docker scout sbom dhi.io/<image-name>:<tag>
6666
```
6767

6868
## Verify the SBOM of a Docker Hardened Image
@@ -75,14 +75,14 @@ are trustworthy.
7575
To verify the SBOM of a Docker Hardened Image using Docker Scout, use the following command:
7676

7777
```console
78-
$ docker scout attest get <image-name>:<tag> \
78+
$ docker scout attest get dhi.io/<image-name>:<tag> \
7979
--predicate-type https://scout.docker.com/sbom/v0.1 --verify --platform <platform>
8080
```
8181

82-
For example, to verify the SBOM attestation for the `dhi/node:20.19-debian12-fips-20250701182639` image:
82+
For example, to verify the SBOM attestation for the `node:20.19-debian12` image:
8383

8484
```console
85-
$ docker scout attest get docs/dhi-node:20.19-debian12-fips-20250701182639 \
85+
$ docker scout attest get dhi.io/node:20.19-debian12 \
8686
--predicate-type https://scout.docker.com/sbom/v0.1 --verify --platform linux/amd64
8787
```
8888

0 commit comments

Comments
 (0)