Gestión de imágenes
1. Gestión de Imágenes en Docker #
Docker permite gestionar imágenes que contienen todo lo necesario para ejecutar aplicaciones dentro de contenedores. Aquí te explico los comandos más utilizados para gestionar estas imágenes, de forma sencilla y con ejemplos.
docker images: Listar imágenes locales #
Este comando te muestra todas las imágenes que tienes descargadas localmente en tu máquina.
Ejemplo:
1docker images
Salida esperada:
REPOSITORY TAG IMAGE ID CREATED SIZE
ubuntu latest 7e0aa2d69a15 2 weeks ago 72.9MB
nginx latest 4bb46517cac3 3 weeks ago 133MB
Aquí puedes ver el nombre de la imagen, la etiqueta (TAG), el ID de la imagen, cuándo se creó, y su tamaño.
docker pull <imagen>: Descargar una imagen desde un repositorio (Docker Hub) #
El comando docker pull descarga una imagen desde Docker Hub (u otro repositorio de imágenes) a tu máquina local.
Ejemplo:
1docker pull nginx
Esto descargará la imagen más reciente de nginx desde Docker Hub. Si la imagen ya está descargada, no volverá a bajarla.
docker push <imagen>: Subir una imagen a un repositorio #
Si has creado o modificado una imagen localmente, puedes subirla a un repositorio remoto (como Docker Hub) usando el comando docker push.
Ejemplo:
1docker push miusuario/miimagen:tag
Para esto, es necesario:
- Haber iniciado sesión en Docker Hub con
docker login. - Asegurarte de que la imagen tiene un nombre que incluye tu nombre de usuario de Docker Hub (como
miusuario/miimagen).
docker build -t <nombreimagen> <rutaDockerfile>: Construir una imagen desde un Dockerfile #
Este comando crea una imagen basada en las instrucciones de un Dockerfile, que es un archivo que contiene los pasos para configurar una imagen.
Ejemplo:
1docker build -t miapp:v1 .
-t miapp:v1: Esto le da un nombre y una etiqueta (v1) a la imagen..: Es la ruta donde está el Dockerfile, en este caso, el directorio actual.
docker rmi <idimagen>: Eliminar una imagen #
Este comando elimina una imagen de tu máquina local, liberando espacio.
Ejemplo:
1docker rmi 7e0aa2d69a15
Esto elimina la imagen con ID 7e0aa2d69a15 que puedes obtener con docker images. Si la imagen está siendo usada por algún contenedor, no podrás eliminarla a menos que lo fuerces.
docker tag <imagenorigen> <imagendestino>: Crear un nuevo tag para una imagen #
A veces necesitas etiquetar (tag) una imagen con otro nombre o versión para facilitar su gestión o publicación.
Ejemplo:
1docker tag nginx:latest miusuario/nginx:v2
Esto toma la imagen nginx:latest y le crea un nuevo tag miusuario/nginx:v2. Ahora puedes subirla a un repositorio o ejecutarla usando este nuevo nombre.
docker history <nombreimagen>: Mostrar el historial de capas de una imagen #
Este comando te muestra cómo se construyó una imagen, capa por capa. Cada capa puede representar una instrucción en el Dockerfile.
Ejemplo:
1docker history nginx
Salida esperada:
IMAGE CREATED CREATED BY SIZE
4bb46517cac3 3 weeks ago /bin/sh -c #(nop) CMD ["nginx" "-g" "daemon ... 0B
<missing> 3 weeks ago /bin/sh -c #(nop) EXPOSE 80 0B
<missing> 3 weeks ago /bin/sh -c #(nop) ADD file:90d73d81909f5072... 133MB
Esto muestra el historial de la imagen nginx, con detalles sobre qué comandos fueron usados para crear cada capa y el tamaño de cada una.
Resumen del tema
Conceptos clave #
- Imágenes Docker y Capas: plantillas de solo lectura formadas por capas inmutables apiladas (Union File System).
- Construcción y Etiquetado:
docker build -t mi-app:v1 .: compila una imagen leyendo elDockerfiledel contexto actual.docker tag mi-app:v1 usuario/mi-app:latest: crea un alias o versión para publicación.
- Gestión y Registro:
docker images: lista las imágenes descargadas en local.docker pull / push: descarga o sube imágenes hacia registros (Docker Hub, AWS ECR, etc.).docker rmi: elimina imágenes locales no utilizadas.docker history: inspecciona la secuencia de comandos y peso de cada capa.
Qué debes recordar #
Usa docker build -t para crear imágenes con tags descriptivos y aprovecha la caché de capas para acelerar tus tiempos de compilación.