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.
ghcr.io
est séparé du docker.pkg.github.com
précédentdocker login
pour vous connecter à ghcr.io
. Utilisez le jeton personnel de GitHub pour vous authentifier lors de la connexionÀ 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).
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.
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.
Vous pouvez afficher toutes les balises avec «Afficher toutes les versions» et choisir de supprimer chaque balise.
De plus, les paramètres du package vous offrent la possibilité de rendre public ou de supprimer ce package.
Si vous sélectionnez «Rendre public» ici, les informations du package concernant l'image cible seront également affichées sur votre profil.
Enjoy!
Recommended Posts