From 5d12cf6a70ca3509b4cd3dd8da675c183c673a9a Mon Sep 17 00:00:00 2001 From: Craig Osterhout <103533812+craig-osterhout@users.noreply.github.com> Date: Thu, 21 Nov 2024 10:35:40 -0800 Subject: [PATCH] hub: refresh/restructure repo content (#21435) ## Description Started refreshing and reorganizing the Hub manual. - Moved & rearranged the content from "Docker Hub > Manage repositories" to "Docker Hub > Repositories > Manage" with the following sections: - repo info: description, overview, categories - access: visibility, collaborators, teams/permissions, roles, OATs - images: tags, software artifacts, push images, move images - Moved the repository features (automated builds, webhooks, vulnerability scanning) under "Repositories > Manage". - Moved/added Create, Delete, and Personal settings to top-level of Repositories - Filled in some content gaps https://deploy-preview-21435--docsdocker.netlify.app/docker-hub/repos/ ## Related issues or tickets ENGDOCS-2227 ## Reviews - [ ] Technical review - [ ] Editorial review - [ ] Product review --------- Signed-off-by: Craig --- _vale/Docker/RecommendedWords.yml | 1 - _vale/config/vocabularies/Docker/accept.txt | 1 - content/guides/jupyter.md | 2 +- .../accounts/deactivate-user-account.md | 2 +- content/manuals/admin/deactivate-account.md | 2 +- .../previous-versions/edge-releases-mac.md | 2 +- .../edge-releases-windows.md | 2 +- .../troubleshoot-and-support/faqs/general.md | 2 +- .../manuals/desktop/use-desktop/volumes.md | 10 +- .../docker-hub/builds/images/index-report.png | Bin 155867 -> 0 bytes content/manuals/docker-hub/quickstart.md | 9 +- content/manuals/docker-hub/release-notes.md | 6 +- content/manuals/docker-hub/repos/_index.md | 112 ++++------- content/manuals/docker-hub/repos/access.md | 89 --------- .../manuals/docker-hub/repos/categories.md | 70 ------- content/manuals/docker-hub/repos/create.md | 102 ++++------ content/manuals/docker-hub/repos/delete.md | 27 +++ .../manuals/docker-hub/repos/manage/_index.md | 6 + .../manuals/docker-hub/repos/manage/access.md | 134 +++++++++++++ .../{ => repos/manage}/builds/_index.md | 5 +- .../{ => repos/manage}/builds/advanced.md | 4 +- .../manage}/builds/automated-testing.md | 6 +- .../manage}/builds/how-builds-work.md | 4 +- .../builds/images/authorize-builder.png | Bin .../builds/images/bitbucket-revoke.png | Bin .../builds/images/build-cancelicon.png | Bin .../images/docker-hub-repo-settings-menu.png | Bin .../manage}/builds/images/index-active.png | Bin .../manage}/builds/images/index-dashboard.png | Bin .../manage/builds}/images/index-report.png | Bin .../manage}/builds/images/retry-build.png | Bin .../{ => repos/manage}/builds/link-source.md | 6 +- .../manage}/builds/manage-builds.md | 7 +- .../{ => repos/manage}/builds/troubleshoot.md | 4 +- .../repos/manage/hub-images/_index.md | 31 +++ .../hub-images}/images/oci-artifact.png | Bin .../hub-images}/images/oci-helm-tagview.png | Bin .../manage/hub-images}/images/oci-helm.png | Bin .../manage/hub-images}/images/oci-volume.png | Bin .../repos/manage/hub-images/move.md | 63 ++++++ .../manage/hub-images}/oci-artifacts.md | 14 +- .../repos/manage/hub-images/push.md | 44 +++++ .../repos/manage/hub-images/tags.md | 70 +++++++ .../manage}/images/vuln-scan-details.png | Bin .../manage}/images/vuln-scan-report.png | Bin .../docker-hub/repos/manage/information.md | 187 ++++++++++++++++++ .../manage}/vulnerability-scanning.md | 161 +++++++++------ .../docker-hub/{ => repos/manage}/webhooks.md | 4 +- content/manuals/docker-hub/repos/settings.md | 55 ++++++ content/manuals/registry.md | 2 +- content/manuals/security/_index.md | 2 +- .../security/security-announcements.md | 4 +- .../subscription/core-subscription/details.md | 10 +- .../manuals/trusted-content/dvp-program.md | 2 +- 54 files changed, 856 insertions(+), 408 deletions(-) delete mode 100644 content/manuals/docker-hub/builds/images/index-report.png delete mode 100644 content/manuals/docker-hub/repos/access.md delete mode 100644 content/manuals/docker-hub/repos/categories.md create mode 100644 content/manuals/docker-hub/repos/delete.md create mode 100644 content/manuals/docker-hub/repos/manage/_index.md create mode 100644 content/manuals/docker-hub/repos/manage/access.md rename content/manuals/docker-hub/{ => repos/manage}/builds/_index.md (99%) rename content/manuals/docker-hub/{ => repos/manage}/builds/advanced.md (98%) rename content/manuals/docker-hub/{ => repos/manage}/builds/automated-testing.md (96%) rename content/manuals/docker-hub/{ => repos/manage}/builds/how-builds-work.md (94%) rename content/manuals/docker-hub/{ => repos/manage}/builds/images/authorize-builder.png (100%) rename content/manuals/docker-hub/{ => repos/manage}/builds/images/bitbucket-revoke.png (100%) rename content/manuals/docker-hub/{ => repos/manage}/builds/images/build-cancelicon.png (100%) rename content/manuals/docker-hub/{ => repos/manage/builds}/images/docker-hub-repo-settings-menu.png (100%) rename content/manuals/docker-hub/{ => repos/manage}/builds/images/index-active.png (100%) rename content/manuals/docker-hub/{ => repos/manage}/builds/images/index-dashboard.png (100%) rename content/manuals/docker-hub/{ => repos/manage/builds}/images/index-report.png (100%) rename content/manuals/docker-hub/{ => repos/manage}/builds/images/retry-build.png (100%) rename content/manuals/docker-hub/{ => repos/manage}/builds/link-source.md (96%) rename content/manuals/docker-hub/{ => repos/manage}/builds/manage-builds.md (92%) rename content/manuals/docker-hub/{ => repos/manage}/builds/troubleshoot.md (97%) create mode 100644 content/manuals/docker-hub/repos/manage/hub-images/_index.md rename content/manuals/docker-hub/{ => repos/manage/hub-images}/images/oci-artifact.png (100%) rename content/manuals/docker-hub/{ => repos/manage/hub-images}/images/oci-helm-tagview.png (100%) rename content/manuals/docker-hub/{ => repos/manage/hub-images}/images/oci-helm.png (100%) rename content/manuals/docker-hub/{ => repos/manage/hub-images}/images/oci-volume.png (100%) create mode 100644 content/manuals/docker-hub/repos/manage/hub-images/move.md rename content/manuals/docker-hub/{ => repos/manage/hub-images}/oci-artifacts.md (91%) create mode 100644 content/manuals/docker-hub/repos/manage/hub-images/push.md create mode 100644 content/manuals/docker-hub/repos/manage/hub-images/tags.md rename content/manuals/docker-hub/{ => repos/manage}/images/vuln-scan-details.png (100%) rename content/manuals/docker-hub/{ => repos/manage}/images/vuln-scan-report.png (100%) create mode 100644 content/manuals/docker-hub/repos/manage/information.md rename content/manuals/docker-hub/{ => repos/manage}/vulnerability-scanning.md (57%) rename content/manuals/docker-hub/{ => repos/manage}/webhooks.md (98%) create mode 100644 content/manuals/docker-hub/repos/settings.md diff --git a/_vale/Docker/RecommendedWords.yml b/_vale/Docker/RecommendedWords.yml index ed308ac9b5..2721e0881f 100644 --- a/_vale/Docker/RecommendedWords.yml +++ b/_vale/Docker/RecommendedWords.yml @@ -37,7 +37,6 @@ swap: keypress: keystroke mutices: mutexes repo: repository - scan: analyze scroll: navigate url: URL vs: versus diff --git a/_vale/config/vocabularies/Docker/accept.txt b/_vale/config/vocabularies/Docker/accept.txt index 690a930219..0c2dbff705 100644 --- a/_vale/config/vocabularies/Docker/accept.txt +++ b/_vale/config/vocabularies/Docker/accept.txt @@ -144,7 +144,6 @@ minikube monorepos? musl nameserver -namespace npm osquery osxfs diff --git a/content/guides/jupyter.md b/content/guides/jupyter.md index 67ea349f21..3f78c73a78 100644 --- a/content/guides/jupyter.md +++ b/content/guides/jupyter.md @@ -382,7 +382,7 @@ $ docker run --rm -p 8889:8888 YOUR-USER-NAME/my-jupyter-image start-notebook.py ### Share your volume -This example uses the Docker Desktop graphical user interface. Alternatively, in the command line interface you can [back up the volume](/engine/storage/volumes/#back-up-a-volume) and then [push it using the ORAS CLI](/manuals/docker-hub/oci-artifacts.md#push-a-volume). +This example uses the Docker Desktop graphical user interface. Alternatively, in the command line interface you can [back up the volume](/engine/storage/volumes/#back-up-a-volume) and then [push it using the ORAS CLI](/manuals/docker-hub/repos/manage/hub-images/oci-artifacts.md#push-a-volume). 1. Sign in to Docker Desktop. 2. In the Docker Dashboard, select **Volumes**. diff --git a/content/manuals/accounts/deactivate-user-account.md b/content/manuals/accounts/deactivate-user-account.md index 685627e235..35791e2177 100644 --- a/content/manuals/accounts/deactivate-user-account.md +++ b/content/manuals/accounts/deactivate-user-account.md @@ -32,7 +32,7 @@ Before deactivating your Docker account, ensure you meet the following requireme - Download any images and tags you want to keep. Use `docker pull -a :`. -- Unlink your [GitHub and Bitbucket accounts](../docker-hub/builds/link-source.md#unlink-a-github-user-account). +- Unlink your [GitHub and Bitbucket accounts](../docker-hub/repos/manage/builds/link-source.md#unlink-a-github-user-account). ## Deactivate diff --git a/content/manuals/admin/deactivate-account.md b/content/manuals/admin/deactivate-account.md index 73f2b00d3e..42193d2c0f 100644 --- a/content/manuals/admin/deactivate-account.md +++ b/content/manuals/admin/deactivate-account.md @@ -25,7 +25,7 @@ Before deactivating an organization, complete the following: - Remove all other members within the organization. -- Unlink your [Github and Bitbucket accounts](../docker-hub/builds/link-source.md#unlink-a-github-user-account). +- Unlink your [Github and Bitbucket accounts](../docker-hub/repos/manage/builds/link-source.md#unlink-a-github-user-account). ## Deactivate diff --git a/content/manuals/desktop/previous-versions/edge-releases-mac.md b/content/manuals/desktop/previous-versions/edge-releases-mac.md index 610f9f44e3..60a9bccf7f 100644 --- a/content/manuals/desktop/previous-versions/edge-releases-mac.md +++ b/content/manuals/desktop/previous-versions/edge-releases-mac.md @@ -82,7 +82,7 @@ This release contains a Kubernetes upgrade. Note that your local Kubernetes clus ### New -- If you have enabled [Vulnerability Scanning](/docker-hub/vulnerability-scanning/) in Docker Hub, the scan results will now appear in Docker Desktop. +- If you have enabled [Vulnerability Scanning](/docker-hub/repos/manage/vulnerability-scanning/) in Docker Hub, the scan results will now appear in Docker Desktop. ### Upgrades diff --git a/content/manuals/desktop/previous-versions/edge-releases-windows.md b/content/manuals/desktop/previous-versions/edge-releases-windows.md index b29e0c4df1..ab7f67c782 100644 --- a/content/manuals/desktop/previous-versions/edge-releases-windows.md +++ b/content/manuals/desktop/previous-versions/edge-releases-windows.md @@ -74,7 +74,7 @@ This release contains a Kubernetes upgrade. Note that your local Kubernetes clus ### New -- If you have enabled [Vulnerability Scanning](../../docker-hub/vulnerability-scanning.md) in Docker Hub, the scan results will now appear in Docker Desktop. +- If you have enabled [Vulnerability Scanning](../../docker-hub/repos/manage/vulnerability-scanning.md) in Docker Hub, the scan results will now appear in Docker Desktop. ### Upgrades diff --git a/content/manuals/desktop/troubleshoot-and-support/faqs/general.md b/content/manuals/desktop/troubleshoot-and-support/faqs/general.md index 4962c2807a..4f2e69edf7 100644 --- a/content/manuals/desktop/troubleshoot-and-support/faqs/general.md +++ b/content/manuals/desktop/troubleshoot-and-support/faqs/general.md @@ -22,7 +22,7 @@ This includes: - The resources in the [Learning Center](/manuals/desktop/use-desktop/_index.md) - Pulling or pushing an image to Docker Hub - [Image Access Management](/manuals/security/for-developers/access-tokens.md) -- [Static vulnerability scanning](/manuals/docker-hub/vulnerability-scanning.md) +- [Static vulnerability scanning](/manuals/docker-hub/repos/manage/vulnerability-scanning.md) - Viewing remote images in the Docker Dashboard - Setting up [Dev Environments](/manuals/desktop/features/dev-environments/_index.md) - Docker Build when using [BuildKit](/manuals/build/buildkit/_index.md#getting-started). diff --git a/content/manuals/desktop/use-desktop/volumes.md b/content/manuals/desktop/use-desktop/volumes.md index c137b82606..57d56cebef 100644 --- a/content/manuals/desktop/use-desktop/volumes.md +++ b/content/manuals/desktop/use-desktop/volumes.md @@ -144,10 +144,7 @@ You can either [export a volume now](#export-a-volume-now) or [schedule a recurr - **Local image**: Select a local image to export the content to. Any existing data in the image will be replaced by the exported content. - **New image**: Specify a name for the new image. - - **Registry**: Specify a Docker Hub repository. Note that Docker Hub - repositories can be publicly accessible which means your data can be - publicly accessible. For more details, see - [Change a repository from public to private](/docker-hub/repos/#change-a-repository-from-public-to-private). + - **Registry**: Specify a Docker Hub repository. {{< /tab >}} {{< tab name="External cloud storage" >}} @@ -193,10 +190,7 @@ You can either [export a volume now](#export-a-volume-now) or [schedule a recurr - **Local image**: Select a local image to export the content to. Any existing data in the image will be replaced by the exported content. - **New image**: Specify a name for the new image. - - **Registry**: Specify a Docker Hub repository. Note that Docker Hub - repositories can be publicly accessible which means your data can be - publicly accessible. For more details, see - [Change a repository from public to private](/docker-hub/repos/#change-a-repository-from-public-to-private). + - **Registry**: Specify a Docker Hub repository. {{< /tab >}} {{< tab name="External cloud storage" >}} diff --git a/content/manuals/docker-hub/builds/images/index-report.png b/content/manuals/docker-hub/builds/images/index-report.png deleted file mode 100644 index 03b7c4a423b1fcb456a7f2841531106bfc3d36ef..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 155867 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Î!fZl0-lJ6$KHNAAh5<0s2V+AS!k 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 diff --git a/content/manuals/docker-hub/quickstart.md b/content/manuals/docker-hub/quickstart.md index 23deb626c9..91e3a37e37 100644 --- a/content/manuals/docker-hub/quickstart.md +++ b/content/manuals/docker-hub/quickstart.md @@ -217,9 +217,6 @@ these options. ## Next steps -- Automatically build container images from code through - [builds](builds/_index.md). -- Use [webhooks](./webhooks.md) to cause an action in another service in - response to a push event in the repository. -- Manage [repository settings](./repos/_index.md) to set the default privacy for - your repositories. \ No newline at end of file +Add [repository information](./repos/manage/information.md) to help users find and use +your image. + diff --git a/content/manuals/docker-hub/release-notes.md b/content/manuals/docker-hub/release-notes.md index 4b307927e5..2f8c1e17c2 100644 --- a/content/manuals/docker-hub/release-notes.md +++ b/content/manuals/docker-hub/release-notes.md @@ -31,7 +31,7 @@ Take a look at the [Docker Public Roadmap](https://github.com/orgs/docker/projec ### New - - You can tag Docker Hub repositories with [categories](./repos/categories.md). + - You can tag Docker Hub repositories with [categories](./repos/manage/information.md#repository-categories). ## 2023-12-11 @@ -80,7 +80,7 @@ Take a look at the [Docker Public Roadmap](https://github.com/orgs/docker/projec ### New -- The new [autobuild feature](../docker-hub/builds/manage-builds.md#check-your-active-builds) lets you view your in-progress logs every 30 seconds instead of when the build is complete. +- The new [autobuild feature](../docker-hub/repos/manage/builds/manage-builds.md#check-your-active-builds) lets you view your in-progress logs every 30 seconds instead of when the build is complete. ## 2022-09-21 @@ -191,7 +191,7 @@ For more information about this feature and for instructions on how to use it, s ### New feature -The **Repositories** view now shows which images have gone stale because they haven't been pulled or pushed recently. For more information, see [repository tags](repos/access/_index.md#view-repository-tags). +The **Repositories** view now shows which images have gone stale because they haven't been pulled or pushed recently. For more information, see [repository tags](repos/manage/access/_index.md#view-repository-tags). ## 2020-10-07 diff --git a/content/manuals/docker-hub/repos/_index.md b/content/manuals/docker-hub/repos/_index.md index 868bbfb897..4bbc1d1460 100644 --- a/content/manuals/docker-hub/repos/_index.md +++ b/content/manuals/docker-hub/repos/_index.md @@ -1,88 +1,54 @@ --- description: Learn how to manage repositories on Docker Hub -keywords: Docker, docker, trusted, registry, accounts, plans, Dockerfile, Docker Hub, - webhooks, docs, documentation, manage, repos -title: Manage repositories +keywords: Docker Hub, Hub, repositories +title: Repositories weight: 20 aliases: - /engine/tutorials/dockerrepos/ +- /docker-hub/repos/ +- /docker-hub/repos/configure/ --- -## Manage default repository settings +A Docker Hub repository is a collection of container images, enabling you to +store, manage, and share Docker images publicly or privately. Each repository +serves as a dedicated space where you can store images associated with a +particular application, microservice, or project. Content in repositories is +organized by tags, which represent different versions of the same application, +allowing users to pull the right version when needed. -You can manage the default repository settings for your personal account in Docker Hub. Select the **Settings** icon, then select **Repository Settings**. +In this section, learn how to: -![Repository settings menu](../images/docker-hub-repo-settings-menu.png) +- [Create](./create.md) a repository. +- Manage a repository, including how to manage: -Here you can manage the following: + - [Repository information](./manage/information.md): Add descriptions, + overviews, and categories to help users understand the purpose and usage of + your repository. Clear repository information aids discoverability and + usability. -- Default privacy: set the default repository privacy to either **Public** or **Private**. -- Linked accounts: for users with a Docker Pro, Team, or Business subscription, manage your source provider accounts to enable Automated Builds. -- Notifications: for users with a Docker Pro, Team, or Business subscription, manage how you receive notifications from autobuilds. + - [Access](./manage/access.md): Control who can access your repositories with + flexible options. Make repositories public or private, add collaborators, + and, for organizations, manage roles and teams to maintain security and + control. -## Change a repository from public to private + - [Images](./manage/hub-images/_index.md): Repositories support diverse + content types, including OCI artifacts, and allow version control through + tagging. Push new images and manage existing content across repositories + for flexibility. -1. Navigate to your repository. -2. Select the **Settings** tab. -3. Select **Make private**. -4. Enter the name of your repository to confirm. + - [Image security insights](./manage/vulnerability-scanning.md): Utilize + continuous Docker Scout analysis and static vulnerability scanning to + detect, understand, and address security issues within container images. -You get one free private repository with your Docker Hub user account (not -available for organizations you're a member of). If you need more private -repositories for your user account, upgrade your Docker Hub subscription from your [Billing Information](https://hub.docker.com/billing/plan) page. + - [Webhooks](./manage/webhooks.md): Automate responses to repository events + like image pushes or updates by setting up webhooks, which can trigger + notifications or actions in external systems, streamlining workflows. -## Move images between repositories - -### Personal to personal - -When consolidating personal repositories, you can pull private images from the initial repository and push them into another repository owned by you. To avoid losing your private images, perform the following steps: - -1. Navigate to [Docker Hub](https://hub.docker.com) create a new Docker ID and select a personal subscription. -2. Using `docker login` from the CLI, sign in using your original Docker ID and pull your private images. -3. Tag your private images with your newly created Docker ID, for example: - - ```console - $ docker tag namespace1/docker101tutorial new_namespace/docker101tutorial - ``` -4. Using `docker login` from the CLI, sign in with your newly created Docker ID, and push your newly tagged private images to your new Docker ID namespace: - - ```console - $ docker push new_namespace/docker101tutorial - ``` - -The private images that existed in your previous account are now available in your new account. - -### Personal to an organization - -To avoid losing your private images, you can pull your private images from your personal account and push them to an organization that's owned by you. - -1. Navigate to [Docker Hub](https://hub.docker.com) and select **Organizations**. -2. Select the applicable organization and verify that your user account is a member of the organization. -3. Sign in to [Docker Hub](https://hub.docker.com) using your original Docker ID, and pull your images: - - ```console - $ docker pull namespace1/docker101tutorial - ``` -4. Tag your images with your new organization namespace: - - ```console - $ docker tag namespace1/docker101tutorial /docker101tutorial - ``` -5. Push your newly tagged images to your new org namespace: - - ```console - $ docker push new_org/docker101tutorial - ``` - -The private images that existed in your user account are now available for your organization. - -## Delete a repository - -> [!WARNING] -> -> Deleting a repository deletes all the images it contains and its build settings. This action can't be undone. - -1. Navigate to your repository. -2. Select the **Settings** tab. -3. Select **Delete repository**. -4. Enter the name of your repository to confirm. + - [Automated builds](./manage/builds/_index.md): Integrate with GitHub or + Bitbucket for automated builds. Every code change triggers an image + rebuild, supporting continuous integration and delivery. + +- [Delete](./delete.md) a repository. +- [Manage personal settings](./settings.md): For your account, you can set personal + settings for repositories, including default repository privacy and autobuild + notifications. \ No newline at end of file diff --git a/content/manuals/docker-hub/repos/access.md b/content/manuals/docker-hub/repos/access.md deleted file mode 100644 index 3cf92798e7..0000000000 --- a/content/manuals/docker-hub/repos/access.md +++ /dev/null @@ -1,89 +0,0 @@ ---- -description: Discover how to access repositories on Docker Hub -keywords: Docker, docker, trusted, registry, accounts, plans, Dockerfile, Docker Hub, - webhooks, docs, documentation, collaborators, viewing, searching, starring -title: Access repositories ---- - -Within your repository, you can give others access to push and pull to your repository, and you can assign permissions. You can also view your repository tags and the associated images. - -## Collaborators and their role - -A collaborator is someone you want to give access to a private repository. Once designated, they can `push` and `pull` to your repositories. They're not -allowed to perform any administrative tasks such as deleting the repository or changing its status from private to public. - -Only personal account repositories can use collaborators. You can add unlimited collaborators to public repositories, and [Docker Pro](../../subscription/core-subscription/details.md#docker-pro) accounts can add up to 1 collaborator on private repositories. Organization repositories can't use collaborators. Organization owners can control repository access with [member roles](../../security/for-admins/roles-and-permissions.md) and [teams](../../admin/organization/manage-a-team.md). - -You can choose collaborators and manage their access to a private -repository from that repository's **Settings** page. - -> [!NOTE] -> -> A collaborator can't add other collaborators. Only the owner of -> the repository has administrative access. - -You can also assign more granular collaborator rights ("Read", "Write", or -"Admin") on Docker Hub by using organizations and teams. For more information -see the [organizations documentation](../../admin/organization/orgs.md#create-an-organization). - -## View repository tags - -You can view the available tags and the size of the associated image. Go to the **Repositories** view and select a repository to see its tags. To view individual tags, select the **Tags** tab. - -To delete a tag, select the corresponding checkbox and select **Delete** from the **Action** drop-down list. - -> [!NOTE] -> -> Only a user with administrative access (owner or team member with Admin -> permission) over the repository can delete tags. - -You can select a tag's digest to access more details. - -Image sizes are the cumulative space taken up by the image and all its parent -images. This is also the disk space used by the contents of the `.tar` file -created when you `docker save` an image. - -An image is stale if there has been no push or pull activity for more than one month. A multi-architecture image is stale if all single-architecture images part of its manifest are stale. - -## Search for repositories - -You can search the [Docker Hub](https://hub.docker.com) registry through its -search interface or by using the command line interface. You can search by image name, username, or description: - -```console -$ docker search centos - -NAME DESCRIPTION STARS OFFICIAL AUTOMATED -centos The official build of CentOS. 1034 [OK] -ansible/centos7-ansible Ansible on Centos7 43 [OK] -tutum/centos Centos image with SSH access. For the root... 13 [OK] -... -``` - -In the previous example, you can see two example results, `centos` and `ansible/centos7-ansible`. - -The second result shows that it comes from the public repository of a user, -named `ansible/`, while the first result, `centos`, doesn't explicitly list a -repository which means that it comes from the top-level namespace for -[Docker Official Images](../../trusted-content/official-images/_index.md). -The `/` character separates a user's repository from the image name. - -Once you've found the image you want, you can download it with `docker pull `: - -```console -$ docker pull centos - -latest: Pulling from centos -6941bfcbbfca: Pull complete -41459f052977: Pull complete -fd44297e2ddb: Already exists -centos:latest: The image you are pulling has been verified. Important: image verification is a tech preview feature and should not be relied on to provide security. -Digest: sha256:d601d3b928eb2954653c59e65862aabb31edefa868bd5148a41fa45004c12288 -Status: Downloaded newer image for centos:latest -``` - -You now have an image from which you can run containers. - -## Star repositories - -Stars are a way to show that you like a repository. They're also an easy way of bookmarking your favorites. diff --git a/content/manuals/docker-hub/repos/categories.md b/content/manuals/docker-hub/repos/categories.md deleted file mode 100644 index d72d738097..0000000000 --- a/content/manuals/docker-hub/repos/categories.md +++ /dev/null @@ -1,70 +0,0 @@ ---- -title: Categories in Docker Hub -description: | - Categorizing your Docker Hub repositories makes it easier for users to - find your images based on its use cases and content. -keywords: hub, images, content, categories, explore, search ---- - -You can tag Docker Hub repositories with categories, representing the primary -intended use cases for your images. This lets users more easily find and -explore content for the problem domain that they're interested in. - -## Available categories - -The Docker Hub content team maintains a curated list of categories. -The available categories are: - -- **API Management**: Tools for creating, publishing, analyzing, and securing APIs. -- **Content Management System:** Software applications to create and manage digital content through templates, procedures, and standard formats. -- **Data Science:** Tools and software to support analyzing data and generating actionable insights. -- **Databases & Storage:** Systems for storing, retrieving, and managing data. -- **Languages & Frameworks:** Programming language runtimes and frameworks. -- **Integrations & Delivery:** Tools for Continuous Integration (CI) and Continuous Delivery (CD). -- **Internet of Things:** Tools supporting Internet of Things (IoT) applications. -- **Machine Learning & AI:** Tools and frameworks optimized for artificial intelligence and machine learning projects, such as pre-installed libraries and frameworks for data analysis, model training, and deployment. -- **Message Queues:** Message queuing systems optimized for reliable, scalable, and efficient message handling. -- **Monitoring & Observability:** Tools to track software and system performance through metrics, logs, and traces, as well as observability to explore the system’s state and diagnose issues. -- **Networking:** Repositories that support data exchange and connecting computers and other devices to share resources. -- **Operating Systems:** Software that manages all other programs on a computer and serves as an intermediary between users and the computer hardware, while overseeing applications and system resources. -- **Security:** Tools to protect a computer system or network from theft, unauthorized access, or damage to their hardware, software, or electronic data, as well as from service disruption. -- **Web Servers:** Software to serve web pages, HTML files, and other assets to users or other systems. -- **Web Analytics:** Tools to collect, measure, analyze, and report on web data and website visitor engagement. - -## Auto-generated categories - -> [!NOTE] -> -> Auto-generated categories only apply to Docker Verified Publishers and -> Docker-Sponsored Open Source program participants. - -For repositories that pre-date the Categories feature in Docker Hub, -categories have been automatically generated and applied, using OpenAI, based -on the repository title and description. - -As an owner of a repository that has been auto-categorized, you can manually -edit the categories if you think they're inaccurate. See [Manage categories for -a repository](#manage-categories-for-a-repository). - -The auto-generated categorization was a one-time effort to help seed categories -onto repositories created before the feature existed. Categories are not -assigned to new repositories automatically. - -## Manage categories for a repository - -You can tag a repository with up to three categories. - -To edit the categories of a repository: - -1. Go to the repository page on Docker Hub. -2. Select the pencil icon under the description field. -3. Select the categories you want to apply. -4. Select **Update** to save the changes. - - - -If you're missing a category, use the -[Give feedback link](https://docker.qualtrics.com/jfe/form/SV_03CrMyAkCWVylKu) -to let us know what categories you'd like to see. diff --git a/content/manuals/docker-hub/repos/create.md b/content/manuals/docker-hub/repos/create.md index 37795c4935..ae30c95820 100644 --- a/content/manuals/docker-hub/repos/create.md +++ b/content/manuals/docker-hub/repos/create.md @@ -1,80 +1,60 @@ --- -description: Learn how to create repositories on Docker Hub -keywords: Docker, docker, trusted, registry, accounts, plans, Dockerfile, Docker Hub, - webhooks, docs, documentation, manage, repos -title: Create repositories +description: Learn how to create a repository on Docker Hub +keywords: Docker Hub, Hub, repositories, create +title: Create a repository +linkTitle: Create toc_max: 3 +weight: 20 aliases: -- /docker-hub/repos/configure/ +- /docker-hub/repos/create/ --- -Repositories let you share container images with your team, -customers, or the Docker community at large. - -A single Docker Hub repository can hold many Docker images which are stored as **tags**. You can push Docker images to Docker Hub with the [`docker push`](/reference/cli/docker/image/push/)command. - -## Create a repository - -1. Sign in to Docker Hub. +1. Sign in to [Docker Hub](https://hub.docker.com). 2. Select **Repositories**. -3. Near the top-right corner, select **Create Repository**. +3. Near the top-right corner, select **Create repository**. +4. Select a **Namespace**. -When creating a new repository: + You can choose to locate it under your own user account, or under any + organization where you are an owner or editor. -- You can choose to locate it under your own user account, or under any - [organization](../../admin/organization//orgs.md) where you are an [owner](../../admin/organization/manage-a-team.md#organization-owner) or [editor](../../security/for-admins/roles-and-permissions.md). -- The repository name needs to: +5. Specify the **Repository Name**. + + The repository name needs to: - Be unique - Have between 2 and 255 characters - - Only contain lowercase letters, numbers, hyphens (`-`), and underscores (`_`) + - Only contain lowercase letters, numbers, hyphens (`-`), and underscores + (`_`) - > [!NOTE] - > - > You can't rename a Docker Hub repository once it's created. + > [!NOTE] + > + > You can't rename a Docker Hub repository once it's created. -- The description can be up to 100 characters. It's used in the search results. -- If you're a Docker Verified Publisher (DVP) or Docker-Sponsored Open Source (DSOS) organization, you can also add a logo to a repository. The maximum size in pixels is 1000x1000. -- You can link a GitHub or Bitbucket account now, or choose to do it later in - the repository settings. -- You can set the repository's default visibility to public or private. +6. Specify the **Short description**. - > [!NOTE] - > - > For organizations creating a new repository, it's recommended you select **Private**. + The description can be up to 100 characters. It appears in search results. -### Add a repository overview +7. Select the default visibility. -Once you have created a repository, add an overview to the **Repository overview** field. This describes what your image does and how to use it. + - **Public**: The repository appears in Docker Hub search results and can be + pulled by everyone. + - **Private**: The repository doesn't appear in Docker Hub search results and + is only accessible to you and collaborators. In addition, if you selected + an organization's namespace, then the repository is accessible to those + with applicable roles or permissions. For more details, see [Roles and + permissions](../../security/for-admins/roles-and-permissions.md). -Consider the following repository overview best practices. + > [!NOTE] + > + > For organizations creating a new repository, if you're unsure which + > visibility to choose, then Docker recommends that you select **Private**. -- Describe what the image is, the features it offers, and why it should be used. Can include examples of usage or the team behind the project. -- Explain how to get started with running a container using the image. You can include a minimal example of how to use the image in a Dockerfile. -- List the key image variants and tags to use them, as well as use cases for the variants. -- Link to documentation or support sites, communities, or mailing lists for additional resources. -- Provide contact information for the image maintainers. -- Include the license for the image and where to find more details if needed. +8. Select **Create**. -## Push a Docker container image to Docker Hub +After the repository is created, the **General** page appears. You are now able to manage: -Once you have created a repository, you can start using `docker push` to push -images. - -To push an image to Docker Hub, you must first name your local image using your -Docker ID and the repository name that you created. - -If you want to add multiple images to a repository, add a specific `:` to them, for example `docs/base:testing`. If it's not specified, the tag defaults to `latest`. - -Name your local images using one of these methods: - -- When you build them, using `docker build -t /[:` -- By re-tagging the existing local image with `docker tag /[:]`. -- By using `docker commit /[:]` to commit changes. - -Then, you can push this image to the repository designated by its name or tag: - -```console -$ docker push /: -``` - -The image is then uploaded and available for use by your teammates and/or the community. +- [Repository information](./manage/information.md) +- [Access](./manage/access.md) +- [Images](./manage/hub-images/_index.md) +- [Automated builds](./manage/builds/_index.md) +- [Webhooks](./manage/webhooks.md) +- [Image security insights](./manage/vulnerability-scanning.md) diff --git a/content/manuals/docker-hub/repos/delete.md b/content/manuals/docker-hub/repos/delete.md new file mode 100644 index 0000000000..46e27c1ea2 --- /dev/null +++ b/content/manuals/docker-hub/repos/delete.md @@ -0,0 +1,27 @@ +--- +description: Learn how to delete a repository on Docker Hub +keywords: Docker Hub, Hub, repositories, delete +title: Delete a repository +linkTitle: Delete +toc_max: 3 +weight: 40 +--- + +> [!WARNING] +> +> Deleting a repository deletes all the images it contains and its build +> settings. This action can't be undone. + +1. Sign in to [Docker Hub](https://hub.docker.com). +2. Select **Repositories**. + + A list of your repositories appears. + +3. Select a repository. + + The **General** page for the repository appears. + +4. Select the **Settings** tab. +5. Select **Delete repository**. +6. Enter the name of your repository to confirm. +7. Select **Delete Repository Forever**. \ No newline at end of file diff --git a/content/manuals/docker-hub/repos/manage/_index.md b/content/manuals/docker-hub/repos/manage/_index.md new file mode 100644 index 0000000000..4806e0afc2 --- /dev/null +++ b/content/manuals/docker-hub/repos/manage/_index.md @@ -0,0 +1,6 @@ +--- +build: + render: never +title: Manage +weight: 30 +--- diff --git a/content/manuals/docker-hub/repos/manage/access.md b/content/manuals/docker-hub/repos/manage/access.md new file mode 100644 index 0000000000..ed190257f3 --- /dev/null +++ b/content/manuals/docker-hub/repos/manage/access.md @@ -0,0 +1,134 @@ +--- +description: Discover how to manage access to repositories on Docker Hub. +keywords: Docker Hub, Hub, repository access, repository collaborators, repository privacy +title: Access management +LinkTItle: Access +weight: 50 +aliases: +- /docker-hub/repos/access/ +--- + +In this topic learn about the features available to manage access to your +repositories. This includes visibility, collaborators, roles, teams, and +organization access tokens. + +## Repository visibility + +The most basic repository access is controlled via the visibility. A +repository's visibility can be public or private. + +With public visibility, the repository appears in Docker Hub search results and +can be pulled by everyone. To manage push access to public personal +repositories, you can use collaborators. To manage push access to public +organization repositories, you can use roles, teams, or organization access +tokens. + +With private visibility, the repository doesn't appear in Docker Hub search +results and is only accessible to those with granted permission. To manage push +and pull access to private personal repositories, you can use collaborators. To +manage push and pull access to private organization repositories, you can use +roles, teams, or organization access tokens. + +### Change repository visibility + +When creating a repository in Docker Hub, you can set the repository visibility. +In addition, you can set the default repository visibility when a repository is +created in your personal repository settings. The following describes how to +change the visibility after the repository has been created. + +To change repository visibility: + +1. Sign in to [Docker Hub](https://hub.docker.com). +2. Select **Repositories**. +3. Select a repository. + + The **General** page for the repository appears. + +4. Select the **Settings** tab. +5. Under **Visibility settings**, select one of the following: + + - **Make public**: The repository appears in Docker Hub search results and can be + pulled by everyone. + - **Make private**: The repository doesn't appear in Docker Hub search results + and is only accessible to you and collaborators. In addition, if the + repository is in an organization's namespace, then the repository + is accessible to those with applicable roles or permissions. + +6. Type the repository's name to verify the change. +7. Select **Make public** or **Make private**. + +## Collaborators + +A collaborator is someone you want to give `push` and `pull` access to a +personal repository. Collaborators aren't able to perform any administrative +tasks such as deleting the repository or changing its visibility from private to +public. In addition, collaborators can't add other collaborators. + +Only personal repositories can use collaborators. You can add unlimited +collaborators to public repositories, and Docker Pro accounts can add up to 1 +collaborator on private repositories. + +Organization repositories can't use collaborators, but can use member roles, +teams, or organization access tokens to manage access. + +### Manage collaborators + +1. Sign in to [Docker Hub](https://hub.docker.com). + +2. Select **Repositories**. + + A list of your repositories appears. + +3. Select a repository. + + The **General** page for the repository appears. + +4. Select the **Collaborators** tab. + +5. Add or remove collaborators based on their Docker username. + +You can choose collaborators and manage their access to a private +repository from that repository's **Settings** page. + +## Organization roles + +Organizations can use roles for individuals, giving them different +permissions in the organization. For more details, see [Roles and +permissions](/manuals/security/for-admins/roles-and-permissions.md). + +## Organization teams + +Organizations can use teams. A team can be assigned fine-grained repository +access. + +### Configure team repository permissions + +You must create a team before you are able to configure repository permissions. +For more details, see [Create and manage a +team](/manuals/admin/organization/manage-a-team.md). + +To configure team repository permissions: + +1. Sign in to [Docker Hub](https://hub.docker.com). + +2. Select **Repositories**. + + A list of your repositories appears. + +3. Select a repository. + + The **General** page for the repository appears. + +4. Select the **Permissions** tab. + +5. Add, modify, or remove a team's repository permissions. + + - Add: Specify the **Team**, select the **Permission**, and then select **Add**. + - Modify: Specify the new permission next to the team. + - Remove: Select the **Remove permission** icon next to the team. + +## Organization access tokens (OATs) + +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). diff --git a/content/manuals/docker-hub/builds/_index.md b/content/manuals/docker-hub/repos/manage/builds/_index.md similarity index 99% rename from content/manuals/docker-hub/builds/_index.md rename to content/manuals/docker-hub/repos/manage/builds/_index.md index 930e40c543..d95313288c 100644 --- a/content/manuals/docker-hub/builds/_index.md +++ b/content/manuals/docker-hub/repos/manage/builds/_index.md @@ -3,16 +3,17 @@ description: Set up Automated builds keywords: automated, build, images, Docker Hub title: Set up Automated Builds linkTitle: Automated builds -weight: 60 +weight: 90 aliases: - /docker-hub/builds/automated-build/ - /docker-hub/builds/classic/ +- /docker-hub/builds/ --- > [!NOTE] > > Automated builds require a -> [Docker Pro, Team, or Business subscription](../../subscription/_index.md). +> Docker Pro, Team, or Business subscription. This page contains information on: - [Configuring Automated builds](#configure-automated-builds) diff --git a/content/manuals/docker-hub/builds/advanced.md b/content/manuals/docker-hub/repos/manage/builds/advanced.md similarity index 98% rename from content/manuals/docker-hub/builds/advanced.md rename to content/manuals/docker-hub/repos/manage/builds/advanced.md index 111a065da3..1a4298ab0f 100644 --- a/content/manuals/docker-hub/builds/advanced.md +++ b/content/manuals/docker-hub/repos/manage/builds/advanced.md @@ -2,12 +2,14 @@ description: Automated builds keywords: automated, build, images title: Advanced options for Autobuild and Autotest +aliases: +- /docker-hub/builds/advanced/ --- > [!NOTE] > > Automated builds require a -> [Docker Pro, Team, or Business subscription](../../subscription/_index.md). +> Docker Pro, Team, or Business subscription. The following options allow you to customize your automated build and automated test processes. diff --git a/content/manuals/docker-hub/builds/automated-testing.md b/content/manuals/docker-hub/repos/manage/builds/automated-testing.md similarity index 96% rename from content/manuals/docker-hub/builds/automated-testing.md rename to content/manuals/docker-hub/repos/manage/builds/automated-testing.md index c22293b046..a2aed00f30 100644 --- a/content/manuals/docker-hub/builds/automated-testing.md +++ b/content/manuals/docker-hub/repos/manage/builds/automated-testing.md @@ -2,15 +2,17 @@ description: Automated tests keywords: Automated, testing, repository title: Automated repository tests +aliases: +- /docker-hub/builds/automated-testing/ --- > [!NOTE] > > Automated builds require a -> [Docker Pro, Team, or Business subscription](../../subscription/_index.md). +> Docker Pro, Team, or Business subscription. Docker Hub can automatically test changes to your source code repositories -using containers. You can enable `Autotest` on [any Docker Hub repository](../repos/_index.md) +using containers. You can enable `Autotest` on any Docker Hub repository to run tests on each pull request to the source code repository to create a continuous integration testing service. diff --git a/content/manuals/docker-hub/builds/how-builds-work.md b/content/manuals/docker-hub/repos/manage/builds/how-builds-work.md similarity index 94% rename from content/manuals/docker-hub/builds/how-builds-work.md rename to content/manuals/docker-hub/repos/manage/builds/how-builds-work.md index 1ff6d690af..fc67d3683d 100644 --- a/content/manuals/docker-hub/builds/how-builds-work.md +++ b/content/manuals/docker-hub/repos/manage/builds/how-builds-work.md @@ -2,12 +2,14 @@ description: how automated builds work keywords: docker hub, automated builds title: How Automated builds work +aliases: +- /docker-hub/builds/how-builds-work/ --- > [!NOTE] > > Automated builds require a -> [Docker Pro, Team, or Business subscription](../../subscription/_index.md). +> Docker Pro, Team, or Business subscription. Docker Hub can automatically build images from source code in an external repository and automatically push the built image to your Docker repositories. diff --git a/content/manuals/docker-hub/builds/images/authorize-builder.png b/content/manuals/docker-hub/repos/manage/builds/images/authorize-builder.png similarity index 100% rename from content/manuals/docker-hub/builds/images/authorize-builder.png rename to content/manuals/docker-hub/repos/manage/builds/images/authorize-builder.png diff --git a/content/manuals/docker-hub/builds/images/bitbucket-revoke.png b/content/manuals/docker-hub/repos/manage/builds/images/bitbucket-revoke.png similarity index 100% rename from content/manuals/docker-hub/builds/images/bitbucket-revoke.png rename to content/manuals/docker-hub/repos/manage/builds/images/bitbucket-revoke.png diff --git a/content/manuals/docker-hub/builds/images/build-cancelicon.png b/content/manuals/docker-hub/repos/manage/builds/images/build-cancelicon.png similarity index 100% rename from content/manuals/docker-hub/builds/images/build-cancelicon.png rename to content/manuals/docker-hub/repos/manage/builds/images/build-cancelicon.png diff --git a/content/manuals/docker-hub/images/docker-hub-repo-settings-menu.png b/content/manuals/docker-hub/repos/manage/builds/images/docker-hub-repo-settings-menu.png similarity index 100% rename from content/manuals/docker-hub/images/docker-hub-repo-settings-menu.png rename to content/manuals/docker-hub/repos/manage/builds/images/docker-hub-repo-settings-menu.png diff --git a/content/manuals/docker-hub/builds/images/index-active.png b/content/manuals/docker-hub/repos/manage/builds/images/index-active.png similarity index 100% rename from content/manuals/docker-hub/builds/images/index-active.png rename to content/manuals/docker-hub/repos/manage/builds/images/index-active.png diff --git a/content/manuals/docker-hub/builds/images/index-dashboard.png b/content/manuals/docker-hub/repos/manage/builds/images/index-dashboard.png similarity index 100% rename from content/manuals/docker-hub/builds/images/index-dashboard.png rename to content/manuals/docker-hub/repos/manage/builds/images/index-dashboard.png diff --git a/content/manuals/docker-hub/images/index-report.png b/content/manuals/docker-hub/repos/manage/builds/images/index-report.png similarity index 100% rename from content/manuals/docker-hub/images/index-report.png rename to content/manuals/docker-hub/repos/manage/builds/images/index-report.png diff --git a/content/manuals/docker-hub/builds/images/retry-build.png b/content/manuals/docker-hub/repos/manage/builds/images/retry-build.png similarity index 100% rename from content/manuals/docker-hub/builds/images/retry-build.png rename to content/manuals/docker-hub/repos/manage/builds/images/retry-build.png diff --git a/content/manuals/docker-hub/builds/link-source.md b/content/manuals/docker-hub/repos/manage/builds/link-source.md similarity index 96% rename from content/manuals/docker-hub/builds/link-source.md rename to content/manuals/docker-hub/repos/manage/builds/link-source.md index 6b5c77e6b4..3f8d48f327 100644 --- a/content/manuals/docker-hub/builds/link-source.md +++ b/content/manuals/docker-hub/repos/manage/builds/link-source.md @@ -6,11 +6,13 @@ title: Configure automated builds from GitHub and BitBucket aliases: - /docker-hub/github/ - /docker-hub/bitbucket/ +- /docker-hub/builds/link-source/ --- > [!NOTE] > -> Automated builds require a [Docker Pro, Team, or Business subscription](../../subscription/_index.md). +> Automated builds require a Docker Pro, Team, or Business subscription. + To automate building and testing of your images, you link to your hosted source code service to Docker Hub so that it can access your source code @@ -25,7 +27,7 @@ If you are linking a source code provider to create autobuilds for a team, follo 2. Select the **Settings** icon in the top-right navigation, then select **Repository Settings**. - ![Repository settings menu](../images/docker-hub-repo-settings-menu.png) + ![Repository settings menu](./images/docker-hub-repo-settings-menu.png) 3. From the **Linked accounts** tab, select **Link provider** for the source provider you want to link. diff --git a/content/manuals/docker-hub/builds/manage-builds.md b/content/manuals/docker-hub/repos/manage/builds/manage-builds.md similarity index 92% rename from content/manuals/docker-hub/builds/manage-builds.md rename to content/manuals/docker-hub/repos/manage/builds/manage-builds.md index 020ee0ca09..c199e918a6 100644 --- a/content/manuals/docker-hub/builds/manage-builds.md +++ b/content/manuals/docker-hub/repos/manage/builds/manage-builds.md @@ -2,11 +2,14 @@ title: Manage autobuilds description: How to manage autobuilds in Docker Hub keywords: autobuilds, automated, docker hub, registry +aliases: +- /docker-hub/builds/manage-builds/ --- > [!NOTE] > -> Automated builds require a [Docker Pro, Team, or Business subscription](../../subscription/_index.md). +> Automated builds require a Docker Pro, Team, or Business subscription. + ## Cancel or retry a build @@ -35,7 +38,7 @@ repository and branch, or tag, the build logs, the build duration, creation time > > You can now view the progress of your builds every 30 seconds when you refresh the **Builds** page. With the in-progress build logs, you can debug your builds before they're finished. -![Build report](/docker-hub/images/index-report.png) +![Build report](./images/index-report.png) ## Disable an automated build diff --git a/content/manuals/docker-hub/builds/troubleshoot.md b/content/manuals/docker-hub/repos/manage/builds/troubleshoot.md similarity index 97% rename from content/manuals/docker-hub/builds/troubleshoot.md rename to content/manuals/docker-hub/repos/manage/builds/troubleshoot.md index fc49a26fd1..146e39e93c 100644 --- a/content/manuals/docker-hub/builds/troubleshoot.md +++ b/content/manuals/docker-hub/repos/manage/builds/troubleshoot.md @@ -3,12 +3,14 @@ title: Troubleshoot your autobuilds description: How to troubleshoot Automated builds keywords: docker hub, troubleshoot, automated builds, autobuilds tags: [ Troubleshooting ] +aliases: +- /docker-hub/builds/troubleshoot/ --- > [!NOTE] > > Automated builds require a -> [Docker Pro, Team, or Business subscription](../../subscription/_index.md). +> Docker Pro, Team, or Business subscription. ## Failing builds diff --git a/content/manuals/docker-hub/repos/manage/hub-images/_index.md b/content/manuals/docker-hub/repos/manage/hub-images/_index.md new file mode 100644 index 0000000000..726eb78892 --- /dev/null +++ b/content/manuals/docker-hub/repos/manage/hub-images/_index.md @@ -0,0 +1,31 @@ +--- +description: Learn how to manage images in Docker Hub repositories +keywords: Docker Hub, Hub, images, content +title: Image management +linkTitle: Images +weight: 60 +--- + +Docker Hub provides powerful features for managing and organizing your +repository content, ensuring that your images and artifacts are accessible, +version-controlled, and easy to share. This section covers key image management +tasks, including tagging, pushing images, transferring images between +repositories, and supported software artifacts. + +- [Tags](./tags.md): Tags help you version and organize different iterations of + your images within a single repository. This topic explains tagging and + provides guidance on how to create, view, and delete tags in Docker Hub. +- [Software artifacts](./oci-artifacts.md): Docker Hub supports OCI (Open + Container Initiative) artifacts, allowing you to store, manage, and distribute + a range of content beyond standard Docker images, including Helm charts, + vulnerability reports, and more. This section provides an overview of OCI + artifacts as well as some examples of pushing them to Docker Hub. +- [Push images to Hub](./push.md): Docker Hub enables you to push local images + to it, making them available for your team or the Docker community. Learn how + to configure your images and use the `docker push` command to upload them to + Docker Hub. +- [Move images between repositories](./move.md): Organizing content across + different repositories can help streamline collaboration and resource + management. This topic details how to move images from one Docker Hub + repository to another, whether for personal consolidation or to share images + with an organization. \ No newline at end of file diff --git a/content/manuals/docker-hub/images/oci-artifact.png b/content/manuals/docker-hub/repos/manage/hub-images/images/oci-artifact.png similarity index 100% rename from content/manuals/docker-hub/images/oci-artifact.png rename to content/manuals/docker-hub/repos/manage/hub-images/images/oci-artifact.png diff --git a/content/manuals/docker-hub/images/oci-helm-tagview.png b/content/manuals/docker-hub/repos/manage/hub-images/images/oci-helm-tagview.png similarity index 100% rename from content/manuals/docker-hub/images/oci-helm-tagview.png rename to content/manuals/docker-hub/repos/manage/hub-images/images/oci-helm-tagview.png diff --git a/content/manuals/docker-hub/images/oci-helm.png b/content/manuals/docker-hub/repos/manage/hub-images/images/oci-helm.png similarity index 100% rename from content/manuals/docker-hub/images/oci-helm.png rename to content/manuals/docker-hub/repos/manage/hub-images/images/oci-helm.png diff --git a/content/manuals/docker-hub/images/oci-volume.png b/content/manuals/docker-hub/repos/manage/hub-images/images/oci-volume.png similarity index 100% rename from content/manuals/docker-hub/images/oci-volume.png rename to content/manuals/docker-hub/repos/manage/hub-images/images/oci-volume.png diff --git a/content/manuals/docker-hub/repos/manage/hub-images/move.md b/content/manuals/docker-hub/repos/manage/hub-images/move.md new file mode 100644 index 0000000000..fc267f3a8e --- /dev/null +++ b/content/manuals/docker-hub/repos/manage/hub-images/move.md @@ -0,0 +1,63 @@ +--- +description: Discover how to move images between repositories. +keywords: Docker Hub, Hub, repository content, move +title: Move images between repositories +linkTitle: Move images +weight: 40 +--- + +Consolidating and organizing your Docker images across repositories can +streamline your workflows, whether you're managing personal projects or +contributing to an organization. This topic explains how to move images between +Docker Hub repositories, ensuring that your content remains accessible and +organized under the correct accounts or namespaces. + +## Personal to personal + +When consolidating personal repositories, you can pull private images from the initial repository and push them into another repository owned by you. To avoid losing your private images, perform the following steps: + +1. [Sign up](https://app.docker.com/signup) for a new Docker account with a personal subscription. +2. Sign in to [Docker](https://app.docker.com/login) using your original Docker account +3. Pull your images: + + ```console + $ docker pull namespace1/docker101tutorial + ``` + +4. Tag your private images with your newly created Docker username, for example: + + ```console + $ docker tag namespace1/docker101tutorial new_namespace/docker101tutorial + ``` +5. Using `docker login` from the CLI, sign in with your newly created Docker account, and push your newly tagged private images to your new Docker account namespace: + + ```console + $ docker push new_namespace/docker101tutorial + ``` + +The private images that existed in your previous account are now available in your new account. + +## Personal to an organization + +To avoid losing your private images, you can pull your private images from your +personal account and push them to an organization that's owned by you. + +1. Navigate to [Docker Hub](https://hub.docker.com) and select **Organizations**. +2. Select the applicable organization and verify that your user account is a member of the organization. +3. Sign in to [Docker Hub](https://hub.docker.com) using your original Docker account, and pull your images: + + ```console + $ docker pull namespace1/docker101tutorial + ``` +4. Tag your images with your new organization namespace: + + ```console + $ docker tag namespace1/docker101tutorial /docker101tutorial + ``` +5. Push your newly tagged images to your new org namespace: + + ```console + $ docker push new_org/docker101tutorial + ``` + +The private images that existed in your user account are now available for your organization. \ No newline at end of file diff --git a/content/manuals/docker-hub/oci-artifacts.md b/content/manuals/docker-hub/repos/manage/hub-images/oci-artifacts.md similarity index 91% rename from content/manuals/docker-hub/oci-artifacts.md rename to content/manuals/docker-hub/repos/manage/hub-images/oci-artifacts.md index 8688ac1687..a6294aa9a2 100644 --- a/content/manuals/docker-hub/oci-artifacts.md +++ b/content/manuals/docker-hub/repos/manage/hub-images/oci-artifacts.md @@ -1,14 +1,16 @@ --- -title: OCI artifacts on Docker Hub -linkTitle: OCI artifacts -weight: 100 +title: Software artifacts on Docker Hub +linkTitle: Software artifacts +weight: 20 keywords: oci, artifacts, docker hub description: You can use Docker Hub to store software artifacts packaged as OCI artifacts. --- You can use Docker Hub to store any kind of software artifact, not just -container images. Docker Hub supports OCI artifacts by leveraging the config -property on the image manifest. +container images. A software artifact is any item produced during the software +development process that contributes to the creation, maintenance, or +understanding of the software. Docker Hub supports OCI artifacts by leveraging +the config property on the image manifest. ## What are OCI artifacts? @@ -77,7 +79,7 @@ Steps: Successfully packaged chart and saved it to: /Users/hubuser/demo-0.1.0.tgz ``` -3. Sign in to Docker Hub with Helm, using your Docker ID credentials. +3. Sign in to Docker Hub with Helm, using your Docker credentials. ```console $ helm registry login registry-1.docker.io -u hubuser diff --git a/content/manuals/docker-hub/repos/manage/hub-images/push.md b/content/manuals/docker-hub/repos/manage/hub-images/push.md new file mode 100644 index 0000000000..0c3b468ed4 --- /dev/null +++ b/content/manuals/docker-hub/repos/manage/hub-images/push.md @@ -0,0 +1,44 @@ +--- +description: Learn how to add content to a repository on Docker Hub. +keywords: Docker Hub, Hub, repository content, push +title: Push images to a repository +linkTitle: Push images +weight: 30 +--- + +To add content to a repository on Docker Hub, you need to tag your Docker image +and then push it to your repository. This process lets you share your +images with others or use them in different environments. + +1. Tag your Docker image. + + The `docker tag` command assigns a tag to your Docker image, which includes + your Docker Hub namespace and the repository name. The general syntax is: + + ```console + $ docker tag [SOURCE_IMAGE[:TAG]] [NAMESPACE/REPOSITORY[:TAG]] + ``` + + Example: + + If your local image is called `my-app` and you want to tag it for the + repository `my-namespace/my-repo` with the tag `v1.0`, run: + + ```console + $ docker tag my-app my-namespace/my-repo:v1.0 + ``` + +2. Push the image to Docker Hub. + + Use the `docker push` command to upload your tagged image to the specified + repository on Docker Hub. + + Example: + + ```console + $ docker push my-app my-namespace/my-repo:v1.0 + ``` + + This command pushes the image tagged `v1.0` to the `my-namespace/my-repo` repository. + +3. Verify the image on Docker Hub. \ No newline at end of file diff --git a/content/manuals/docker-hub/repos/manage/hub-images/tags.md b/content/manuals/docker-hub/repos/manage/hub-images/tags.md new file mode 100644 index 0000000000..35db6a1866 --- /dev/null +++ b/content/manuals/docker-hub/repos/manage/hub-images/tags.md @@ -0,0 +1,70 @@ +--- +description: Discover how to manage repository tags on Docker Hub. +keywords: Docker Hub, Hub, repository content, tags +title: Tags on Docker Hub +linkTitle: Tags +weight: 10 +--- + +Tags let you manage multiple versions of images within a single Docker Hub +repository. By adding a specific `:` to each image, such as +`docs/base:testing`, you can organize and differentiate image versions for +various use cases. If no tag is specified, the image defaults to the `latest` +tag. + +## Tag a local image + +To tag a local image, use one of the following methods: + +- When you build an image, use `docker build -t /[:`. +- Re-tag an existing local image with `docker tag /[:]`. +- When you commit changes, use `docker commit /[:]`. + +Then, you can push this image to the repository designated by its name or tag: + +```console +$ docker push /: +``` + +The image is then uploaded and available for use in Docker Hub. + +## View repository tags + +You can view the available tags and the size of the associated image. + +1. Sign in to [Docker Hub](https://hub.docker.com). +2. Select **Repositories**. + + A list of your repositories appears. + +3. Select a repository. + + The **General** page for the repository appears. + +4. Select the **Tags** tab. + +You can select a tag's digest to see more details. + +## Delete repository tags + +Only the repository owner or other team members with granted permissions can +delete tags. + +1. Sign in to [Docker Hub](https://hub.docker.com). +2. Select **Repositories**. + + A list of your repositories appears. + +3. Select a repository. + + The **General** page for the repository appears. + +4. Select the **Tags** tab. + +5. Select the corresponding checkbox next to the tags to delete. + +6. Select **Delete**. + + A confirmation dialog appears. + +7. Select **Delete**. diff --git a/content/manuals/docker-hub/images/vuln-scan-details.png b/content/manuals/docker-hub/repos/manage/images/vuln-scan-details.png similarity index 100% rename from content/manuals/docker-hub/images/vuln-scan-details.png rename to content/manuals/docker-hub/repos/manage/images/vuln-scan-details.png diff --git a/content/manuals/docker-hub/images/vuln-scan-report.png b/content/manuals/docker-hub/repos/manage/images/vuln-scan-report.png similarity index 100% rename from content/manuals/docker-hub/images/vuln-scan-report.png rename to content/manuals/docker-hub/repos/manage/images/vuln-scan-report.png diff --git a/content/manuals/docker-hub/repos/manage/information.md b/content/manuals/docker-hub/repos/manage/information.md new file mode 100644 index 0000000000..a6da93c26d --- /dev/null +++ b/content/manuals/docker-hub/repos/manage/information.md @@ -0,0 +1,187 @@ +--- +description: Learn how to describe and optimize your Docker Hub repositories for better discoverability. +keywords: Docker Hub, Hub, repository information, repository discoverability, best practices +title: Repository information +toc_max: 3 +weight: 40 +aliases: +- /docker-hub/repos/categories/ +--- + +Each repository can include a description, an overview, and categories to help +users understand its purpose and usage. Adding clear repository information +ensures that others can find your images and use them effectively. + +## Repository description + +The description appears in search results when using the `docker search` command +and in the search results on Docker Hub. + +Consider the following repository description best practices. + +- Summarize the purpose. Clearly state what the image does in a concise and + specific manner. Make it clear if it's for a particular application, tool, or + platform, or has a distinct use case. +- Highlight key features or benefits. Briefly mention the primary benefits or + unique features that differentiate the image. Examples include high + performance, ease of use, lightweight build, or compatibility with specific + frameworks or operating systems. +- Include relevant keywords. Use keywords that users may search for to increase + visibility, such as technology stacks, use cases, or environments. +- Keep it concise. The description can be a maximum of 100 characters. Aim to + stay within one or two sentences for the description to ensure it's easy to + read in search results. Users should quickly understand the image's value. +- Focus on the audience. Consider your target audience (developers, system + administrators, etc.) and write the description to address their needs + directly. + +Following these practices can help make the description more engaging and +effective in search results, driving more relevant traffic to your repository. + +### Add or update a repository description + +1. Sign in to [Docker Hub](https://hub.docker.com). + +2. Select **Repositories**. + + A list of your repositories appears. + +3. Select a repository. + + The **General** page for the repository appears. + +4. Select the pencil icon under the description field. + +5. Specify a description. + + The description can be up to 100 characters long. + +6. Select **Update**. + +## Repository overview + +An overview describes what your image does and how to run it. It displays in the +public view of your repository when the repository has at least one image. If +automated builds are enabled, the overview will be synced from the source code +repository's `README.md` file on each successful build. + +Consider the following repository overview best practices. + +- Describe what the image is, the features it offers, and why it should be used. + Can include examples of usage or the team behind the project. +- Explain how to get started with running a container using the image. You can + include a minimal example of how to use the image in a Dockerfile. +- List the key image variants and tags to use them, as well as use cases for the + variants. +- Link to documentation or support sites, communities, or mailing lists for + additional resources. +- Provide contact information for the image maintainers. +- Include the license for the image and where to find more details if needed. + +### Add or update a repository overview + +1. Sign in to [Docker Hub](https://hub.docker.com). + +2. Select **Repositories**. + + A list of your repositories appears. + +3. Select a repository. + + The **General** page for the repository appears. + +4. Under **Repository overview**, select **Edit** or **Add overview**. + + The **Write** and **Preview** tabs appear. + +5. Under **Write**, specify your repository overview. + + You can use basic Markdown and use the **Preview** tab to preview the formatting. + +6. Select **Update**. + +## Repository categories + +You can tag Docker Hub repositories with categories, representing the primary +intended use cases for your images. This lets users more easily find and +explore content for the problem domain that they're interested in. + +### Available categories + +The Docker Hub content team maintains a curated list of categories. +The available categories are: + +- **API Management**: Tools for creating, publishing, analyzing, and securing + APIs. +- **Content Management System:** Software applications to create and manage + digital content through templates, procedures, and standard formats. +- **Data Science:** Tools and software to support analyzing data and generating + actionable insights. +- **Databases & Storage:** Systems for storing, retrieving, and managing data. +- **Languages & Frameworks:** Programming language runtimes and frameworks. +- **Integrations & Delivery:** Tools for Continuous Integration (CI) and + Continuous Delivery (CD). +- **Internet of Things:** Tools supporting Internet of Things (IoT) + applications. +- **Machine Learning & AI:** Tools and frameworks optimized for artificial + intelligence and machine learning projects, such as pre-installed libraries + and frameworks for data analysis, model training, and deployment. +- **Message Queues:** Message queuing systems optimized for reliable, scalable, + and efficient message handling. +- **Monitoring & Observability:** Tools to track software and system performance + through metrics, logs, and traces, as well as observability to explore the + system’s state and diagnose issues. +- **Networking:** Repositories that support data exchange and connecting + computers and other devices to share resources. +- **Operating Systems:** Software that manages all other programs on a computer + and serves as an intermediary between users and the computer hardware, while + overseeing applications and system resources. +- **Security:** Tools to protect a computer system or network from theft, + unauthorized access, or damage to their hardware, software, or electronic + data, as well as from service disruption. +- **Web Servers:** Software to serve web pages, HTML files, and other assets to + users or other systems. +- **Web Analytics:** Tools to collect, measure, analyze, and report on web data + and website visitor engagement. + +### Auto-generated categories + +> [!NOTE] +> +> Auto-generated categories only apply to Docker Verified Publishers and +> Docker-Sponsored Open Source program participants. + +For repositories that pre-date the Categories feature in Docker Hub, +categories have been automatically generated and applied, using OpenAI, based +on the repository title and description. + +As an owner of a repository that has been auto-categorized, you can manually +edit the categories if you think they're inaccurate. See [Manage categories for +a repository](#manage-categories-for-a-repository). + +The auto-generated categorization was a one-time effort to help seed categories +onto repositories created before the feature existed. Categories are not +assigned to new repositories automatically. + +### Manage categories for a repository + +You can tag a repository with up to three categories. + +To edit the categories of a repository: + +1. Sign in to [Docker Hub](https://hub.docker.com). +2. Select **Repositories**. + + A list of your repositories appears. + +3. Select a repository. + + The **General** page for the repository appears. + +4. Select the pencil icon under the description field. +5. Select the categories you want to apply. +6. Select **Update**. + +If you're missing a category, use the +[Give feedback link](https://docker.qualtrics.com/jfe/form/SV_03CrMyAkCWVylKu) +to let us know what categories you'd like to see. \ No newline at end of file diff --git a/content/manuals/docker-hub/vulnerability-scanning.md b/content/manuals/docker-hub/repos/manage/vulnerability-scanning.md similarity index 57% rename from content/manuals/docker-hub/vulnerability-scanning.md rename to content/manuals/docker-hub/repos/manage/vulnerability-scanning.md index 13faf26d0d..e9d14d3c89 100644 --- a/content/manuals/docker-hub/vulnerability-scanning.md +++ b/content/manuals/docker-hub/repos/manage/vulnerability-scanning.md @@ -1,22 +1,65 @@ --- -description: Static vulnerability scanning in Docker Hub +description: Learn about vulnerability scanning and Docker Scout image analysis in Docker Hub. keywords: scanning, vulnerabilities, Hub, static -title: Static vulnerability scanning +title: Image security insights weight: 70 +aliases: +- /docker-hub/vulnerability-scanning/ --- +Strengthen the security of your Docker images with Docker Hub's image security +insights. Docker Hub lets you perform either point-in-time static vulnerability +scanning or always up-to-date image analysis using Docker Scout. + +## Docker Scout image analysis + +After turning on Docker Scout image analysis, Docker Scout automatically +analyzes images in your Docker Hub repository. + +Image analysis extracts the Software Bill of Material (SBOM) and other image +metadata, and evaluates it against vulnerability data from security advisories. + +The following sections describe how to turn on or off Docker Scout image +analysis for a Docker Hub repository. For more details about the image analysis, +see [Docker Scout](/manuals/scout/_index.md). + +### Turn on Docker Scout image analysis + +1. Sign in to [Docker Hub](https://hub.docker.com). +2. Select **Repositories**. + + A list of your repositories appears. + +3. Select a repository. + + The **General** page for the repository appears. + +4. Select the **Settings** tab. +5. Under **Image security insight settings**, select **Docker Scout image analysis**. +6. Select **Save**. + +### Turn off Docker Scout image analysis + +1. Sign in to [Docker Hub](https://hub.docker.com). +2. Select **Repositories**. + + A list of your repositories appears. + +3. Select a repository. + + The **General** page for the repository appears. + +4. Select the **Settings** tab. +5. Under **Image security insight settings**, select **None**. +6. Select **Save**. + + +## Static vulnerability scanning + > [!NOTE] > -> This page describes the legacy static vulnerability scanning feature of -> Docker Hub. There's also [Docker Scout](../scout/_index.md), which provides -> more detailed and always up-to-date results, guided remediation steps for -> improving your security posture, and more. -> -> Docker Hub static scanning requires a [Docker Pro, Team, or Business -> subscription](../subscription/_index.md). - -Docker Hub static vulnerability scanning lets you automatically run a -point-in-time scan on your Docker images for vulnerabilities. +> Docker Hub static vulnerability scanning requires a Docker Pro, Team, or +> Business subscription. When you push an image to a Docker Hub repository after turning on static scanning, Docker Hub automatically scans the image to identify vulnerabilities. @@ -31,7 +74,7 @@ Scan results include: - A recommended fixed version, if available, to remediate the vulnerabilities discovered. -## Changes to static scanning in Docker Hub +### Changes to static scanning in Docker Hub From February 27th, 2023, Docker changed the technology that supports the Docker Hub static scanning feature. The static scanning is now powered natively @@ -47,21 +90,6 @@ There is no action required on your part. Scans continue to run as usual with no interruption or changes to pricing. Historical data continues to be available. -## Scan images with static vulnerability scanning - -Repository owners and administrators of a Docker Pro, Team, or a Business tier -enable and disable static vulnerability scanning. When scanning is active on a -repository, anyone with push access can trigger a scan by pushing an image to -Docker Hub. - -Additionally, repository owners in a Docker Pro subscription and team members in -a Team, or a Business subscription can view the detailed scan reports. - -> [!NOTE] -> -> Static vulnerability scanning supports scanning images which are of AMD64 -> architecture, Linux OS, and are less than 10 GB in size. - ### Turn on static vulnerability scanning Repository owners and administrators can enable static vulnerability scanning @@ -69,50 +97,52 @@ on a repository. If you are a member of a Team or a Business subscription, ensure the repository you would like to enable scanning on is part of the Team or a Business tier. +When scanning is active on a repository, anyone with push access can trigger a +scan by pushing an image to Docker Hub. + To enable static vulnerability scanning: -1. Sign in to your [Docker Hub](https://hub.docker.com) account. -2. Select **Repositories** and then choose a repository. -3. Go to the **Settings** tab. -4. Under **Image security insight settings**, select **Static scanning**. -5. Select **Save**. +> [!NOTE] +> +> Static vulnerability scanning supports scanning images which are of AMD64 +> architecture, Linux OS, and are less than 10 GB in size. + +1. Sign in to [Docker Hub](https://hub.docker.com). +2. Select **Repositories**. + + A list of your repositories appears. + +3. Select a repository. + + The **General** page for the repository appears. + +4. Select the **Settings** tab. +5. Under **Image security insight settings**, select **Static scanning**. +6. Select **Save**. ### Scan an image To scan an image for vulnerabilities, push the image to Docker Hub, to the -repository for which you have turned on scanning: +repository for which you have turned on scanning. -1. Ensure you have installed Docker locally. See [Get Docker](/get-started/get-docker.md) - to download and install Docker on your local machine. -2. Use the command line to log into your Docker account. See - [`docker login`](/reference/cli/docker/login.md) for more - information. -3. Tag the image to scan. For example, to tag a Redis image, run: - - ```console - $ docker tag redis /:latest - ``` - -4. Push the image to Docker Hub to trigger a static vulnerability scan for the - image: - - ```console - $ docker push /:latest - ``` - -## View the vulnerability report +### View the vulnerability report To view the vulnerability report: -1. Go to [Docker Hub](https://hub.docker.com) and open the repository page to - view a summary of the static vulnerability scanning report. +1. Sign in to [Docker Hub](https://hub.docker.com). +2. Select **Repositories**. + A list of your repositories appears. + +3. Select a repository. + + The **General** page for the repository appears. It may take a couple of minutes for the vulnerability report to appear in your repository. ![Vulnerability scan report](images/vuln-scan-report.png) -2. Select the **Tags** tab, then **Digest**, then **Vulnerabilities** to view the +4. Select the **Tags** tab, then **Digest**, then **Vulnerabilities** to view the detailed scan report. The scan report displays vulnerabilities identified by the scan, sorting them @@ -153,15 +183,22 @@ actions you can take to remediate the vulnerabilities. For example, you can: Docker Scout can provide you with concrete and contextual remediation steps for improving image security. For more information, see -[Docker Scout](../scout/_index.md). +[Docker Scout](/manuals/scout/_index.md). ### Turn off static vulnerability scanning Repository owners and administrators can disable static vulnerability scanning on a repository. To disable scanning: -1. Sign in to your [Docker Hub](https://hub.docker.com) account. -2. Go to **Repositories** and then select a repository from the list. -3. Go to the **Settings** tab. -4. Under **Image security insight settings**, select **None**. -5. Select **Save**. +1. Sign in to [Docker Hub](https://hub.docker.com). +2. Select **Repositories**. + + A list of your repositories appears. + +3. Select a repository. + + The **General** page for the repository appears. + +4. Select the **Settings** tab. +5. Under **Image security insight settings**, select **None**. +6. Select **Save**. diff --git a/content/manuals/docker-hub/webhooks.md b/content/manuals/docker-hub/repos/manage/webhooks.md similarity index 98% rename from content/manuals/docker-hub/webhooks.md rename to content/manuals/docker-hub/repos/manage/webhooks.md index 7eed021aee..67928127f7 100644 --- a/content/manuals/docker-hub/webhooks.md +++ b/content/manuals/docker-hub/repos/manage/webhooks.md @@ -2,7 +2,9 @@ description: Docker Hub Webhooks keywords: Docker, webhooks, hub, builds title: Webhooks -weight: 40 +weight: 80 +aliases: +- /docker-hub/webhooks/ --- You can use webhooks to cause an action in another service in response to a push event in the repository. Webhooks are POST requests sent to a URL you define in Docker Hub. diff --git a/content/manuals/docker-hub/repos/settings.md b/content/manuals/docker-hub/repos/settings.md new file mode 100644 index 0000000000..279295d458 --- /dev/null +++ b/content/manuals/docker-hub/repos/settings.md @@ -0,0 +1,55 @@ +--- +description: Learn about personal repository settings in Docker Hub +keywords: Docker Hub, Hub, repositories, settings +title: Personal settings for repositories +linkTitle: Personal settings +toc_max: 3 +weight: 50 +--- + +For your account, you can set personal settings for repositories, including +default repository privacy and autobuild notifications. + +## Default repository privacy + +When creating a new repository in Docker Hub, you are able to specify the +repository visibility. You can also change the visibility at any time in Docker Hub. + +The default setting is useful if you 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 your default repository privacy. + +### Configure default repository privacy + +1. Sign in to [Docker Hub](https://hub.docker.com). +2. Select **Repositories**. +3. Near the top-right corner, select the settings icon and then **Repository Settings**. +4. Select the **Default privacy** for any new repository created. + + - **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. + +5. Select **Save**. + +## Autobuild 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 **Repositories**. +3. Near the top-right corner, select the settings icon and then **Repository Settings**. +4. Select the **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**. diff --git a/content/manuals/registry.md b/content/manuals/registry.md index c4b34bef8b..e11d03183f 100644 --- a/content/manuals/registry.md +++ b/content/manuals/registry.md @@ -84,7 +84,7 @@ For documentation related to authentication to the Docker Hub registry, see: [specification]: https://github.com/opencontainers/distribution-spec/blob/v1.0.1/spec.md [OCI image manifest]: https://github.com/opencontainers/image-spec/blob/main/manifest.md [Docker image manifest version 2, schema 2]: https://distribution.github.io/distribution/spec/manifest-v2-2/ -[OCI artifacts]: /docker-hub/oci-artifacts/ +[OCI artifacts]: /docker-hub/repos/manage/hub-images/oci-artifacts/ [oauth2]: https://distribution.github.io/distribution/spec/auth/oauth/ [jwt]: https://distribution.github.io/distribution/spec/auth/jwt/ [token]: https://distribution.github.io/distribution/spec/auth/token/ diff --git a/content/manuals/security/_index.md b/content/manuals/security/_index.md index 4b5eb7bf5a..22879e3535 100644 --- a/content/manuals/security/_index.md +++ b/content/manuals/security/_index.md @@ -64,7 +64,7 @@ grid_developers: - title: Static vulnerability scanning description: Automatically run a point-in-time scan on your Docker images for vulnerabilities. icon: image_search - link: /docker-hub/vulnerability-scanning/ + link: /docker-hub/repos/manage/vulnerability-scanning/ - title: Docker Engine security description: Understand how to keep Docker Engine secure. icon: security diff --git a/content/manuals/security/security-announcements.md b/content/manuals/security/security-announcements.md index f98c6c0dbe..9c1cbddd06 100644 --- a/content/manuals/security/security-announcements.md +++ b/content/manuals/security/security-announcements.md @@ -145,7 +145,7 @@ Docker Hub security scans triggered after 1200 UTC 21 October 2021 are now correctly identifying the Text4Shell CVE. Scans before this date do not currently reflect the status of this vulnerability. Therefore, we recommend that you trigger scans by pushing new images to Docker Hub to view the status of -the Text4Shell CVE in the vulnerability report. For detailed instructions, see [Scan images on Docker Hub](../docker-hub/vulnerability-scanning.md). +the Text4Shell CVE in the vulnerability report. For detailed instructions, see [Scan images on Docker Hub](../docker-hub/repos/manage/vulnerability-scanning.md). ### Docker Official Images impacted by CVE-2022-42889 @@ -195,7 +195,7 @@ Docker Hub security scans triggered after 1700 UTC 13 December 2021 are now correctly identifying the Log4j 2 CVEs. Scans before this date do not currently reflect the status of this vulnerability. Therefore, we recommend that you trigger scans by pushing new images to Docker Hub to view the status of -Log4j 2 CVE in the vulnerability report. For detailed instructions, see [Scan images on Docker Hub](../docker-hub/vulnerability-scanning.md). +Log4j 2 CVE in the vulnerability report. For detailed instructions, see [Scan images on Docker Hub](../docker-hub/repos/manage/vulnerability-scanning.md). ## Docker Official Images impacted by Log4j 2 CVE diff --git a/content/manuals/subscription/core-subscription/details.md b/content/manuals/subscription/core-subscription/details.md index 021f7b2dc1..e557bd3c18 100644 --- a/content/manuals/subscription/core-subscription/details.md +++ b/content/manuals/subscription/core-subscription/details.md @@ -29,7 +29,7 @@ Docker Personal includes: - Unlimited public repositories - Unlimited [Scoped Access Tokens](../../security/for-developers/access-tokens.md) -- Unlimited [collaborators](../../docker-hub/repos/access.md#collaborators-and-their-role) for public repositories at no cost per month. +- Unlimited [collaborators](../../docker-hub/repos/manage/access.md#collaborators-and-their-role) for public repositories at no cost per month. - Access to [Docker Scout Free](../scout-details.md#docker-scout-free) to get started with software supply chain security. Additionally, anonymous users get 100 pulls every 6 hours and users that sign in to Docker get 200 pulls every 6 hours. @@ -44,8 +44,8 @@ Docker Pro includes: - All the features available in Personal - Unlimited private repositories - 5000 image [pulls per day](../../docker-hub/download-rate-limit.md) -- [Auto Builds](../../docker-hub/builds/_index.md) with 5 concurrent builds -- 300 [Vulnerability Scans](../../docker-hub/vulnerability-scanning.md) +- [Auto Builds](../../docker-hub/repos/manage/builds/_index.md) with 5 concurrent builds +- 300 [Vulnerability Scans](../../docker-hub/repos/manage/vulnerability-scanning.md) For a list of features available in each tier, see [Docker Pricing](https://www.docker.com/pricing/). @@ -56,8 +56,8 @@ For a list of features available in each tier, see [Docker Pricing](https://www. Docker Team includes: - Everything included in Docker Pro - Unlimited teams -- [Auto Builds](../../docker-hub/builds/_index.md) with 15 concurrent builds -- Unlimited [Vulnerability Scanning](../../docker-hub/vulnerability-scanning.md) +- [Auto Builds](../../docker-hub/repos/manage/builds/_index.md) with 15 concurrent builds +- Unlimited [Vulnerability Scanning](../../docker-hub/repos/manage/vulnerability-scanning.md) - 5000 image [pulls per day](../../docker-hub/download-rate-limit.md) for each team member There are also advanced collaboration and management tools, including organization and team management with [Role Based Access Control (RBAC)](../../security/for-admins/roles-and-permissions.md), [activity logs](../../admin/organization/activity-logs.md), and more. diff --git a/content/manuals/trusted-content/dvp-program.md b/content/manuals/trusted-content/dvp-program.md index e9dc38a509..ed92b92595 100644 --- a/content/manuals/trusted-content/dvp-program.md +++ b/content/manuals/trusted-content/dvp-program.md @@ -98,7 +98,7 @@ Scanning images ensures that the published content is secure, and proves to developers that they can trust the image. You can enable analysis on a per-repository -basis. For more about using this feature, see [Basic vulnerability scanning](/docker-hub/vulnerability-scanning/). +basis. For more about using this feature, see [Basic vulnerability scanning](/docker-hub/repos/manage/vulnerability-scanning/). ### Who's eligible to become a verified publisher?