Note: GitHub Container Registry is currently in public beta and subject to change. During the beta, storage and bandwidth are free. To use GitHub Container Registry, you must enable the feature for your account. For more information, see "Enabling improved container support."
With the container registry you can:
- Store container images within your organization and user account, rather than a repository.
- Set fine-grained permissions and visibility independent of repository permissions and visibility.
- Access public container images anonymously.
To share context about your package's use, you can link a repository to your container image on GitHub. For more information, see "Connecting a repository to a container image."
GitHub Container Registry has different hosting locations, permission, and visibility than other package registries.
|Package registries||GitHub Container Registry|
|Hosting locations||You can host multiple packages in one repository.||You can host multiple container images in one organization or user account.|
|Permissions||Each package inherits the permissions of the repository where the package is hosted. |
For example, anyone with read permissions for a repository can install a package as a dependency in a project, and anyone with write permissions can publish a new package version.
|For each container image, you can choose the access level that others have. The permissions for container image access are separate from your organization and repository permissions.|
|Visibility||You can publish packages in a public repository (public packages) to share with all of GitHub, or in a private repository (private packages) to share with collaborators or an organization.||You can set the visibility of each of your container images. A private container image is only visible to people and teams who are given access within your organization. A public container image is visible to anyone.|
|Anonymous access||N/A||You can access public container images anonymously.|
For more information, see "About scopes and permissions for GitHub Container Registry."
The container registry currently supports the following container image formats:
The GitHub Container Registry hosts containers at
|Package client||Language||Package format||Description|
|Docker CLI||N/A||Docker container support.|
If you have admin permissions to a container image, you can set the container image to private or public. Public images allow anonymous access and can be pulled without authentication or signing in via the CLI.
As an admin, you can also grant access permissions for a container image that are separate from the permissions you've set at the organization and repository levels.
For container images published and owned by a user account, you can give any person an access role. For container images published and owned by an organization, you can give any person or team in the organization an access role.
|Permission role||Access description|
|Read||Can download package. |
Can read package metadata.
|Write||Can upload and download this package. |
Can read and write package metadata.
|Admin||Can upload, download, delete, and manage this package. |
Can read and write package metadata.
Can grant package permissions.
For more information, see "Configuring access control and visibility for container images."
To use or manage a package hosted by a package registry, you must use a token with the appropriate scope, and your user account must have appropriate permissions for that repository.
|Download and install container images from GitHub Container Registry|
|Upload and publish container images to GitHub Container Registry|
|Delete specified versions of private or public container images from GitHub Container Registry. For more information, see "Deleting and restoring a package."|
To learn about available scopes and permissions for container images, see "Configuring access control and visibility for container images."
During the GitHub Container Registry beta, both the new container registry and existing GitHub Packages Docker registry will be free. For more information about the GitHub Packages Docker registry, see "Configuring Docker for use with GitHub Packages."
After the beta, the same billing and storage rates that other GitHub Packages registries use will apply to the container registry. For more information, see "About billing for GitHub Packages."
If you have feedback or feature requests for GitHub Container Registry, use the feedback form.
Contact GitHub Support about GitHub Container Registry using our contact form if:
- You experience anything that contradicts the documentation.
- You encounter vague or unclear errors.
- Your published package contains sensitive data, such as GDPR violations, API Keys, or personally-identifying information.