Skip to content

Commit 75ad2e5

Browse files
authored
HD freshness (#24666)
<!--Delete sections as needed --> ## Description <!-- Tell us what you did and why --> ## Related issues or tickets <!-- Related issues, pull requests, or Jira tickets --> ## Reviews <!-- Notes for reviewers here --> <!-- List applicable reviews (optionally @tag reviewers) --> - [ ] Technical review - [ ] Editorial review - [ ] Product review
1 parent 6f695c7 commit 75ad2e5

11 files changed

Lines changed: 71 additions & 101 deletions

File tree

content/manuals/enterprise/security/hardened-desktop/air-gapped-containers.md

Lines changed: 14 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,12 @@
11
---
22
title: Air-gapped containers
3-
description: Control container network access with air-gapped containers using custom proxy rules and network restrictions
4-
keywords: air gapped containers, network security, proxy configuration, container isolation, docker desktop
3+
description: Restrict outbound container traffic using proxy rules, PAC files, and network isolation with Docker Desktop air-gapped containers
4+
keywords: air gapped containers, network security, proxy configuration, container isolation, docker desktop, PAC file, network isolation
55
aliases:
66
- /desktop/hardened-desktop/settings-management/air-gapped-containers/
77
- /desktop/hardened-desktop/air-gapped-containers/
88
- /security/for-admins/hardened-desktop/air-gapped-containers/
9+
weight: 30
910
---
1011

1112
{{< summary-bar feature_name="Air-gapped containers" >}}
@@ -14,17 +15,13 @@ Air-gapped containers let you restrict container network access by controlling w
1415

1516
Docker Desktop can configure container network traffic to accept connections, reject connections, or tunnel through HTTP or SOCKS proxies. You control which TCP ports the policy applies to and whether to use a single proxy or per-destination policies via Proxy Auto-Configuration (PAC) files.
1617

17-
This page provides an overview of air-gapped containers and configuration steps.
18-
1918
## Who should use air-gapped containers?
2019

21-
Air-gapped containers help organizations maintain security in restricted environments:
20+
Use air-gapped containers if:
2221

23-
- Secure development environments: Prevent containers from accessing unauthorized external services
24-
- Compliance requirements: Meet regulatory standards that require network isolation
25-
- Data loss prevention: Block containers from uploading sensitive data to external services
26-
- Supply chain security: Control which external resources containers can access during builds
27-
- Corporate network policies: Enforce existing network security policies for containerized applications
22+
- Your organization requires containers to communicate only with approved internal services
23+
- You need to meet compliance standards that mandate network isolation (such as SOC 2, ISO 27001, or PCI DSS)
24+
- You want to prevent containers from leaking data or reaching unapproved external endpoints during builds or at runtime
2825

2926
## How air-gapped containers work
3027

@@ -47,8 +44,7 @@ Before configuring air-gapped containers, you must have:
4744

4845
- [Enforce sign-in](/manuals/enterprise/security/enforce-sign-in/_index.md) enabled to ensure users authenticate with your organization
4946
- A Docker Business subscription
50-
- Configured [Settings Management](/manuals/enterprise/security/hardened-desktop/settings-management/_index.md) to manage organization policies
51-
- Downloaded Docker Desktop 4.29 or later
47+
- Configured [Settings Management](/manuals/enterprise/security/hardened-desktop/settings-management/_index.md) with the `admin-settings.json` file to manage organization policies
5248

5349
## Configure air-gapped containers
5450

@@ -144,8 +140,8 @@ function FindProxyForURL(url, host) {
144140

145141
### General considerations
146142

147-
- `FindProxyForURL` function URL parameter format is http://host_or_ip:port or https://host_or_ip:port
148-
- If you have an internal container trying to access https://docs.docker.com/enterprise/security/hardened-desktop/air-gapped-containers the docker proxy service will submit docs.docker.com for the host value and https://docs.docker.com:443 for the url value to FindProxyForURL, if you are using `shExpMatch` function in your PAC file as follows:
143+
- `FindProxyForURL` function URL parameter format is `http://host_or_ip:port` or `https://host_or_ip:port`
144+
- If you have an internal container trying to access `https://docs.docker.com/enterprise/security/hardened-desktop/air-gapped-containers` the Docker proxy service will submit docs.docker.com for the host value and https://docs.docker.com:443 for the url value to `FindProxyForURL`, if you are using `shExpMatch` function in your PAC file as follows:
149145

150146
```console
151147
if(shExpMatch(url, "https://docs.docker.com:443/enterprise/security/*")) return "DIRECT";
@@ -230,3 +226,7 @@ $ docker run --rm alpine wget -O- https://docker.io
230226
- PAC file management: Host PAC files on reliable internal infrastructure. Failed PAC downloads result in blocked container network access.
231227
- Performance considerations: Complex PAC files with many rules may impact container network performance. Keep rules simple and efficient.
232228

229+
## Next steps
230+
231+
- [Explore Enhanced Container Isolation](/manuals/enterprise/security/hardened-desktop/enhanced-container-isolation/_index.md) to further restrict what containers can do at runtime
232+
- [Understand how Docker Desktop handles host and container networking](/manuals/desktop/features/networking/_index.md)

content/manuals/enterprise/security/hardened-desktop/enhanced-container-isolation/enable-eci.md

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,6 @@ This page shows you how to turn on Enhanced Container Isolation (ECI) and verify
1717
Before you begin, you must have:
1818

1919
- A Docker Business subscription
20-
- Docker Desktop 4.13 or later
2120
- [Enforced sign-in](/manuals/enterprise/security/enforce-sign-in/_index.md) (for administrators managing organization-wide settings only)
2221

2322
## Enable Enhanced Container Isolation

content/manuals/enterprise/security/hardened-desktop/enhanced-container-isolation/limitations.md

Lines changed: 0 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -142,17 +142,6 @@ $ docker image rm <image>
142142
$ docker pull <image>
143143
```
144144

145-
## Version compatibility
146-
147-
ECI features have been introduced across different Docker Desktop versions:
148-
149-
- Docker Desktop 4.36 and later: Wildcard allowlist support (`"*"`) and improved derived images handling
150-
- Docker Desktop 4.34 and later: Derived images support (`allowDerivedImages`)
151-
- Docker Desktop 4.30 and later: Docker Build protection with default driver (except WSL 2)
152-
- Docker Desktop 4.13 and later: Core ECI functionality
153-
154-
For the latest feature availability, use the most recent Docker Desktop version.
155-
156145
## Production compatibility
157146

158147
### Container behavior differences
Lines changed: 26 additions & 31 deletions
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,15 @@
11
---
22
title: Image Access Management
33
description: Control which Docker Hub images developers can access with Image Access Management for enhanced supply chain security
4-
keywords: image access management, docker official images, verified publisher, supply chain security, docker business, allow list
4+
keywords: image access management, docker official images, verified publisher, supply chain security, docker business, allow list, image restrictions, pull restrictions
55
tags: [admin]
66
aliases:
77
- /docker-hub/image-access-management/
88
- /desktop/hardened-desktop/image-access-management/
99
- /admin/organization/image-access/
1010
- /security/for-admins/image-access-management/
1111
- /security/for-admins/hardened-desktop/image-access-management/
12-
weight: 40
12+
weight: 50
1313
---
1414

1515
{{< summary-bar feature_name="Hardened Docker Desktop" >}}
@@ -23,7 +23,7 @@ With Image Access Management, you can restrict access to:
2323
- Organization images: Your organization's private repositories
2424
- Community images: Public images from individual developers
2525

26-
You can also use a repository allow list to approve specific repositories that bypass all other access controls.
26+
You can also use a repository allowlist to approve specific repositories that bypass all other access controls.
2727

2828
## Who should use Image Access Management?
2929

@@ -36,7 +36,7 @@ Common security scenarios include:
3636
- Control access to commercial third-party images
3737
- Maintain consistent security standards across development teams
3838

39-
Use the repository allow list when you need to:
39+
Use the repository allowlist when you need to:
4040

4141
- Grant access to specific vetted community images
4242
- Allow essential third-party tools that don't fall under official categories
@@ -46,16 +46,16 @@ Use the repository allow list when you need to:
4646

4747
Before configuring Image Access Management, you must:
4848

49-
- [Enforce sign-in](/manuals/enterprise/security/enforce-sign-in/_index.md) to ensure users authenticate with your organization
49+
- [Enforce sign-in](/manuals/enterprise/security/enforce-sign-in/_index.md). Image Access Management only takes effect when users are signed in to Docker Desktop with organization credentials.
5050
- Use [personal access tokens (PATs)](/manuals/security/access-tokens.md) for authentication (Organization access tokens aren't supported)
5151
- Have a Docker Business subscription
5252

53-
> [!IMPORTANT]
54-
>
55-
> Image Access Management only takes effect when users are signed in to Docker Desktop with organization credentials.
56-
5753
## Configure image access
5854

55+
> [!NOTE]
56+
>
57+
> Image Access Management is turned off by default for organization members. Organization owners always have access to all images regardless of policy settings.
58+
5959
To configure Image Access Management:
6060

6161
1. Sign in to [Docker Home](https://app.docker.com) and select your organization from the top-left account drop-down.
@@ -66,22 +66,18 @@ To configure Image Access Management:
6666
- **Community images**: Images contributed by various users that may pose security risks. This category includes Docker-Sponsored Open Source images and is turned off by default.
6767
- **Docker Verified Publisher Images**: Images from Docker partners in the Verified Publisher program, qualified for secure supply chains.
6868
- **Docker Official Images**: Curated Docker repositories that provide OS repositories, best practices for Dockerfiles, drop-in solutions, and timely security updates.
69-
- **Repository allow list**: A list of specific repositories that should be
69+
- **Repository allowlist**: A list of specific repositories that should be
7070
allowed. Configure in the next step.
71-
1. Optionally, when **Repository allow list** is enabled in the previous step,
71+
1. If **Repository allowlist** is enabled in the previous step,
7272
you can add or remove specific repositories in the allow list:
73-
- To add repositories, in the **Repository allow list** section, select
74-
**Add repositories to allow list** and follow the on-screen instructions.
75-
- To remove a repository, in the **Repository allow list** section, select
73+
- To add repositories, in the **Repository allowlist** section, select
74+
**Add repositories to allowlist** and follow the on-screen instructions.
75+
- To remove a repository, in the **Repository allowlist** section, select
7676
the trashcan icon next to it.
7777

7878
Repositories in the allow list are accessible to all organization members regardless of the image type restrictions configured in the previous steps.
7979

80-
Once restrictions are applied, organization members can view the permissions page in read-only format.
81-
82-
> [!NOTE]
83-
>
84-
> Image Access Management is turned off by default. Organization owners have access to all images regardless of policy settings.
80+
After restrictions are applied, organization members can view the permissions page in read-only format.
8581

8682
## Verify access restrictions
8783

@@ -103,23 +99,22 @@ Error response from daemon: image access denied: community images not allowed
10399

104100
Image access restrictions apply to all Docker Hub operations including pulls, builds using `FROM` instructions, and Docker Compose services.
105101

106-
## Security implementation
107-
108-
Start with the most restrictive policy and gradually expand based on legitimate business needs:
109-
110-
1. Start with: Docker Official Images and Organization images
111-
2. Add if needed: Docker Verified Publisher Images for commercial tools
112-
3. Carefully evaluate: Community images only for specific, vetted use cases
113-
4. Use the repository allow list sparingly: Only add repositories that have been thoroughly vetted and approved through your organization's security review process
114-
115-
Other security recommendations include:
102+
## Best practices
116103

104+
- Start with the most restrictive policy and gradually expand based on legitimate business needs:
105+
1. Start with Docker Official Images and Organization images
106+
2. If needed, add Docker Verified Publisher Images for commercial tools
107+
3. Carefully evaluate community images only for specific, vetted use cases
108+
4. Use the repository allowlist sparingly. Only add repositories that have been thoroughly vetted and approved through your organization's security review process
117109
- Monitor usage patterns: Review which images developers are attempting to pull, identify legitimate requests for additional image types, regularly audit approved image categories for continued relevance, and use Docker Desktop analytics to monitor usage patterns.
118-
- Regularly review the repository allow list: Periodically audit the repositories in your allow list to ensure they remain necessary and trustworthy, and remove any that are no longer needed or maintained.
119-
- Layer security controls: Image Access Management works best with Registry Access Management to control which registries developers can access, Enhanced Container Isolation to secure containers at runtime, and Settings Management to control Docker Desktop configuration.
110+
- Regularly review the repository allow list: Periodically audit the repositories in your allowlist to ensure they remain necessary and trustworthy, and remove any that are no longer needed or maintained.
120111

121112
## Scope and bypass considerations
122113

123114
- Image Access Management only controls access to Docker Hub images. Images from other registries aren't affected by these policies. Use [Registry Access Management](/manuals/enterprise/security/hardened-desktop/registry-access-management.md) to control access to other registries.
124115
- Users can potentially bypass Image Access Management by signing out of Docker Desktop (unless sign-in is enforced), using images from other registries that aren't restricted, or using registry mirrors or proxies. Enforce sign-in and combine with Registry Access Management for comprehensive control.
125116
- Image restrictions apply to Dockerfile `FROM` instructions, Docker Compose services using restricted images will fail, multi-stage builds may be affected if intermediate images are restricted, and CI/CD pipelines using diverse image types may be impacted.
117+
118+
## Next steps
119+
120+
- Layer security controls: Image Access Management works best with [Registry Access Management](registry-access-management.md) to control which registries developers can access, [Enhanced Container Isolation](enhanced-container-isolation/_index.md) to secure containers at runtime, and [Settings Management](settings-management/_index.md) to control Docker Desktop configuration.

content/manuals/enterprise/security/hardened-desktop/namespace-access.md

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ linkTitle: Namespace access
44
description: Control whether organization members can push content to their personal namespaces on Docker Hub
55
keywords: namespace access, docker hub, personal namespace, organization security, docker business
66
tags: [admin]
7-
weight: 50
7+
weight: 60
88
---
99

1010
{{< summary-bar feature_name="Namespace access" >}}
@@ -16,7 +16,7 @@ outside of approved, governed locations.
1616

1717
When namespace access control is enabled, organization members can still view and pull images
1818
from their personal namespaces and continue accessing all existing repositories
19-
and content. However, they will no longer be able to create new repositories or
19+
and content. However, they're unable to create new repositories or
2020
push new images to their personal namespace.
2121

2222
> [!IMPORTANT]
@@ -36,7 +36,7 @@ To configure namespace access control:
3636
4. Select **Save changes**.
3737

3838
Once namespace access control is enabled, organization members can still view their
39-
personal namespace and existing repositories but they will not be able to create
39+
personal namespace and existing repositories but they are not able to create
4040
any new repositories or push any new images to existing repositories.
4141

4242
### Verify access restrictions

content/manuals/enterprise/security/hardened-desktop/registry-access-management.md

Lines changed: 10 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ aliases:
99
- /docker-hub/registry-access-management/
1010
- /security/for-admins/registry-access-management/
1111
- /security/for-admins/hardened-desktop/registry-access-management/
12-
weight: 30
12+
weight: 40
1313
---
1414

1515
{{< summary-bar feature_name="Registry access management" >}}
@@ -22,8 +22,8 @@ RAM works with all registry types including cloud services, on-premises registri
2222

2323
Registry Access Management works with any container registry, including:
2424

25-
- Docker Hub (allowed by default)
26-
- Cloud registries: Amazon ECR, Google Container Registry, Azure Container Registry
25+
- Docker Hub (allowed by default)
26+
- Cloud registries: Amazon ECR, Google Artifact Registry, Azure Container Registry
2727
- Git-based registries: GitHub Container Registry, GitLab Container Registry
2828
- On-premises solutions: Nexus, Artifactory, Harbor
2929
- Registry mirrors: Including Docker Hub mirrors
@@ -32,14 +32,10 @@ Registry Access Management works with any container registry, including:
3232

3333
Before configuring Registry Access Management, you must:
3434

35-
- [Enforce sign-in](/manuals/enterprise/security/enforce-sign-in/_index.md) to ensure users authenticate with your organization
35+
- [Enforce sign-in](/manuals/enterprise/security/enforce-sign-in/_index.md). Registry Access Management only takes effect when users are signed in to Docker Desktop with organization credentials.
3636
- Use [personal access tokens (PATs)](/manuals/security/access-tokens.md) for authentication (Organization access tokens aren't supported)
3737
- Have a Docker Business subscription
3838

39-
> [!IMPORTANT]
40-
>
41-
> Registry Access Management only takes effect when users are signed in to Docker Desktop with organization credentials.
42-
4339
## Configure registry permissions
4440

4541
To configure registry permissions:
@@ -52,18 +48,16 @@ in the registry list.
5248
a **Registry address** and **Registry nickname**.
5349
1. Select **Create**. You can add up to 100 registries.
5450
1. Verify your registry appears in the registry list and select **Save changes**.
51+
>[!NOTE]
52+
>
53+
> Policy changes can take up to 24 hours to propagate. To apply changes immediately, ask developers to sign out and back in to Docker Desktop.
5554
56-
Changes can take up to 24 hours to take effect. To apply them sooner,
57-
have developers sign out and back in to Docker Desktop.
58-
59-
> [!IMPORTANT]
60-
>
61-
> Starting with Docker Desktop 4.36, if a developer belongs to multiple organizations with different RAM policies, only the policy for the first organization in the configuration file is enforced.
55+
If a developer belongs to multiple organizations with different RAM policies, only the policy for the first organization in the configuration file is enforced.
6256

6357
> [!TIP]
6458
>
6559
> RAM restrictions also apply to Dockerfile `ADD` instructions that fetch content via URL. Include trusted registry domains in your allowlist when using `ADD` with URLs.
66-
><br><br>
60+
>
6761
> RAM is designed for container registries, not general-purpose URLs like package mirrors or storage services. Adding too many domains may cause errors or hit system limits.
6862
6963

@@ -103,7 +97,7 @@ Registry Access Management has these limits and platform-specific behaviors:
10397
These scenarios are not restricted by Registry Access Management:
10498

10599
- Docker buildx with Kubernetes driver
106-
- Docker buildx with custom docker-container driver
100+
- Docker buildx with custom Docker-container driver
107101
- Some Docker Debug and Kubernetes image pulls (even if Docker Hub is blocked)
108102
- Images previously cached by registry mirrors may still be blocked if the source registry is restricted
109103

content/manuals/enterprise/security/hardened-desktop/settings-management/_index.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -56,7 +56,7 @@ When multiple policies exist, Docker Desktop applies them in this order:
5656
1. User-specific policies: Highest priority
5757
1. Organization default policy: Applied when no user-specific policy exists
5858
1. Local `admin-settings.json` file: Lowest priority, overridden by Admin Console policies
59-
1. [Configuration profiles](/manuals/enterprise/security/enforce-sign-in/methods.md#configuration-profiles-method-mac-only): Super-set of Docker Admin Console policies. Available with Docker Desktop version 4.48 and later.
59+
1. [Configuration profiles](/manuals/enterprise/security/enforce-sign-in/methods.md#configuration-profiles-method-mac-only): Super-set of Docker Admin Console policies.
6060

6161
## Set up Settings Management
6262

0 commit comments

Comments
 (0)