Los registros Docker sirven para almacenar las diversas imagenes Docker que utilicemos en nuestro sistema. De esta forma podremos subir imagenes nuevas a los registros, o descargarlas cuando las necesitemos en alguna maquina Docker.
La forma más facil de hacer que nuestras imagenes Docker estén disponibles para cuando las necesitemos, es usar un registro Docker, como Docker Hub, Docker Cloud o Github Docker, o incluso ejecutando nuestro propio registro privado de Docker.
Existen registros (repositorios) públicos de imagenes Docker.
Registros donde podemos encontrar imagenes Docker:
En este artículo:
Podemos subir imagenes Docker a nuestro registro con:
docker pull image
Y descargar imagenes de nuestro registro con:
docker push image
Para gestionar correctamente las imagenes Docker, hemos de usar una sintaxis concreta.
1 – Autenticarnos en nuestro registro:
docker login --username username --password password
2 – Etiquetar la imagen:
docker tag my-image username/my-repo
3 – Subir la imagen al registro:
docker push username/my-repo
El primer paso es configurar la variable de entorno DOCKER_ID_USER como nuestro nombre de usuario (por ej. en Docker Cloud).
export DOCKER_ID_USER="username"
y luego hacer login:
docker login
Si ejecutamos docker tag en la terminal, podremos ver la ayuda del comando:
docker tag
La sintaxis adecuada para etiquetar imagenes Docker es:
docker tag [OPTIONS] IMAGE[:TAG] [REGISTRYHOST/][USERNAME/]NAME[:TAG]
Veamos ejemplos:
según la terminal:
docker tag SOURCE_IMAGE[:TAG] TARGET_IMAGE[:TAG]
por ejemplo:
docker tag hypriot/armhf-hello-world:latest hypriot/armhf-hello-world:hello-world
También es posible que otras versiones de Docker requieran hacerlo de esta forma:
docker tag my_image $DOCKER_ID_USER/my_image
Y vemos que se ha creado la imagen de hello-world con la etiqueta que le hemos asignado: hello-world
según la ayuda de la terminal. la sintaxis correcta es:
docker push [OPTIONS] NAME[:TAG] [flags]
También puede funcionar esta otra versión del comando (dependerá del registro que estemos utilizando; más comúnmente Docker Cloud)
docker push $DOCKER_ID_USER/my_image
Ejemplo de funcionamiento de docker tag y docker push:
root@black-pearl:~# docker tag f897b028160c DOCKER_ID_USER/test:hello-world2
root@black-pearl:~# docker push DOCKER_ID_USER/test
The push refers to repository [docker.io/DOCKER_ID_USER/test]
5f70bf18a086: Mounted from hypriot/armhf-hello-world
3c547ef8d13b: Mounted from hypriot/armhf-hello-world
hello-world2: digest: sha256:f3ebad346b9f4ba1455b8c8831b2507f0b7131e2153b67350b16a87233031a74 size: 730
Accedemos a la sección de Images. Y vemos la posibilidad de elegir el registro (a la derecha, y elegimos Docker Hub), el nombre de la imagen que buscamos, y el botón de Download.
Buscamos la imagen, y pulsamos sobre Descargar:
La imagen ha sido correctamente subida al registro Docker: Image successfully pulled
Y si pulsamos sobre el ID de imagen podremos ver las diferentes imagenes Docker taggeadas (etiquetadas):
Image details:
Vamos a ver rapidamente los diversos repositorios Docker que comentábamos anteriormente
Los registros Docker son de extrema utilidad para disponer de un repositorio de imagenes Docker accesibles en todo momento, y para tenerlas catalogadas y organizadas. También sirven para compartir los repositorios haciéndolos públicos.
¿A qué esperas para practicar con los registros Docker? 😉