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 etiquetalatestpor 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
Dockerfilebá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:
-dejecuta el contenedor en segundo plano.-p 8080:80mapea 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.
- Inicia sesión en Docker Hub:
1
docker login
- 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
- 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
Dockerfilepara 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:
123abc456defes el ID del contenedor (puedes usar el nombre del contenedor si lo prefieres).mi-imagen:1.0es 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
- Identifica el contenedor en ejecución con
docker ps. - Usa
docker commitpara crear una imagen desde el contenedor. - Verifica la nueva imagen con
docker images. - Ejecuta un contenedor desde la nueva imagen para probarla.
