Estoy confundido en cuanto a la diferencia entre los registros de docker y los repositorios. 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 enviar este repositorio al registro designado por su nombre o etiqueta.
¿Cómo puede empujar un repositorio a un registro? ¿No estás empujando la imagen al repositorio?
git
, entonces - Docker Registry (el valor predeterminado eshub.docker.com
) => GitHub (github.com
); - Repositorio Docker => Repositorio Git; - Docker Tag => Git Ref (Branch / Tag)Respuestas:
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 docker usted mismo
(consulte https://docs.docker.com/ee/dtr/ para obtener 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:
fuente
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).
Por lo tanto, el comando
docker pull amouat/revealjs:latest
descargará la última imagen etiquetada dentro delamouat/revealjs
repositorio desde el registro de Docker Hub.fuente
ubuntu:latest
yubuntu:16.04
tienen lo mismoImage ID
, lo que significa que son solo varias etiquetas para la misma imagen.docker pull
, que se lee en parte: "Para descargar una imagen en particular o un conjunto de imágenes (es decir, un repositorio), usedocker pull
. Si no se proporciona ninguna etiqueta, Docker Engine usa la:latest
etiqueta por defecto. " ¿Cómo, entonces, se "descargaría un ... conjunto de imágenes (es decir, un repositorio)"? 🤔Complementando la información:
docker push
.namespace/repo-name:tag
myregistryhost:5000/namespace/repo-name:tag
fuente
image-name
. El formato debe seruser-name/repo-name:tag
, de acuerdo con la documentación de Docker . (Ojalá Docker hubiera usado una mejor terminología, es bastante confuso, y ni siquiera son consistentes todo el tiempo).docker info |grep Registry
Un repositorio de Docker es una linda combinación de
registry
yimage
.es lo mismo que
fuente
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 podría 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 (etiqueta_de_imagen: v4)
e) tomcat (image1_tag: v5)
Puedes usar
docker push
comando 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:
Y si escribe de inmediato
docker images --digests -a
, puede confirmar que sus etiquetas de imagen insertadas ahora muestran una nueva firma en el repositorio privado administrado por el registro de Docker Hub.fuente
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.
fuente