Skip to content

Update access.md #22505

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

Merged
merged 6 commits into from
May 14, 2025
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
39 changes: 39 additions & 0 deletions content/manuals/docker-hub/repos/manage/access.md
Original file line number Diff line number Diff line change
Expand Up @@ -132,3 +132,42 @@
Organizations can use OATs. OATs let you assign fine-grained repository access
permissions to tokens. For more details, see [Organization access
tokens](/manuals/security/for-admins/access-tokens.md).

## Gated distribution

{{< summary-bar feature_name="Gated distribution" >}}

Gated distribution allows publishers to securely share private container images with external customers or partners, without giving them full organization access or visibility into your teams, collaborators, or other repositories.

This feature is ideal for commercial software publishers who want to control who can pull specific images while preserving a clean separation between internal users and external consumers.

### Key features

- **Private repository distribution**: Content is stored in private repositories and only accessible to explicitly invited users.

- **External access without organization membership**: External users don't need to be added to your internal organization to pull images.

- **Pull-only permissions**: External users receive pull-only access and cannot push or modify repository content.

- **Invite-only access**: Access is granted through authenticated email invites, managed via API.

### Invite distributor members via API

> [!NOTE]
> When you invite members, you assign them a role. See [Roles and permissions](/manuals/security/for-admins/roles-and-permissions.md) for details about the access permissions for each role.

Distributor members (used for gated distribution) can only be invited using the Docker Hub API. UI-based invitations are not currently supported for this role. To invite distributor members, use the Bulk create invites API endpoint.

Check warning on line 159 in content/manuals/docker-hub/repos/manage/access.md

View workflow job for this annotation

GitHub Actions / vale

[vale] reported by reviewdog 🐶 [Docker.Acronyms] 'UI' has no definition. Raw Output: {"message": "[Docker.Acronyms] 'UI' has no definition.", "location": {"path": "content/manuals/docker-hub/repos/manage/access.md", "range": {"start": {"line": 159, "column": 97}}}, "severity": "WARNING"}

To invite distributor members:

1. Use the [Authentication API](https://docs.docker.com/reference/api/hub/latest/#tag/authentication-api/operation/AuthCreateAccessToken) to generate a bearer token for your Docker Hub account.

2. Create a team in the Hub UI or use the [Teams API](https://docs.docker.com/reference/api/hub/latest/#tag/groups/paths/~1v2~1orgs~1%7Borg_name%7D~1groups/post).

Check warning on line 165 in content/manuals/docker-hub/repos/manage/access.md

View workflow job for this annotation

GitHub Actions / vale

[vale] reported by reviewdog 🐶 [Docker.Acronyms] 'UI' has no definition. Raw Output: {"message": "[Docker.Acronyms] 'UI' has no definition.", "location": {"path": "content/manuals/docker-hub/repos/manage/access.md", "range": {"start": {"line": 165, "column": 29}}}, "severity": "WARNING"}

3. Grant repository access to the team:
- In the Hub UI: Navigate to your repository settings and add the team with "Read-only" permissions

Check warning on line 168 in content/manuals/docker-hub/repos/manage/access.md

View workflow job for this annotation

GitHub Actions / vale

[vale] reported by reviewdog 🐶 [Docker.Acronyms] 'UI' has no definition. Raw Output: {"message": "[Docker.Acronyms] 'UI' has no definition.", "location": {"path": "content/manuals/docker-hub/repos/manage/access.md", "range": {"start": {"line": 168, "column": 17}}}, "severity": "WARNING"}
- Using the [Repository Teams API](https://docs.docker.com/reference/api/hub/latest/#tag/repositories/paths/~1v2~1repositories~1%7Bnamespace%7D~1%7Brepository%7D~1groups/post): Assign the team to your repositories with "read-only" access level

4. Use the [Bulk create invites endpoint](https://docs.docker.com/reference/api/hub/latest/#tag/invites/paths/~1v2~1invites~1bulk/post) to send email invites with the distributor member role. In the request body, set the "role" field to "distributor_member".

Check failure on line 171 in content/manuals/docker-hub/repos/manage/access.md

View workflow job for this annotation

GitHub Actions / vale

[vale] reported by reviewdog 🐶 [Vale.Spelling] Did you really mean 'distributor_member'? Raw Output: {"message": "[Vale.Spelling] Did you really mean 'distributor_member'?", "location": {"path": "content/manuals/docker-hub/repos/manage/access.md", "range": {"start": {"line": 171, "column": 239}}}, "severity": "ERROR"}

5. The invited user will receive an email with a link to accept the invite. After signing in with their Docker ID, they'll be granted pull-only access to the specified private repository as a distributor member.
2 changes: 2 additions & 0 deletions data/summary.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -166,6 +166,8 @@ Domain audit:
Enforce sign-in:
subscription: [Business]
for: Administrators
Gated distribution:
availability: Early Access
General admin:
for: Administrators
GitHub Actions cache:
Expand Down