Post

Docker images

Trabajar con Imágenes en Docker

Las imágenes son plantillas inmutables que contienen todo lo necesario para ejecutar una aplicación, como el sistema operativo, las dependencias, las configuraciones y el código de la aplicación. A continuación, se explica cómo trabajar con imágenes en Docker.


1. Buscar imágenes en Docker Hub

Docker Hub es un repositorio público donde puedes encontrar imágenes oficiales y de la comunidad.

  • Para buscar una imagen:
    1
    
    docker search <nombre_de_la_imagen>
    

    Ejemplo:

    1
    
    docker search nginx
    

2. Descargar una imagen

Para descargar una imagen desde Docker Hub, usa el comando docker pull.

  • Sintaxis:
    1
    
    docker pull <nombre_de_la_imagen>:<tag>
    

    Ejemplo:

    1
    
    docker pull nginx:latest
    

    Si no especificas un :tag, Docker descargará la etiqueta latest por defecto.


3. Listar imágenes locales

Para ver las imágenes que tienes en tu máquina local, usa el comando:

1
docker images

Esto mostrará una lista con el nombre, etiqueta, ID de la imagen, tamaño y fecha de creación.


4. Crear una imagen personalizada

Puedes crear tus propias imágenes usando un archivo Dockerfile. Este archivo contiene instrucciones para construir la imagen.

  • Ejemplo de un Dockerfile básico:
    1
    2
    3
    4
    
    FROM ubuntu:20.04
    RUN apt-get update && apt-get install -y nginx
    COPY index.html /var/www/html/
    CMD ["nginx", "-g", "daemon off;"]
    
  • Para construir la imagen:
    1
    
    docker build -t <nombre_de_la_imagen>:<tag> .
    

    Ejemplo:

    1
    
    docker build -t mi-nginx:1.0 .
    

5. Ejecutar un contenedor desde una imagen

Para ejecutar un contenedor basado en una imagen, usa el comando docker run.

  • Sintaxis:
    1
    
    docker run <opciones> <nombre_de_la_imagen>
    

    Ejemplo:

    1
    
    docker run -d -p 8080:80 nginx
    

    En este caso:

    • -d ejecuta el contenedor en segundo plano.
    • -p 8080:80 mapea el puerto 80 del contenedor al puerto 8080 de tu máquina.

6. Eliminar imágenes

Si ya no necesitas una imagen, puedes eliminarla con el comando docker rmi.

  • Sintaxis:
    1
    
    docker rmi <nombre_de_la_imagen> o <ID_de_la_imagen>
    

    Ejemplo:

    1
    
    docker rmi nginx:latest
    

7. Subir imágenes a un repositorio

Si has creado una imagen personalizada y quieres compartirla, puedes subirla a Docker Hub o a otro registro.

  1. Inicia sesión en Docker Hub:
    1
    
    docker login
    
  2. Etiqueta la imagen:
    1
    
    docker tag <nombre_local>:<tag> <usuario_dockerhub>/<nombre>:<tag>
    

    Ejemplo:

    1
    
    docker tag mi-nginx:1.0 miusuario/mi-nginx:1.0
    
  3. Sube la imagen:
    1
    
    docker push <usuario_dockerhub>/<nombre>:<tag>
    

    Ejemplo:

    1
    
    docker push miusuario/mi-nginx:1.0
    

8. Inspeccionar una imagen

Para obtener información detallada sobre una imagen, usa el comando:

1
docker inspect <nombre_de_la_imagen>

9. Optimizar imágenes

Para reducir el tamaño de las imágenes:

  • Usa imágenes base ligeras como alpine.
  • Combina comandos en el Dockerfile para minimizar capas.
  • Elimina archivos temporales después de instalarlos.

Ejemplo de optimización:

1
2
FROM alpine:3.18
RUN apk add --no-cache nginx

Trabajar con imágenes en Docker es esencial para crear, compartir y ejecutar aplicaciones de manera eficiente. Si tienes alguna duda específica, ¡puedes preguntarme!

Crear una imagen desde un contenedor en ejecución es un proceso sencillo en Docker. Esto se hace utilizando el comando docker commit, que permite guardar el estado actual de un contenedor como una nueva imagen. A continuación, te explico cómo hacerlo paso a paso:


1. Identificar el contenedor en ejecución

Primero, necesitas identificar el contenedor que está en ejecución y del cual deseas crear la imagen.

  • Lista los contenedores en ejecución:
    1
    
    docker ps
    

    Esto mostrará una lista de contenedores con su CONTAINER ID, nombre, estado, etc.


2. Crear la imagen desde el contenedor

Usa el comando docker commit para crear una imagen basada en el contenedor.

  • Sintaxis:
    1
    
    docker commit <container_id> <nombre_de_la_imagen>:<tag>
    

    Ejemplo:

    1
    
    docker commit 123abc456def mi-imagen:1.0
    

En este caso:

  • 123abc456def es el ID del contenedor (puedes usar el nombre del contenedor si lo prefieres).
  • mi-imagen:1.0 es el nombre y la etiqueta que le asignarás a la nueva imagen.

3. Verificar la nueva imagen

Una vez creada la imagen, puedes verificar que se haya generado correctamente listando las imágenes locales:

1
docker images

Deberías ver la nueva imagen en la lista con el nombre y etiqueta que especificaste.


4. Opcional: Ejecutar un contenedor desde la nueva imagen

Para probar la nueva imagen, puedes ejecutar un contenedor basado en ella:

1
docker run -it <nombre_de_la_imagen>:<tag>

Ejemplo:

1
docker run -it mi-imagen:1.0

5. Agregar un mensaje de commit (opcional)

Puedes agregar un mensaje para documentar los cambios realizados en el contenedor al crear la imagen:

1
docker commit -m "Mensaje descriptivo" <container_id> <nombre_de_la_imagen>:<tag>

Ejemplo:

1
docker commit -m "Agregué Nginx y configuraciones personalizadas" 123abc456def mi-imagen:1.0

6. Optimizar la imagen (opcional)

Si planeas usar esta imagen a largo plazo, considera optimizarla creando un Dockerfile basado en los cambios realizados en el contenedor. Esto te permitirá reconstruir la imagen fácilmente en el futuro.


Resumen

  1. Identifica el contenedor en ejecución con docker ps.
  2. Usa docker commit para crear una imagen desde el contenedor.
  3. Verifica la nueva imagen con docker images.
  4. Ejecuta un contenedor desde la nueva imagen para probarla.
This post is licensed under CC BY 4.0 by the author.