Comment fonctionnent les registres de conteneurs Docker ?

0
180

Les registres de conteneurs Docker tels que Docker Hub sont des plates-formes d'hébergement et de partage de conteneurs Docker. Alors que le Docker Hub par défaut se concentre sur les conteneurs publics, la plupart des fournisseurs de cloud comme AWS et GCP exécuteront leurs propres registres de conteneurs privés.

Que sont les registres Docker ?

Les registres de conteneurs sont un système de stockage et de distribution en ligne pour les images Docker nommées. C'est assez similaire à un gestionnaire de packages comme NPM, car il peut également stocker différentes versions d'images. Toute personne disposant d'un compte de registre peut se connecter et télécharger des images créées en exécutant Docker Push avec un paramètre de nom d'utilisateur/nom d'image :

docker push anthonyheddings/testcontainer

Ensuite, si vous souhaitez utiliser ce conteneur ailleurs, vous pouvez le télécharger de la même manière :

docker pull anthonyheddings/testcontainer

À moins que vous ne construisiez votre image À PARTIR de zéro, vous tirez probablement du Docker Hub. Le Docker Hub est le registre Docker par défaut.

Lorsque vous écrivez un fichier Docker pour votre application, vous pouvez étendre les images du Docker Hub à l'aide de la commande FROM :

FROM ubuntu Advertisement

Pour certains conteneurs comme ubuntu, ce sont des images officielles Docker, ce qui signifie qu'ils sont si largement utilisés que vous n'avez pas besoin de spécifier le nom d'utilisateur qui l'a téléchargé (ce qui peut être redondant si vous ne faites que taper ubuntu/ubuntu).

Marquage des conteneurs

Les conteneurs des registres Docker sont organisés en référentiels. Ils sont assez similaires au concept des référentiels Git, sauf qu'au lieu de branches, les conteneurs sont organisés à l'aide de balises différentes.

Les balises sont simplement des étiquettes qui offrent un meilleur moyen de gérer le contrôle de version et les versions. Vous pouvez les affecter à n'importe quel build terminé. Plutôt que de référencer l'ID de build, vous pouvez baliser une image avec une étiquette au format major.minor.patch et être facilement en mesure de déterminer quelle image correspond à laquelle, ou quel que soit le format préféré par votre organisation.

Si vous ne spécifiez pas de balise, Docker appliquera automatiquement la “dernière” étiqueter. Chaque fois que vous extrayez une image du Hub, vous extrayez probablement la dernière, sauf si vous spécifiez un numéro de version.

Vous pouvez utiliser la balise docker pour marquer manuellement les images, mais c'est beaucoup plus facile à utilisez -t avec docker build.

 docker build -t username/image:tag . Publicité

Lorsque vous transférez l'image vers le Docker Hub, ou tout autre registre, vous pourrez extraire différentes versions en fonction de leur balise.

Alternatives à Docker Hub

Le Docker Hub est la valeur par défaut, donc si vous n'en spécifiez pas une autre, toutes les commandes Docker qui fonctionnent avec les registres ajouteront hub.docker.com par défaut.

Cependant, de nombreux fournisseurs de cloud offriront leurs propres registres Docker en tant que service, qui s'intègrent généralement aux autres services liés aux conteneurs qu'ils fournissent. Par exemple, il existe Google Container Registry, qui fonctionne bien avec Cloud Run et son service Kubernetes.

Vous pouvez basculer vers un nouveau registre, il vous suffit d'ajouter l'URL du registre à toutes les références de conteneur. Pour GCR, ce serait gcr.io :

gcr.io/anthonyheddings/test

Tout comme Docker Hub, vous devrez vous connecter au registre avec la connexion Docker.

AWS a Elastic Container Registry, qui fonctionne bien avec Elastic Container Service et Elastic Kubernetes Service.

Azure dispose d'Azure Container Registry, qui fonctionne avec leur service Kubernetes.