1. Docker Hub ou registre privé
Comme expliqué plus haut, un registre
centralisé pour les images est nécessaire afin
d’éviter le message d’erreur suivant lorsqu’un service
est créé :
unable to pin image node-app to digest: errors:
denied: requested access to the resource is denied
unauthorized: authentication required
En effet, Docker a besoin de fixer le contenu
de l’image, calculer son empreinte et assurer qu’elle est disponible
exactement sous la même forme dans tous les nœuds
qui auraient besoin de l’instancier en un conteneur. Or, ceci n’est
pas possible si l’image associée à un service
est locale à la machine, car Docker ne prend pas en charge
sa diffusion sur le réseau Swarm (ce qui serait d’ailleurs peu
efficace en termes de ressources).
La solution est de faire pointer tous les
nœuds du cluster vers un registre centralisé d’images
Docker. Celui-ci peut bien sûr être Docker HubDocker Hub,
mais également un registre privé mis en place
par un administrateur.
La mise en place d’un registre et sa sécurisation
ont été abondamment détaillées dans
le premier livre sur Docker du même auteur aux Éditions
ENI et nous ne reviendrons donc pas sur le sujet, hormis pour préciser
que l’adresse de référence pour un registre privé à monter
par vous-même ...