-
Notifications
You must be signed in to change notification settings - Fork 8.2k
hub: add namespace access control #23949
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: main
Are you sure you want to change the base?
Changes from all commits
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
This file was deleted.
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,90 @@ | ||
| --- | ||
| description: Learn about settings in Docker Hub | ||
| keywords: Docker Hub, Hub, repositories, settings | ||
| title: Settings | ||
| weight: 25 | ||
| --- | ||
|
|
||
| You can configure the following settings in Docker Hub: | ||
|
|
||
| - [Default privacy](#default-privacy): Settings for all repositories within each | ||
| namespace | ||
| - [Notifications](#notifications): Personal settings for autobuild notifications | ||
|
|
||
| ## Default privacy | ||
|
|
||
| You can configure the following default privacy settings for all repositories in | ||
| a namespace: | ||
|
|
||
| - [Configure disable public repositories](#configure-disable-public-repositories): Prevent | ||
| organization users from creating public repositories (organization namespaces | ||
| only) | ||
| - [Configure default repository privacy](#configure-default-repository-privacy): | ||
| Set the default repository privacy for new repositories | ||
|
|
||
|
|
||
| ### Configure disable public repositories | ||
|
|
||
| {{< summary-bar feature_name="Disable public repositories" >}} | ||
|
|
||
| Organization owners and editors can prevent creating public repositories within | ||
| organization namespaces. You cannot configure this setting for personal account | ||
| namespaces. | ||
|
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Can we add a sentence or callout like we have in the UI that enabling this feature does not affect existing repos? Ie if public repos already exist, enabling this will not make them private; they need to be made private in individual repo settings. |
||
|
|
||
| To configure the disable public repositories setting for an organization | ||
| namespace: | ||
|
|
||
| 1. Sign in to [Docker Hub](https://hub.docker.com). | ||
| 2. Select **My Hub**. | ||
| 3. Select your organization from the top-left account drop-down. | ||
| 4. Select **Settings** > **Default privacy**. | ||
| 5. Toggle **Disable public repositories** to your desired setting. | ||
| 6. Select **Save**. | ||
|
|
||
| ### Configure default repository privacy | ||
|
|
||
| The default repository privacy setting is useful if you or others in your | ||
| organization use the `docker push` command to push to a repository that doesn't | ||
| exist yet. In this case, Docker Hub automatically creates the repository with | ||
| the default repository privacy for that namespace. | ||
|
|
||
| > [!NOTE] | ||
| > | ||
| > You cannot configure the default repository privacy setting when **Disable | ||
| > public repositories** is enabled. | ||
|
|
||
| To configure the default repository privacy for a namespace: | ||
|
|
||
| 1. Sign in to [Docker Hub](https://hub.docker.com). | ||
| 2. Select **My Hub**. | ||
| 3. Select your organization or account from the top-left account drop-down. | ||
| 4. Select **Settings** > **Default privacy**. | ||
| 5. In **Default repository privacy**, select the desired default privacy setting: | ||
|
|
||
| - **Public**: All new repositories appear in Docker Hub search results and can be | ||
| pulled by everyone. | ||
| - **Private**: All new repositories don't appear in Docker Hub search results | ||
| and are only accessible to you and collaborators. In addition, if the | ||
| repository is created in an organization's namespace, then the repository | ||
| is accessible to those with applicable roles or permissions. | ||
|
|
||
| 6. Select **Save**. | ||
|
|
||
| ## Notifications | ||
|
|
||
| You can send notifications to your email for all your repositories using | ||
| autobuilds. | ||
|
|
||
| ### Configure autobuild notifications | ||
|
|
||
| 1. Sign in to [Docker Hub](https://hub.docker.com). | ||
| 2. Select **My Hub**. | ||
| 3. Select your personal account from the top-left account drop-down. | ||
| 4. Select **Settings** > **Notifications**. | ||
| 5. Select the notifications to receive by email: | ||
|
|
||
| - **Off**: No notifications. | ||
| - **Only failures**: Only notifications about failed builds. | ||
| - **Everything**: Notifications for successful and failed builds. | ||
|
|
||
| 6. Select **Save**. | ||
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,53 @@ | ||
| --- | ||
| title: Namespace access control | ||
| linkTitle: Namespace access | ||
| description: Control whether organization members can push content to their personal namespaces on Docker Hub | ||
| keywords: namespace access, docker hub, personal namespace, organization security, docker business | ||
| tags: [admin] | ||
| weight: 50 | ||
| --- | ||
|
|
||
| {{< summary-bar feature_name="Namespace access" >}} | ||
|
|
||
| Namespace access control lets organization administrators control whether all | ||
| members of an organization can push content to their personal namespaces on | ||
| Docker Hub. This helps organizations prevent developers from accidentally | ||
| publishing images outside of approved, governed locations. | ||
|
|
||
| When namespace access control is enabled, affected users can still view and pull images | ||
| from their personal namespaces and continue accessing all existing repositories | ||
| and content. However, they will no longer be able to create new repositories or | ||
| push new images to their personal namespace. | ||
|
|
||
| > [!IMPORTANT] | ||
| > | ||
| > For users in multiple organizations, if namespace access control is enabled in | ||
| > any organization, that user cannot push to their personal namespace and cannot | ||
| > create new repositories in their personal namespace. | ||
|
|
||
| ### Configure namespace access control | ||
|
|
||
| To configure namespace access control: | ||
|
|
||
| 1. Sign in to [Docker Home](https://app.docker.com/) and select your | ||
| organization from the top-left account drop-down. | ||
| 2. Select **Admin Console**, then **Namespace access**. | ||
| 3. Use the toggle to enable or disable namespace access control. | ||
| 4. Select **Save changes**. | ||
|
|
||
| Once namespace access control is enabled, organization members can still view their | ||
| personal namespace and existing repositories but they will not be able to create | ||
| any new repositories or push any new images to existing repositories. | ||
|
|
||
| ### Verify access restrictions | ||
|
|
||
| After configuring namespace access control, test that restrictions work correctly. | ||
|
|
||
| After any attempt to push to an existing repository in your personal namespace, | ||
| you'll see an error message like the following: | ||
|
|
||
| ```console | ||
| $ docker push <personal-namespace>/<image>:<tag> | ||
| Unavailable | ||
| 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 | ||
| ``` |
| Original file line number | Diff line number | Diff line change |
|---|---|---|
|
|
@@ -39,6 +39,7 @@ These permissions apply organization-wide, including all repositories in your or | |
| | Edit and delete publisher repository logos | ❌ | ✅ | ✅ | | ||
| | Observe content engagement as a publisher | ❌ | ❌ | ✅ | | ||
| | Create public and private repositories | ❌ | ✅ | ✅ | | ||
| | Disable public repositories | ❌ | ✅ | ✅ | | ||
|
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Only Business |
||
| | Edit and delete repositories | ❌ | ✅ | ✅ | | ||
| | Manage tags | ❌ | ✅ | ✅ | | ||
| | View repository activity | ❌ | ❌ | ✅ | | ||
|
|
@@ -68,6 +69,7 @@ beyond their organization role: | |
| | Export and reporting | ❌ | ❌ | ✅ | | ||
| | Image Access Management | ❌ | ❌ | ✅ | | ||
| | Registry Access Management | ❌ | ❌ | ✅ | | ||
| | Namespace access control | ❌ | ❌ | ✅ | | ||
| | Set up Single Sign-On (SSO) and SCIM | ❌ | ❌ | ✅ \* | | ||
| | Require Docker Desktop sign-in | ❌ | ❌ | ✅ \* | | ||
| | Manage billing information (for example, billing address) | ❌ | ❌ | ✅ | | ||
|
|
||
| Original file line number | Diff line number | Diff line change |
|---|---|---|
|
|
@@ -218,8 +218,14 @@ GitHub Actions cache: | |
| Hardened Docker Desktop: | ||
| subscription: [Business] | ||
| for: Administrators | ||
| Disable public repositories: | ||
| subscription: [Team, Business] | ||
|
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Only Business for both features |
||
| for: Administrators | ||
| Image management: | ||
| availability: Beta | ||
| Namespace access: | ||
| subscription: [Business] | ||
| for: Administrators | ||
| Immutable tags: | ||
| availability: Beta | ||
| Import builds: | ||
|
|
||
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Can we exclude "configure" and just make it "Disable creation of public repos"?