Je suis confus quant à la différence entre les registres docker et les référentiels. Il semble que la documentation Docker utilise les deux mots de manière interchangeable. En outre, les référentiels sont parfois appelés images, comme celui-ci dans leurs documents:
Afin de pousser un référentiel vers son registre, vous devez avoir nommé une image ou validé votre conteneur dans une image nommée comme nous l'avons vu ici.
Vous pouvez maintenant pousser ce référentiel vers le registre désigné par son nom ou sa balise.
Comment pouvez-vous pousser un référentiel vers un registre? N'appuyez-vous pas l'image vers le référentiel?
git
, alors - Docker Registry (la valeur par défaut esthub.docker.com
) => GitHub (github.com
); - Docker Repository => Git Repository; - Docker Tag => Git Ref (Branch / Tag)Réponses:
Le registre Docker est un service qui stocke vos images Docker.
Le registre Docker peut être hébergé par un tiers, en tant que registre public ou privé, comme l'un des registres suivants:
ou vous pouvez héberger le registre docker par vous-même
(voir https://docs.docker.com/ee/dtr/ pour plus de détails).
Le référentiel Docker est une collection de différentes images Docker avec le même nom, qui ont des balises différentes. La balise est l'identifiant alphanumérique de l'image dans un référentiel.
Par exemple, voir https://hub.docker.com/r/library/python/tags/ . Il existe de nombreuses balises différentes pour l'image python officielle, ces balises sont toutes membres du référentiel python officiel sur le Docker Hub. Docker Hub est un registre Docker hébergé par Docker.
Pour en savoir plus, lisez:
la source
Extrait du livre Utilisation de Docker, développement et déploiement de logiciels avec des conteneurs
Registres, référentiels, images et balises
Il existe un système hiérarchique de stockage des images. La terminologie suivante est utilisée:
Enregistrement
Un service chargé de l'hébergement et de la diffusion des images. Le registre par défaut est le Docker Hub.
Dépôt
Une collection d'images associées (fournissant généralement différentes versions de la même application ou service).
Marque
Un identifiant alphanumérique attaché aux images dans un référentiel (par exemple, 14.04 ou stable).
Ainsi, la commande
docker pull amouat/revealjs:latest
téléchargera l'image la plus récente dans leamouat/revealjs
référentiel à partir du registre Docker Hub.la source
ubuntu:latest
etubuntu:16.04
ont le mêmeImage ID
, ce qui signifie qu'il ne s'agit que de plusieurs balises pour la même image.docker pull
, qui se lit en partie: "Pour télécharger une image particulière ou un ensemble d'images (c'est-à-dire un référentiel), utilisezdocker pull
. Si aucune balise n'est fournie, Docker Engine utilise la:latest
balise par défaut. " Comment, alors, «téléchargerait-on un… ensemble d'images (c'est-à-dire un référentiel)»? 🤔Compléter les informations:
docker push
.namespace/repo-name:tag
myregistryhost:5000/namespace/repo-name:tag
la source
image-name
. Le format doit êtreuser-name/repo-name:tag
, selon la documentation Docker . (J'aurais aimé que Docker utilise une meilleure terminologie, c'est assez déroutant, et ils ne sont même pas cohérents tout le temps).docker info |grep Registry
Un référentiel docker est une jolie combinaison de
registry
etimage
.est le même que
la source
Docker Registry est un service que vous pouvez soit héberger vous-même (approuvé et privé), soit laisser docker hub être l'hôte de ce service. Habituellement, si votre logiciel est commercial, vous l'avez hébergé en tant que registre «privé et fiable». Pour les développeurs Java, cela ressemble un peu à la configuration de Maven Artifactory.
Docker Repository est un ensemble d'images "taguées". Un exemple est que vous avez peut-être tagué 5 des
ubuntu:latest
images:a) Éditeur Nano (image1_tag: v1)
b) Un logiciel spécifique 1 (image1_tag: v2)
c) Sudo (image1_tag: v3)
d) démon http apache (image1_tag: v4)
e) tomcat (étiquette_image1: v5)
Vous pouvez utiliser la
docker push
commande pour pousser chacune des images ci-dessus vers votre référentiel. Tant que les noms de référentiel correspondent, ils seront envoyés avec succès, et apparaîtront sous le référentiel choisi et correctement étiquetés.Maintenant, votre question est: "Alors, où est hébergé ce référentiel / qui gère le service"? C'est là qu'intervient Docker Registry. Par défaut, vous obtiendrez un registre docker hub (Open Source) que vous pourrez utiliser pour conserver votre référentiel privé / public. Ainsi, sans aucune modification, vos images seront poussées vers votre référentiel privé dans Docker Hub. Voici un exemple de sortie lorsque vous envoyez vos balises d'image:
Et si vous tapez immédiatement,
docker images --digests -a
vous pouvez confirmer que vos balises d'image poussées affichent maintenant une nouvelle signature par rapport au référentiel privé géré par le registre du hub docker.la source
Docker Hub et d'autres services d'hébergement de référentiels tiers sont appelés «registres». Un registre stocke une collection de référentiels.
Comme un registre peut avoir de nombreux référentiels et un référentiel peut avoir plusieurs versions différentes de la même image qui sont individuellement versionnées avec des balises.
la source