Una imagen de contenedor es una acumulación ensamblada de capas que incluyen lo siguiente:
- Imagen base
- Bibliotecas
- Binarios
- Dependencias
- Archivos de configuración
En las nuevas imágenes construidas desde cero, todo comienza con la capa inferior, la imagen base. La imagen base es donde comienzan la mayoría de los flujos de trabajo de desarrollo basados en contenedores. Muchas imágenes base comprenden distribuciones básicas o mínimas de Linux (como Debian, Ubuntu, Red Hat Enterprise Linux (RHEL), Rocky Linux o Alpine). Las imágenes base son donde se almacenan los archivos del sistema de archivos del contenedor. El proceso de creación de imágenes base (conocido como "compilación") permite a los desarrolladores construir un entorno estandarizado, que admite imágenes de contenedor personalizadas.
Luego, se agrega una sucesión de capas del sistema de archivos y se apilan sobre la imagen base, incluidas las siguientes:
- Bibliotecas requeridas , que son colecciones estándar de algoritmos y plantillas de clase que los programadores pueden usar para crear estructuras de datos comunes (por ejemplo, listas, pilas y colas)
- Binarios necesarios , que son archivos ejecutables necesarios para la implementación de diferentes programas y comandos. Las carpetas binarias están diseñadas para que los usuarios puedan tener acceso rápido a los ejecutables necesarios.
- Varias dependencias que rigen la creación y el funcionamiento de los contenedores.
- Archivos de configuración (configs) que se necesitan para ejecutar el contenedor en cuestión.
Para las imágenes contenedoras que incorporan imágenes existentes, la imagen base de las imágenes existentes se conoce como Imagen Padre. Si una imagen es totalmente original, se dice que no tiene Imagen Padre.