Containers & Orchestration

What is Container Runtime?

Also known as: runC, containerd

Definition

A container runtime is the low-level software that creates, starts, and stops containers according to the OCI runtime specification, enabling process isolation and resource management.

A container runtime is the component responsible for executing container images as isolated processes on a host operating system. It directly interacts with the Linux kernel to set up namespaces, control groups (cgroups), and other isolation primitives. The runtime reads an OCI-compliant configuration bundle and manages the entire lifecycle of a container, from creation to execution to deletion.

Low-level runtimes like runC implement the OCI Runtime Specification (runtime-spec). They are minimal, single-purpose binaries that fork a new process with the specified constraints. High-level runtimes like containerd sit above low-level runtimes and provide additional features such as image transfer, snapshot management, and a gRPC API. containerd itself uses runC (or other low-level runtimes) to actually run containers. This layered architecture allows container engines such as Docker or Kubernetes to delegate the heavy lifting of container execution to a dedicated runtime.

Container runtimes are a critical part of the container ecosystem. They sit between the host OS kernel and higher-level orchestration tools. The Open Container Initiative (OCI) standardizes both the runtime specification and the image specification, ensuring interoperability across different runtimes and platforms. Without a container runtime, container images would remain inert files; the runtime is what turns an image into a running, isolated process.

Key facts

  • Implements the OCI Runtime Specification (runtime-spec) for container lifecycle management.
  • runC is the reference implementation of the OCI runtime spec, used by many higher-level tools.
  • containerd is a high-level container runtime that manages runC and provides additional services like image pulling.
  • Container runtimes rely on Linux kernel features: namespaces for isolation and cgroups for resource limits.
  • The OCI runtime spec defines a standard configuration format (config.json) for container processes.

How it works in practice

When Docker starts a container, the Docker daemon sends a request to containerd. containerd pulls the image, unpacks it into a snapshot, and prepares a bundle. It then calls runC with the bundle's config.json. runC creates new namespaces (e.g., PID, network, mount) and applies cgroup constraints before executing the container's entrypoint as a child process. The entire sequence happens in seconds, and the container runs as an isolated process on the host.

Related terms

OCI Runtime Specification runC containerd Container Engine Docker Kubernetes cgroups namespaces

References

More in Containers & Orchestration

ConfigMap

A ConfigMap is a Kubernetes API object used to store non-confidential configuration data in key-value pairs, which pods can consume as environment variables, command-line arguments, or configuration files.

Container

A container is a lightweight, isolated runtime that packages an application with its dependencies using OS-level virtualization, enabling consistent execution across environments.

Container Image

A container image is a lightweight, standalone, executable package that includes everything needed to run a piece of software: code, runtime, system tools, libraries, and settings. It is the unit of distribution in container ecosystems like Docker and Kubernetes.

Container Registry

A container registry is a service that stores and distributes container images, enabling developers to push, pull, and version images across environments.

Docker

Docker is a platform and toolchain for packaging, distributing, and running applications inside lightweight, portable containers, popularising the technology from 2013 onward.

Helm

Helm is a package manager for Kubernetes that uses charts to define, install, and upgrade complex applications as a single, versioned unit.

Ingress Controller

An Ingress Controller is a Kubernetes component that watches Ingress resources and configures a reverse proxy to route external HTTP and HTTPS traffic to services inside the cluster.

Init Container

An init container is a specialized container in a Kubernetes pod that runs to completion before any regular containers start, performing initialization or setup tasks.

Kubernetes

Kubernetes is an open source platform for automating the deployment, scaling, and management of containerized applications across clusters of hosts.

Operator

A Kubernetes Operator is a custom controller that extends the Kubernetes API to automate the management of a specific application, encoding human operational knowledge as code.

Who Is Online

In total there are 67 users online: 0 registered, 59 guests and 8 bots.

Most users ever online was 5,555 on 17 Jul 2026, 3:23 am.

Bots: AhrefsBot Applebot Baiduspider Bingbot Other Bot Other Crawler PetalBot SemrushBot

Users active in the past 15 minutes. Total registered members: 369