Imágenes y contenedores
En Docker, imagen y contenedor son dos conceptos fundamentales, y aunque están estrechamente relacionados, cumplen roles distintos en el ciclo de vida de una aplicación.
Imagen (Image):
- Qué es:
- Una imagen de Docker es un archivo inmutable que contiene todo lo necesario para ejecutar una aplicación. Esto incluye el código de la aplicación, las dependencias, las bibliotecas, variables de entorno, y las configuraciones del sistema operativo necesarias.
- Función:
- Las imágenes actúan como una plantilla o blueprint a partir de la cual se crean los contenedores. Una imagen puede ser reutilizada para crear múltiples contenedores idénticos.
- Estado:
- Las imágenes son estáticas e inmutables, lo que significa que no cambian una vez que han sido creadas. Cualquier modificación requiere la creación de una nueva imagen.
- Distribución:
- Las imágenes pueden ser compartidas y distribuidas a través de registros de imágenes como Docker Hub. Esto permite que las aplicaciones sean portátiles y fácilmente desplegadas en diferentes entornos.
Contenedor (Container):
- Qué es:
- Un contenedor es una instancia en ejecución de una imagen. Es un entorno aislado y ligero que se ejecuta de manera independiente, pero que comparte el mismo kernel del sistema operativo del host.
- Función:
- Los contenedores se utilizan para ejecutar aplicaciones. Cada contenedor se basa en una imagen y puede ser iniciado, detenido, reiniciado o eliminado sin afectar la imagen original.
- Estado:
- A diferencia de las imágenes, los contenedores son dinámicos. Puedes interactuar con ellos, cambiar su estado, escribir datos en su sistema de archivos, y esos cambios permanecerán mientras el contenedor esté en ejecución. Sin embargo, una vez que un contenedor es eliminado, los cambios realizados en él se pierden, a menos que se hayan persistido de alguna forma (por ejemplo, en volúmenes).
- Ciclo de Vida:
- Un contenedor pasa por diferentes estados durante su ciclo de vida, como
creado
,iniciado
,detenido
, yeliminado
.
- Un contenedor pasa por diferentes estados durante su ciclo de vida, como
Resumiendo la Diferencia:
- Imagen: Es el blueprint o plantilla que define lo que debe contener un contenedor. Es estática, inmutable y se puede almacenar, compartir y reutilizar.
- Contenedor: Es la instancia en ejecución de una imagen. Es dinámico, mutable mientras está en ejecución, y puede ser creado, destruido, y replicado en función de la imagen base.
Imagina una imagen como la receta de un pastel (todo lo necesario para hacer el pastel), mientras que el contenedor es el pastel real hecho siguiendo esa receta. Puedes hacer múltiples pasteles (contenedores) con la misma receta (imagen).