Étapes pour pousser une image Docker vers GitHub Container Registry (ghcr.io)

Aperçu

Le 1er septembre 2020, GitHub a annoncé GitHub Container Registry comme version bêta publique et a commencé à l'utiliser le même jour. devenu. C'est l'un des registres publics (où vous placez vos images Docker) comme Docker Hub, et c'est un service que toute personne disposant d'un compte GitHub peut utiliser.

Cela résume les étapes pour pousser une image Docker sur ghcr.io et rendre l'image disponible pour tout téléchargement.

Qu'est-ce que GitHub Container Registry?

À partir de ce qui précède, GitHub Container Registry rend des images Docker à des tiers sans être restreint ou affecté par la nouvelle politique de stockage d'images de Docker Hub. On peut dire que c'est un endroit qui peut être publié (pour le moment).

procédure

Pour pousser une image vers ghcr.io et la publier

Pour envoyer l'image à GitHub Container Registry (GHCR), vous devez vous connecter à GHCR avec la commande docker login à l'avance. Pour vous connecter, vous devez créer un jeton d'accès personnel sur votre page de paramètres sur GitHub (documentation de la procédure (https://docs.github.com/en/github/authenticating-to-) github / création-d'un-jeton-d'accès-personnel)).

Ici, on suppose que la chaîne de caractères du jeton d'accès personnel est enregistrée dans ~ / ghcr.txt.

Accédez ensuite à GHCR avec la commande docker login. Sous «<nom d'utilisateur github>» se trouve votre propre nom d'utilisateur.

cat ~/ghcr.txt | docker login ghcr.io -u <nom d'utilisateur github> --password-stdin

Si l'authentification réussit, vous verrez un message semblable au suivant:

WARNING! Your password will be stored unencrypted in /home/name/.docker/config.json.
Configure a credential helper to remove this warning. See
https://docs.docker.com/engine/reference/commandline/login/#credentials-store

Login Succeeded

Pour soumettre une image, vous devez marquer l'image avant de la soumettre. Pour Docker Hub, c'était sous la forme <username> / imagename: tag, mais pour GHCR, il devrait être sous la forme ghcr.io/ <username> / imagename: tag.

Par exemple

--Image avec l'ID d'image bf9f52b2d3fa

S'il y a ça

--Nom du dépôt docker-sample-nginx --Nommez l'image sample-nginx --Tag dernier

Si vous voulez quelque chose comme ça, vous devez marquer l'image que vous envoyez avec ghcr.io/zembutsu/docker-sample-nginx/sample-nginx: latest. Pour ce faire, utilisez la commande docker tag et exécutez:

docker tag bf9f52b2d3fa ghcr.io/zembutsu/docker-sample-nginx/sample-nginx:latest

Après avoir confirmé l'ajout de la balise avec docker images, envoyez-le simplement avec la commande docker push.

$ docker push ghcr.io/zembutsu/docker-sample-nginx/sample-nginx:latest
The push refers to repository [ghcr.io/zembutsu/docker-sample-nginx/sample-nginx]
a49a33440fe7: Pushed
c63ea97607b8: Pushed
6ad8d562c843: Layer already exists
425ee8569962: Layer already exists
5d9ee84be1ec: Layer already exists
6bcd003260b2: Layer already exists
50644c29ef5a: Layer already exists
latest: digest: sha256:d6f2938d0fab3daeb6433c361da460970eb9b8d2796f1679afe6e41bb87b1937 size: 1774

À ce stade, un référentiel privé avec le nom docker-sample-nginx est automatiquement créé, et toute personne connaissant le chemin de l'image (nom / tag de l'image) peut le télécharger.

Pour voir l'image téléchargée, cliquez sur l'onglet Packages de votre profil GitHub et vous verrez les informations de l'image Docker marquées Privé dans les informations du package.

image.png

Vous pouvez cliquer sur le nom du package affiché ici pour vérifier l'URL d'extraction de l'image, publier l'image ou supprimer l'image. Cliquez sur "Modifier le package" pour modifier ces états.

image.png

Vous pouvez afficher toutes les balises avec «Afficher toutes les versions» et choisir de supprimer chaque balise.

image.png

De plus, les paramètres du package vous offrent la possibilité de rendre public ou de supprimer ce package.

image.png

Si vous sélectionnez «Rendre public» ici, les informations du package concernant l'image cible seront également affichées sur votre profil.

Enjoy!

Informations de référence

Recommended Posts

Étapes pour pousser une image Docker vers GitHub Container Registry (ghcr.io)
Docker push vers GitHub Container Registry (ghcr.io)
Flux de travail minimal pour pousser l'image Docker vers Github Container Registry avec des actions Github
Transférer une image Docker des actions GitHub vers GitHub Container Registry
Tester, créer et pousser des images Docker vers GitHub Container Registry à l'aide d'actions GitHub
[GCP] Jusqu'à ce que vous transmettiez l'image Docker locale à Container Registry
[Notes personnelles] Comment pousser une image Docker vers des packages GitHub
Publier l'image Docker dans le registre de packages GitHub
Migrer les images Dockerhub vers Github Container Registry
Poussez l'image vers le hub docker à l'aide de Jib
Poussez l'image Docker distribuée par Docker Hub vers Google Container Registry et démarrez la VM en fonction de cette image
Premiers pas avec Git Hub Container Registry au lieu de Docker Hub
L'histoire du transfert d'un conteneur Docker vers le registre de packages GitHub et Docker Hub avec des actions GitHub
Introduction à Linux Container / Docker (Partie 1)
Étapes pour exécuter Docker sur Mac
Migrer l'image Docker vers un autre serveur
Introduction à Linux Container / Docker (Partie 2)
2. Créez une image Docker et enregistrez le registre
[Docker] Copie des fichiers du conteneur Docker vers l'hôte
[Docker] Démarrez le conteneur, démarrez bash à l'intérieur du conteneur, supprimez l'image
La construction du conteneur Docker ne parvient pas à installer php-radis
Introduction au développement pratique de conteneurs Docker / Kubernetes
Étapes pour enregistrer un fichier Java sur GitHub
J'ai essayé de vérifier AdoptOpenJDK 11 (11.0.2) avec l'image Docker
Comment vérifier le journal dans le conteneur Docker
Comment obtenir un heapdump à partir d'un conteneur Docker
Comment réduire l'image de Spring Boot Docker
Paramètre pour quitter le conteneur Docker avec VScode
Copier les fichiers du conteneur Docker vers l'hôte (docker cp)
J'ai créé un conteneur Docker pour exécuter Maven
Comment mettre à jour un fichier prédéfini dans un conteneur Docker
Comment donner votre image à quelqu'un avec Docker
Mettre à jour l'image du conteneur avec KUSANAGI s'exécute sur Docker
Modifier le dossier de placement de l'image et du conteneur Docker