Skip to content

Commit ac49898

Browse files
hub: add namespace access control
Signed-off-by: Craig Osterhout <craig.osterhout@docker.com>
1 parent 539b93e commit ac49898

File tree

10 files changed

+175
-56
lines changed

10 files changed

+175
-56
lines changed

content/manuals/docker-hub/_index.md

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,10 @@ grid:
2020
or the Docker community.
2121
icon: inbox
2222
link: /docker-hub/repos
23+
- title: Settings
24+
description: Learn about settings in Docker Hub.
25+
icon: settings
26+
link: /docker-hub/settings
2327
- title: Organizations
2428
description: Learn about organization administration.
2529
icon: store

content/manuals/docker-hub/release-notes.md

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,14 @@ tags: [Release notes]
1313
Here you can learn about the latest changes, new features, bug fixes, and
1414
known issues for each Docker Hub release.
1515

16+
## 2026-02-05
17+
18+
### New
19+
20+
- Administrators can now prevent creating public repositories within
21+
organization namespaces using the [Disable public
22+
repositories](./settings.md#configure-disable-public-repositories) setting.
23+
1624
## 2025-02-18
1725

1826
### New

content/manuals/docker-hub/repos/_index.md

Lines changed: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -53,7 +53,4 @@ In this section, learn how to:
5353
accessing analytics, and enabling vulnerability scanning.
5454

5555
- [Archive](./archive.md) an outdated or unsupported repository.
56-
- [Delete](./delete.md) a repository.
57-
- [Manage personal settings](./settings.md): For your account, you can set personal
58-
settings for repositories, including default repository privacy and autobuild
59-
notifications.
56+
- [Delete](./delete.md) a repository.

content/manuals/docker-hub/repos/settings.md

Lines changed: 0 additions & 52 deletions
This file was deleted.
Lines changed: 90 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,90 @@
1+
---
2+
description: Learn about settings in Docker Hub
3+
keywords: Docker Hub, Hub, repositories, settings
4+
title: Settings
5+
weight: 25
6+
---
7+
8+
You can configure the following settings in Docker Hub:
9+
10+
- [Default privacy](#default-privacy): Settings for all repositories within each
11+
namespace
12+
- [Notifications](#notifications): Personal settings for autobuild notifications
13+
14+
## Default privacy
15+
16+
You can configure the following default privacy settings for all repositories in
17+
a namespace:
18+
19+
- [Configure disable public repositories](#configure-disable-public-repositories): Prevent
20+
organization users from creating public repositories (organization namespaces
21+
only)
22+
- [Configure default repository privacy](#configure-default-repository-privacy):
23+
Set the default repository privacy for new repositories
24+
25+
26+
### Configure disable public repositories
27+
28+
{{< summary-bar feature_name="Disable public repositories" >}}
29+
30+
Organization owners and editors can prevent creating public repositories within
31+
organization namespaces. You cannot configure this setting for personal account
32+
namespaces.
33+
34+
To configure the disable public repositories setting for an organization
35+
namespace:
36+
37+
1. Sign in to [Docker Hub](https://hub.docker.com).
38+
2. Select **My Hub**.
39+
3. Select your organization from the top-left account drop-down.
40+
4. Select **Settings** > **Default privacy**.
41+
5. Toggle **Disable public repositories** to your desired setting.
42+
6. Select **Save**.
43+
44+
### Configure default repository privacy
45+
46+
The default repository privacy setting is useful if you or others in your
47+
organization use the `docker push` command to push to a repository that doesn't
48+
exist yet. In this case, Docker Hub automatically creates the repository with
49+
the default repository privacy for that namespace.
50+
51+
> [!NOTE]
52+
>
53+
> You cannot configure the default repository privacy setting when **Disable
54+
> public repositories** is enabled.
55+
56+
To configure the default repository privacy for a namespace:
57+
58+
1. Sign in to [Docker Hub](https://hub.docker.com).
59+
2. Select **My Hub**.
60+
3. Select your organization or account from the top-left account drop-down.
61+
4. Select **Settings** > **Default privacy**.
62+
5. In **Default repository privacy**, select the desired default privacy setting:
63+
64+
- **Public**: All new repositories appear in Docker Hub search results and can be
65+
pulled by everyone.
66+
- **Private**: All new repositories don't appear in Docker Hub search results
67+
and are only accessible to you and collaborators. In addition, if the
68+
repository is created in an organization's namespace, then the repository
69+
is accessible to those with applicable roles or permissions.
70+
71+
6. Select **Save**.
72+
73+
## Notifications
74+
75+
You can send notifications to your email for all your repositories using
76+
autobuilds.
77+
78+
### Configure autobuild notifications
79+
80+
1. Sign in to [Docker Hub](https://hub.docker.com).
81+
2. Select **My Hub**.
82+
3. Select your personal account from the top-left account drop-down.
83+
4. Select **Settings** > **Notifications**.
84+
5. Select the notifications to receive by email:
85+
86+
- **Off**: No notifications.
87+
- **Only failures**: Only notifications about failed builds.
88+
- **Everything**: Notifications for successful and failed builds.
89+
90+
6. Select **Save**.

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

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,10 @@ grid:
2828
description: Restrict containers from accessing unwanted network resources.
2929
icon: "vpn_lock"
3030
link: /enterprise/security/hardened-desktop/air-gapped-containers/
31+
- title: "Namespace access"
32+
description: Control whether organization members can push content to their personal namespaces.
33+
icon: "folder_managed"
34+
link: /enterprise/security/hardened-desktop/namespace-access/
3135
weight: 60
3236
---
3337

@@ -52,6 +56,7 @@ Hardened Docker Desktop features work independently and together to create a def
5256
- Registry Access Management and Image Access Management prevent access to unauthorized container registries and image types, reducing exposure to malicious payloads
5357
- Enhanced Container Isolation runs containers without root privileges inside a Linux user namespace, limiting the impact of malicious containers
5458
- Air-gapped containers let you configure network restrictions for containers, preventing malicious containers from accessing your organization's internal network resources
59+
- Namespace access controls whether organization members can push content to their personal Docker Hub namespaces, preventing accidental publication of images outside approved locations
5560
- Settings Management locks down Docker Desktop configurations to enforce company policies and prevent developers from introducing insecure settings, whether intentionally or accidentally
5661

5762
## Next steps
Lines changed: 53 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,53 @@
1+
---
2+
title: Namespace access control
3+
linkTitle: Namespace access
4+
description: Control whether organization members can push content to their personal namespaces on Docker Hub
5+
keywords: namespace access, docker hub, personal namespace, organization security, docker business
6+
tags: [admin]
7+
weight: 50
8+
---
9+
10+
{{< summary-bar feature_name="Namespace access" >}}
11+
12+
Namespace access control lets organization administrators control whether all
13+
members of an organization can push content to their personal namespaces on
14+
Docker Hub. This helps organizations prevent developers from accidentally
15+
publishing images outside of approved, governed locations.
16+
17+
When namespace access control is enabled, affected users can still view and pull images
18+
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
20+
push new images to their personal namespace.
21+
22+
> [!IMPORTANT]
23+
>
24+
> For users in multiple organizations, if namespace access control is enabled in
25+
> any organization, that user cannot push to their personal namespace and cannot
26+
> create new repositories in their personal namespace.
27+
28+
### Configure namespace access control
29+
30+
To configure namespace access control:
31+
32+
1. Sign in to [Docker Home](https://app.docker.com/) and select your
33+
organization from the top-left account drop-down.
34+
2. Select **Admin Console**, then **Namespace access**.
35+
3. Use the toggle to enable or disable namespace access control.
36+
4. Select **Save changes**.
37+
38+
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
40+
any new repositories or push any new images to existing repositories.
41+
42+
### Verify access restrictions
43+
44+
After configuring namespace access control, test that restrictions work correctly.
45+
46+
After any attempt to push to an existing repository in your personal namespace,
47+
you'll see an error message like the following:
48+
49+
```console
50+
$ docker push <personal-namespace>/<image>:<tag>
51+
Unavailable
52+
authentication required - namespace access restriction from an organization you belong to prevents pushing new content in your personal namespace. Restriction applied by: <organizations>. Please contact your organization administrator
53+
```

content/manuals/enterprise/security/roles-and-permissions/core-roles.md

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -39,6 +39,7 @@ These permissions apply organization-wide, including all repositories in your or
3939
| Edit and delete publisher repository logos ||||
4040
| Observe content engagement as a publisher ||||
4141
| Create public and private repositories ||||
42+
| Disable public repositories ||||
4243
| Edit and delete repositories ||||
4344
| Manage tags ||||
4445
| View repository activity ||||
@@ -68,6 +69,7 @@ beyond their organization role:
6869
| Export and reporting ||||
6970
| Image Access Management ||||
7071
| Registry Access Management ||||
72+
| Namespace access control ||||
7173
| Set up Single Sign-On (SSO) and SCIM |||\* |
7274
| Require Docker Desktop sign-in |||\* |
7375
| Manage billing information (for example, billing address) ||||

content/manuals/platform-release-notes.md

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,12 @@ tags: [Release notes, admin]
1212

1313
This page provides details on new features, enhancements, known issues, and bug fixes across Docker Home, the Admin Console, billing, security, and subscription functionalities.
1414

15+
## 2026-02-05
16+
17+
### New
18+
19+
- Administrators can now control whether organization members can push content to their personal namespaces on Docker Hub with [namespace access control](/manuals/enterprise/security/hardened-desktop/namespace-access.md).
20+
1521
## 2026-01-27
1622

1723
### New

data/summary.yaml

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -218,8 +218,14 @@ GitHub Actions cache:
218218
Hardened Docker Desktop:
219219
subscription: [Business]
220220
for: Administrators
221+
Disable public repositories:
222+
subscription: [Team, Business]
223+
for: Administrators
221224
Image management:
222225
availability: Beta
226+
Namespace access:
227+
subscription: [Business]
228+
for: Administrators
223229
Immutable tags:
224230
availability: Beta
225231
Import builds:

0 commit comments

Comments
 (0)