Repositorios
1. Gestión de Imágenes y Contenedores en Repositorios #
En Docker, las imágenes pueden ser almacenadas y compartidas en repositorios, como Docker Hub, que es un servicio donde los desarrolladores pueden subir, descargar y compartir imágenes de Docker. Para poder gestionar imágenes en Docker Hub (u otro registro privado), necesitas saber cómo iniciar sesión, etiquetar imágenes y subirlas al repositorio. A continuación, te explico cómo hacerlo de manera sencilla y con ejemplos.
2. Comandos para gestionar imágenes y contenedores en repositorios #
docker login: Iniciar sesión en Docker Hub o en otro registro de imágenes #
Antes de poder subir una imagen a Docker Hub (o a cualquier otro registro de imágenes), debes iniciar sesión. Esto asegura que la imagen se suba a tu cuenta y puedas gestionarla.
Ejemplo:
1docker login
Al ejecutar este comando, se te pedirá que ingreses tu nombre de usuario y contraseña de Docker Hub. Si usas otro registro privado, puedes especificar su URL:
1docker login myregistry.com
Después de iniciar sesión correctamente, Docker guardará tus credenciales para que puedas subir imágenes sin tener que iniciar sesión cada vez.
docker logout: Cerrar sesión en Docker Hub o en otro registro #
Si ya no deseas mantener la sesión abierta o necesitas cerrar sesión por cualquier motivo, puedes hacerlo con el comando docker logout.
Ejemplo:
1docker logout
Este comando cerrará tu sesión en Docker Hub. Si quieres cerrar sesión en otro registro, especifica la URL del registro:
1docker logout myregistry.com
docker tag <imagenlocal> <registro>:<tag>: Etiquetar una imagen para subirla a un registro #
Antes de subir una imagen a Docker Hub (o a otro registro), debes asegurarte de que la imagen tenga el nombre correcto. Es aquí donde el comando docker tag entra en juego. Le asignas una etiqueta (o tag) a la imagen que incluya el nombre del registro donde se subirá.
Ejemplo:
Supongamos que tienes una imagen local llamada miapp:latest y quieres subirla a Docker Hub bajo tu cuenta.
1docker tag miapp:latest miusuario/miapp:v1
En este caso:
miapp:latest: Es el nombre de la imagen local.miusuario/miapp:v1: Es la imagen con el nuevo nombre y versión (v1) que vas a subir a Docker Hub.miusuarioes tu nombre de usuario en Docker Hub.
Si fuera otro registro, por ejemplo myregistry.com:
1docker tag miapp:latest myregistry.com/miusuario/miapp:v1
docker push <registro>:<tag>: Subir una imagen al registro #
Una vez que hayas etiquetado tu imagen correctamente, puedes usar docker push para subirla a Docker Hub o a cualquier otro registro de imágenes.
Ejemplo:
1docker push miusuario/miapp:v1
Esto sube la imagen etiquetada miusuario/miapp:v1 a tu cuenta de Docker Hub. Si el nombre de la imagen contiene otro registro (como myregistry.com), entonces la subirá allí:
1docker push myregistry.com/miusuario/miapp:v1
Durante el proceso, verás el progreso de la subida en la terminal, ya que Docker sube la imagen capa por capa. Si la imagen ya existe en el registro y no ha cambiado, Docker optimizará el proceso y no volverá a subir las capas repetidas.
Resumen del tema
Conceptos clave #
- Registros Públicos y Privados (Registries): almacenes centralizados de imágenes Docker (Docker Hub, GitHub Container Registry, AWS ECR, GCP Artifact Registry).
- Autenticación:
docker login(inicia sesión con credenciales o token de acceso) ydocker logout. - Convención de Nombres para Publicación:
[servidor_registro/][usuario_o_organizacion/]nombre_imagen:tag. - Subida Eficiente con
docker push: Docker solo transfiere las capas nuevas o modificadas reduciendo el consumo de ancho de banda.
Qué debes recordar #
Etiqueta la imagen con el prefijo exacto de tu usuario u organización (usuario/imagen:tag) antes de ejecutar docker push para que el registro identifique tu repositorio de destino.
3. Resumen de los comandos #
docker login: Inicia sesión en Docker Hub o en otro registro de imágenes. Esto te permite subir imágenes a tu cuenta.docker logout: Cierra la sesión en Docker Hub o en el registro en el que estés autenticado.docker tag: Etiqueta una imagen local para subirla a un registro. El nombre incluye el registro y el nombre de usuario (por ejemplo,miusuario/miapp:v1).docker push: Sube la imagen etiquetada al registro (como Docker Hub o un registro privado).