run - docker-compose
Diferencia entre el registro Docker y el repositorio (6)
Complementando la información:
-
Por lo general, empuja un repositorio a un registro (y todas las imágenes que forman parte de él).
Pero puede insertar una sola imagen en un registro.
En todos los casos, usas
docker push
. -
Una imagen tiene una ID de imagen de 12 dígitos hexadecimales, pero también se identifica por:
namespace/repo-name:tag
-
El nombre completo de la imagen puede ir precedido opcionalmente por el nombre del host del registro y el puerto:
myregistryhost:5000/namespace/repo-name:tag
- Una convención de nomenclatura común es usar su nombre de usuario de registro como lo que llamé "espacio de nombres".
Estoy confundido sobre la diferencia entre los registros y repositorios de Docker. Parece que la documentación de Docker usa las dos palabras indistintamente. Además, los repositorios a veces se denominan imágenes, como esta de sus documentos:
Para insertar un repositorio en su registro, debe haber nombrado una imagen o haber confirmado su contenedor a una imagen con nombre como vimos aquí.
Ahora puede insertar este repositorio en el registro designado por su nombre o etiqueta.
¿Cómo puede empujar un repositorio a un registro? ¿No estás empujando la imagen al repositorio?
Del libro Usando Docker, Desarrollando e implementando Software con Contenedores
Registros, repositorios, imágenes y etiquetas
Hay un sistema jerárquico para almacenar imágenes. Se utiliza la siguiente terminología:
Registro
Un servicio responsable de alojar y distribuir imágenes. El registro predeterminado es el Docker Hub.
Repositorio
Una colección de imágenes relacionadas (que generalmente proporcionan diferentes versiones de la misma aplicación o servicio).
Etiqueta
Un identificador alfanumérico adjunto a las imágenes dentro de un repositorio (por ejemplo, 14.04 o estable).
Entonces, el comando
docker pull amouat/revealjs:latest
descargará la imagen etiquetada más reciente dentro del repositorio
amouat/revealjs
del registro Docker Hub.
Docker Registry es un servicio, que puede alojar usted mismo (de confianza y privado) o puede dejar que Docker Hub sea el anfitrión de este servicio. Por lo general, si su software es comercial, lo habrá alojado como un registro "privado y de confianza". Para los desarrolladores de Java, esto es algo análogo a la configuración de Maven Artifactory.
Docker Repository es un conjunto de imágenes "etiquetadas".
Un ejemplo es que puede haber etiquetado 5 de
ubuntu:latest
imágenes:
a) Nano editor (image1_tag: v1)
b) Un software específico 1 (image1_tag: v2)
c) Sudo (image1_tag: v3)
d) Apache http daemon (etiqueta1 de imagen: v4)
e) tomcat (image1_tag: v5)
Puede usar el comando
docker push
para enviar cada una de las imágenes anteriores a su repositorio.
Mientras los nombres del repositorio coincidan, se enviarán con éxito y aparecerán debajo del repositorio elegido y se etiquetarán correctamente.
Ahora, su pregunta es: "Entonces, ¿dónde está alojado este repositorio / quién administra el servicio"? Ahí es donde Docker Registry entra en escena. De forma predeterminada, obtendrá un registro de Docker Hub (código abierto) que puede usar para mantener su repositorio privado / público. Entonces, sin ninguna modificación, sus imágenes se enviarán a su repositorio privado en Docker Hub. Un ejemplo de salida cuando empuja sus etiquetas de imagen es el siguiente:
docker@my-docker-vm:/$ docker push mydockerhub/my-helloworld-repo:my_tag
The push refers to repository [docker.io/mydockerhub/my-helloworld-repo]
bf41e934d39d: Pushed
70d93396f87f: Pushed
6ec525dfd060: Pushed
705419d10b13: Pushed
a4aaef726d02: Pushed
04964fddc946: Pushed
latest: digest: sha256:eb93c92351bce785aa3ec0de489cfeeaafd55b7d90adf95ecea02629b376e577 size: 1571
docker@my-docker-vm:/$
Y si escribe inmediatamente las
docker images --digests -a
a puede confirmar que sus etiquetas de imagen
docker images --digests -a
ahora muestran una nueva firma en el repositorio privado administrado por el registro de Docker Hub.
Un repositorio de Docker es una linda combinación de
registry
e
image
.
docker tag foo <registry>/<image>:<tag>
es lo mismo que
docker tag foo <repository>:<tag>
Docker Hub y otros servicios de alojamiento de repositorios de terceros se denominan "registros". Un registro almacena una colección de repositorios.
Como un registro puede tener muchos repositorios y un repositorio puede tener muchas versiones diferentes de la misma imagen que se versionan individualmente con etiquetas.
El registro de Docker es un servicio que almacena sus imágenes de Docker.
El registro de Docker puede ser alojado por un tercero, como registro público o privado, como uno de los siguientes registros:
o puede alojar el registro de acoplador usted mismo
(Ver
https://docs.docker.com/docker-trusted-registry/
para más detalles).
El repositorio de Docker es una colección de diferentes imágenes de docker con el mismo nombre, que tienen etiquetas diferentes. La etiqueta es un identificador alfanumérico de la imagen dentro de un repositorio.
Por ejemplo, consulte https://hub.docker.com/r/library/python/tags/ . Hay muchas etiquetas diferentes para la imagen oficial de Python, todas estas etiquetas son miembros del repositorio oficial de Python en Docker Hub. Docker Hub es un registro de Docker alojado por Docker.
Para obtener más información, lea: