A container image is an assembled accumulation of layers that include the following:
- Base image
- Libraries
- Binaries
- Dependencies
- Configuration files
In new images built from scratch, it all starts with the bottom layer, the base image. The base image is where most container-based development workflows begin. Many base images comprise basic or minimal Linux® distributions (like Debian, Ubuntu, Red Hat® Enterprise Linux (RHEL), Rocky Linux or Alpine). Base images are where the container’s filesystem files are stored. The process of creating base images (known as “building”) enables developers to construct a standardized environment, which supports custom container images.
Then, a succession of file system layers is added and stacked on top of the base image, including the following:
- Required libraries, which are standard collections of algorithms and class templates that programmers can use to create common data structures (e.g., lists, stacks and queues)
- Necessary binaries, which are executable files required for the implementation of different programs and commands. Binary folders are designed so users can have fast access to needed executables.
- Various dependencies, which govern the creation and operation of containers.
- Configuration files (configs) that are needed to run the container in question.
For container images that incorporate existing images, the base image of existing images is known as the Parent Image. If an image is wholly original, it’s said to have no Parent Image.