La imagen de un contenedor es una acumulación ensamblada de capas que incluye lo siguiente:
- Imagen base
- Bibliotecas
- Binarios
- Dependencias
- Archivos de configuración
En las nuevas imágenes creadas 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 "construcción") permite a los desarrolladores construir un entorno estandarizado, que admite imágenes de contenedores personalizadas.
A continuación, se añade una sucesión de capas del sistema de archivos y se apilan sobre la imagen base, incluidas las siguientes:
- Las bibliotecas necesarias, que son colecciones estándar de algoritmos y plantillas de clases que los programadores pueden utilizar para crear estructuras de datos comunes (por ejemplo, listas, pilas y colas)
- Los 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) necesarios para ejecutar el contenedor en cuestión.
En el caso de las imágenes de contenedor que incorporan imágenes existentes, la imagen base de las imágenes existentes se conoce como imagen principal. Si una imagen es totalmente original, se dice que no tiene imagen principal.