TechTarget.com/searchitoperations

https://www.techtarget.com/searchitoperations/definition/container-image

What is a container image?

By Mary E. Shacklett

A container image is a fixed, static file that includes executable code to run an isolated process on IT infrastructure. The image is composed of system libraries, system tools and other platform settings a software program requires to run on a containerization platform, such as Docker, Kubernetes or Podman. The image shares the operating system (OS) kernel of its host machine.

A container image is compiled from file system layers built onto a base or parent image. These layers encourage the reuse of various system components, so the developer does not have to create everything from scratch for every project. Technically, a base image is used for an entirely new container image, while a parent image refers to an existing container image that is being modified. However, in practice, the terms are used interchangeably.

Why are container images used?

Container images bundle an application, providing a consistent and efficient way to package and deploy applications. They also have the following attributes:

Container image types

Developers classify container images stored in registries as either private or public based on their intended use. Private registries are accessible only to specific users and are used for applications that are not to be shared -- for example, an app that's designed for a specific organization's employees. Developers use public registries to share applications they want to make public.

Although a developer can create a container image from scratch using a container platform, like Docker, Kubernetes or Podman, many IT companies offer prebuilt container images of their own systems or applications that can help simplify the image creation process. Examples of vendor-provided container images include Microsoft SQL Server, various Linux distributions or images made publicly available by vendors like Amazon, IBM and Oracle. GitHub maintains its own container images in GitHub Container Registry, and the Docker community maintains official Python container images on Docker Hub.

As developers explore these various container image types, they must ensure that the images being furnished are authentic so they do not introduce malware into their systems.

How are container images created?

A key benefit of container images is the ability to borrow from many components that already exist in IT infrastructure to construct the contents of the container. These contents can be tailored to fit the needs of the applications that will invoke or exist in the container. Container images consist of the following components:

Containers can also be divided into the following four functional types:

  1. Object containers. These store metadata about a particular container image, such as when it was created and by whom.
  2. Dependency containers. They manage object creation and the lifecycle of objects within the application.
  3. Authentication containers. These containers help establish a user's identity and enforce access control policies.
  4. Container runtimes. These foundational software programs act as bridges among the container images, OS and hardware, executing applications and ensuring they function properly.

How do container images work?

Container images are essentially blueprints for creating containers. They are identified through the first 12 characters of a true identifier, such as Secure Hash Algorithm 256, and have a virtual size that is measured in terms of distinct underlying layers. Images can be tagged or untagged and are searchable through a true identifier only.

Container images rely on open standards and operate across different infrastructure, including virtual and physical machines and cloud-hosted instances, to be widely interoperable. In container deployments, applications are isolated from one another and abstracted from the underlying infrastructure.

Container images can vary in size. Large images might include all the runtime, infrastructure dependencies, application and OS kernel images that an application requires to run. The result can be a heavy load container image that is fully integrated but resource-intensive and difficult to maintain when a change must be made somewhere within it.

Another approach to containerization that is more often used is to modularize the various components of an end-to-end application execution process into discrete, individual containers that are invoked by the application as the app requires them. For example, one container might house the database. Another container image might include all the IT infrastructure dependencies and supporting subroutines that the app needs to run. Still another container might have the security and authorization routine for the app or the runtime instructions. In this way, a single container image can be modified without having to modify all other containers that an application uses.

Container images are initially uploaded to a container registry, which is a central storage location for these images. Authorized users can then pull them into their applications.

Container image benefits and drawbacks

Container images offer numerous benefits, including the following:

Container images also have the following drawbacks:

Although most enterprises use Linux for container deployments, learn about the benefits of using Docker on Windows.

17 Jul 2025

All Rights Reserved, Copyright 2016 - 2025, TechTarget | Read our Privacy Statement