You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
<!--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
@@ -14,17 +15,13 @@ Air-gapped containers let you restrict container network access by controlling w
14
15
15
16
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.
16
17
17
-
This page provides an overview of air-gapped containers and configuration steps.
18
-
19
18
## Who should use air-gapped containers?
20
19
21
-
Air-gapped containers help organizations maintain security in restricted environments:
20
+
Use air-gapped containers if:
22
21
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
- 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
28
25
29
26
## How air-gapped containers work
30
27
@@ -47,8 +44,7 @@ Before configuring air-gapped containers, you must have:
47
44
48
45
-[Enforce sign-in](/manuals/enterprise/security/enforce-sign-in/_index.md) enabled to ensure users authenticate with your organization
49
46
- 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
52
48
53
49
## Configure air-gapped containers
54
50
@@ -144,8 +140,8 @@ function FindProxyForURL(url, host) {
144
140
145
141
### General considerations
146
142
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:
- PAC file management: Host PAC files on reliable internal infrastructure. Failed PAC downloads result in blocked container network access.
231
227
- Performance considerations: Complex PAC files with many rules may impact container network performance. Keep rules simple and efficient.
232
228
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)
@@ -23,7 +23,7 @@ With Image Access Management, you can restrict access to:
23
23
- Organization images: Your organization's private repositories
24
24
- Community images: Public images from individual developers
25
25
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.
27
27
28
28
## Who should use Image Access Management?
29
29
@@ -36,7 +36,7 @@ Common security scenarios include:
36
36
- Control access to commercial third-party images
37
37
- Maintain consistent security standards across development teams
38
38
39
-
Use the repository allow list when you need to:
39
+
Use the repository allowlist when you need to:
40
40
41
41
- Grant access to specific vetted community images
42
42
- 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:
46
46
47
47
Before configuring Image Access Management, you must:
48
48
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.
50
50
- Use [personal access tokens (PATs)](/manuals/security/access-tokens.md) for authentication (Organization access tokens aren't supported)
51
51
- Have a Docker Business subscription
52
52
53
-
> [!IMPORTANT]
54
-
>
55
-
> Image Access Management only takes effect when users are signed in to Docker Desktop with organization credentials.
56
-
57
53
## Configure image access
58
54
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
+
59
59
To configure Image Access Management:
60
60
61
61
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:
66
66
-**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.
67
67
-**Docker Verified Publisher Images**: Images from Docker partners in the Verified Publisher program, qualified for secure supply chains.
68
68
-**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
70
70
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,
72
72
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
76
76
the trashcan icon next to it.
77
77
78
78
Repositories in the allow list are accessible to all organization members regardless of the image type restrictions configured in the previous steps.
79
79
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.
85
81
86
82
## Verify access restrictions
87
83
@@ -103,23 +99,22 @@ Error response from daemon: image access denied: community images not allowed
103
99
104
100
Image access restrictions apply to all Docker Hub operations including pulls, builds using `FROM` instructions, and Docker Compose services.
105
101
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
116
103
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
117
109
- 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.
120
111
121
112
## Scope and bypass considerations
122
113
123
114
- 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.
124
115
- 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.
125
116
- 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.
@@ -32,14 +32,10 @@ Registry Access Management works with any container registry, including:
32
32
33
33
Before configuring Registry Access Management, you must:
34
34
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.
36
36
- Use [personal access tokens (PATs)](/manuals/security/access-tokens.md) for authentication (Organization access tokens aren't supported)
37
37
- Have a Docker Business subscription
38
38
39
-
> [!IMPORTANT]
40
-
>
41
-
> Registry Access Management only takes effect when users are signed in to Docker Desktop with organization credentials.
42
-
43
39
## Configure registry permissions
44
40
45
41
To configure registry permissions:
@@ -52,18 +48,16 @@ in the registry list.
52
48
a **Registry address** and **Registry nickname**.
53
49
1. Select **Create**. You can add up to 100 registries.
54
50
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.
55
54
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.
62
56
63
57
> [!TIP]
64
58
>
65
59
> 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
+
>
67
61
> 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.
68
62
69
63
@@ -103,7 +97,7 @@ Registry Access Management has these limits and platform-specific behaviors:
103
97
These scenarios are not restricted by Registry Access Management:
104
98
105
99
- Docker buildx with Kubernetes driver
106
-
- Docker buildx with custom docker-container driver
100
+
- Docker buildx with custom Docker-container driver
107
101
- Some Docker Debug and Kubernetes image pulls (even if Docker Hub is blocked)
108
102
- Images previously cached by registry mirrors may still be blocked if the source registry is restricted
Copy file name to clipboardExpand all lines: content/manuals/enterprise/security/hardened-desktop/settings-management/_index.md
+1-1Lines changed: 1 addition & 1 deletion
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -56,7 +56,7 @@ When multiple policies exist, Docker Desktop applies them in this order:
56
56
1. User-specific policies: Highest priority
57
57
1. Organization default policy: Applied when no user-specific policy exists
58
58
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.
0 commit comments