* Add new article with user account procedure * Update reusables * Add other prereq * Add product variable * Add a reminder reusable for getting started procedures * Revise organization article * Condense enabling articles into one * Deets * Delete old article * wording tweak * Minor tweak * Add personal user account explanation * Rework explanation * Apply suggestions from code review Co-authored-by: Kayla Ngan <kaylangan@github.com> * Apply suggestions from code review Co-authored-by: Lucas Costi <lucascosti@users.noreply.github.com> * Apply suggestions from code review Co-authored-by: Kayla Ngan <kaylangan@github.com> * Update screenshot and remove other feature previews * Create a reusable for accessing the feature preview * ✂️ per @lucascosti's suggestion * Update images * Update article title * Apply suggestions from code review Co-authored-by: Lucas Costi <lucascosti@users.noreply.github.com> * Apply suggestions from code review Co-authored-by: Kayla Ngan <kaylangan@github.com> Co-authored-by: Lucas Costi <lucascosti@users.noreply.github.com>
3.9 KiB
title, intro, product, versions
| title | intro | product | versions | ||
|---|---|---|---|---|---|
| Pushing and pulling Docker images | You can store and manage Docker images in {% data variables.product.prodname_github_container_registry %}. | {% data reusables.gated-features.packages %} |
|
{% data reusables.package_registry.container-registry-beta %}
To push and pull container images owned by an organization, an organization admin must enable {% data variables.product.prodname_github_container_registry %} for the organization. For more information, see "Enabling improved container support."
Authenticating to {% data variables.product.prodname_github_container_registry %}
{% data reusables.package_registry.authenticate_with_pat_for_container_registry %}
{% data reusables.package_registry.authenticate-to-container-registry-steps %}
Pushing container images
This example pushes the latest version of IMAGE-NAME.
$ docker push ghcr.io/OWNER/IMAGE_NAME:latest
This example pushes the 2.5 version of the image.
$ docker push ghcr.io/OWNER/IMAGE-NAME:2.5
When you first publish a package, the default visibility is private. To change the visibility or set access permissions, see "Configuring access control and visibility for container images."
Pulling container images
Pull by digest
To ensure you're always using the same image, you can specify the exact container image version you want to pull by the digest SHA value.
- To find the digest SHA value, use
docker inspectordocker pulland copy the SHA value afterDigest:
$ docker inspect ghcr.io/OWNER/IMAGE_NAME
- Remove image locally as needed.
$ docker rmi ghcr.io/OWNER/IMAGE_NAME:latest
- Pull the container image with
@YOUR_SHA_VALUEafter the image name.
$ docker pull ghcr.io/OWNER/IMAGE_NAME@sha256:82jf9a84u29hiasldj289498uhois8498hjs29hkuhs
Pull by name
$ docker pull ghcr.io/OWNER/IMAGE_NAME
Pull by name and version
Docker CLI example showing an image pulled by its name and the 1.14.1 version tag:
$ docker pull ghcr.io/OWNER/IMAGE_NAME:1.14.1
> 5e35bd43cf78: Pull complete
> 0c48c2209aab: Pull complete
> fd45dd1aad5a: Pull complete
> db6eb50c2d36: Pull complete
> Digest: sha256:ae3b135f133155b3824d8b1f62959ff8a72e9cf9e884d88db7895d8544010d8e
> Status: Downloaded newer image for ghcr.io/orgname/image-name/release:1.14.1
> ghcr.io/orgname/image-name/release:1.14.1
Pull by name and latest version
$ docker pull ghcr.io/OWNER/IMAGE_NAME:latest
> latest: Pulling from user/image-name
> Digest: sha256:b3d3e366b55f9a54599220198b3db5da8f53592acbbb7dc7e4e9878762fc5344
> Status: Downloaded newer image for ghcr.io/user/image-name:latest
> ghcr.io/user/image-name:latest
Building container images
This example builds the hello_docker image:
$ docker build -t hello_docker .
Tagging container images
- Find the ID for the Docker image you want to tag.
$ docker images
> REPOSITORY TAG IMAGE ID CREATED SIZE
> ghcr.io/my-org/hello_docker latest 38f737a91f39 47 hours ago 91.7MB
> ghcr.io/my-username/hello_docker latest 38f737a91f39 47 hours ago 91.7MB
> hello-world latest fce289e99eb9 16 months ago 1.84kB
- Tag your Docker image using the image ID and your desired image name and hosting destination.
$ docker tag 38f737a91f39 ghcr.io/OWNER/NEW_IMAGE_NAME:latest