9. Partager son image dans une Registry - Docker
Maintenant que vous savez construire des images Docker de manière optimisée, il est temps de partager votre image Docker dans une registry.
Les Registrys
A la manière d'un repository de paquets debian
par exemple, Docker dispose de son propre système de partage et de stockage d'images Docker. La registry publique stockant les images Docker officielles étant le Docker Hub et est accessible ici :
C'est dans cette registry que nous avons récupéré l'image Python officielle.
Lorsque vous lancez la commande docker pull
suivie du nom de l'image, comme par exemple python
, Docker va automatiquement essayer de récupérer l'image sur le Docker Hub.
Le fonctionnement est identique pour la commande docker login
qui va essayer de se connecter au Docker Hub.
Il est possible d'auto-héberger sa propre registry, avec notamment le projet open source Harbor qui est disponible ici :
Il est également possible de rechercher une image Docker en ligne de commande comme ceci :
docker search NOM DE L'IMAGE
Le tag
Partons du principe que vous avez un compte sur le Docker Hub et que vous avez crée un repository, nous allons voir comment publier une image sur une registry. Cet exemple vaut pour n'importe quelle registry.
Toujours avec notre image Python contenant le module requests
, nous l'avons construite précédemment, et est stockée uniquement en local.
Pour la publier dans une registry, il faut d'abord la tagger avec la commande docker tag
comme ceci :
docker tag <nom de l'image>:<tag> <nom d'user de la registry>/<repo>:<tag>
Cette commande va venir attribuer un tag
à l'image.
Le push
Maintenant que l'image possède un tag
, il suffit de la publier avec la commande docker push
.
docker login
mais par défaut, Docker va essayer de s'authentifier auprès du Docker Hub si vous ne spécifiez pas le nom de domaine de votre registry privée.docker push <nom de l'image>/<repo>:<tag>
Il est très important de maîtriser ces notions car lorsque vous construisez des images Docker répondant à vos propres standards, il arrive souvent d'avoir plusieurs versions.
Il est donc impératif de maîtriser les tags, et d'avoir dans la plupart des cas, un tag latest
de son image.
Nous allons voir dans le prochain cours comment orchestrer ses conteneurs avec l'outil Docker Compose.