LabHub

Blog

Container Runtime Alternatives 2026 Deep Dive - containerd, CRI-O, Podman, runc, gVisor, Kata Containers, youki, WasmEdge, and Firecracker

한국어English日本語

Prologue — Why runtimes are interesting again in 2026

For about ten years after dotCloud's Solomon Hykes unveiled Docker at PyCon US in 2013, the equation "container equals Docker" went mostly unchallenged. That changed in December 2020 when Kubernetes announced dockershim deprecation for 1.20 and then actually removed it in 1.24 in April 2022.

As of May 2026, the default runtime on large clusters is either containerd 2.0 or CRI-O 1.31, and on developer machines Podman 5 and Orbstack are quickly eating into Docker Desktop's share. Meanwhile in multi-tenant SaaS and serverless, gVisor, Kata Containers, and Firecracker MicroVMs have become the standard isolation primitives, and WebAssembly runtimes have entered Kubernetes properly through the runwasi shim.

This guide maps the territory — from the OCI 1.2 specs down through low-level runtimes (runc, crun, youki), high-level runtimes (containerd, CRI-O), daemonless tools (Podman, Buildah, Skopeo), hardened isolation (gVisor, Kata, Firecracker, Cloud Hypervisor), and Wasm runtimes (WasmEdge, Wasmtime, Wasmer, Spin, WasmCloud). It explains who solves which problem and which runtime to choose for which workload.


1. The OCI specs — common ground for every runtime

The Open Container Initiative (OCI) was donated by Docker to the Linux Foundation in June 2015 to standardize the container format. As of May 2026 there are three core specs.

SpecVersion (May 2026)What it defines
image-spec1.1 + 1.2 RCimage manifest, config, layer format
runtime-spec1.2.0config.json, lifecycle, ops
distribution-spec1.1.1registry HTTP API

The key idea — an OCI image is just a bundle of layers compressed with tar.gz, zstd, or zstd-chunked, and an OCI runtime's only job is to take a config.json plus a root filesystem and produce an isolated process. Whatever high-level runtime you use, the bottom layer is one of runc, crun, youki, runsc, or kata-runtime.

Keep that picture in mind and the rest of the chapters fall into place.


2. Runtime layers — low-level vs high-level

"Container runtime" gets used in two senses across the industry.

                  kubelet (CRI client)
        ┌──────────────────────────────┐
        │  High-level runtime (CRI)    │
        │  containerd / CRI-O / cri-dockerd │
        └──────────────┬───────────────┘
                       │ (OCI runtime API)
        ┌──────────────────────────────┐
        │  Low-level runtime (OCI)     │
        │  runc / crun / youki / runsc / kata-runtime │
        └──────────────────────────────┘

containerd is high-level and by default calls runc. CRI-O is high-level and defaults to crun. Whenever someone says "we are switching runtimes," always ask which layer they mean.


3. runc 1.2 — the reference OCI runtime

runc is the reference low-level runtime Docker donated to OCI in June 2015. It is written in Go and bundles a library called libcontainer.

The May 2026 stable is 1.2.5. Notable additions over the past two years:

runc remains the most widely used OCI runtime and the default in nearly every Kubernetes distribution. The common complaint is that the Go runtime makes startup take 50 to 80 ms per container — for Function-as-a-Service that matters.


4. crun — Red Hat's C implementation, roughly twice as fast

crun is an OCI runtime that Red Hat started in 2018. Its differentiator is that it is written in C — no Go runtime startup cost.

Benchmarks vary by environment but typically show:

crun is the default OCI runtime under OpenShift and Podman, and also the default for CRI-O 1.31. Since crun 1.20 there is a WebAssembly handler that can launch WasmEdge or Wasmtime directly.


5. youki — an OCI runtime rewritten in Rust

youki was started in 2021 by Toru Komatsu, an NTT Data engineer in Japan. It is a Rust-based OCI runtime, with the May 2026 stable at 0.4.x.

People pick it for three reasons:

AWS Bottlerocket has shipped builds using youki, and a handful of clouds (Rakuten in Japan, NHN Cloud in Korea) have experimented with it. youki is still not declaring itself production-ready, but the SUSE Rancher side is actively sponsoring development.


6. containerd 2.0 — the CNCF Graduated standard

containerd is the high-level runtime Docker donated to CNCF in 2017. Version 2.0 went GA in September 2024, and the May 2026 stable is 2.1.

Highlights since 2.0:

containerd became the de facto default once Kubernetes 1.24 removed dockershim. AWS EKS, Google GKE, Azure AKS, NHN Cloud Kubernetes, and KT Cloud K-PaaS-TA all default to containerd.


7. CRI-O 1.31 — a lightweight Kubernetes-only runtime

CRI-O is the "OCI runtime for Kubernetes and only Kubernetes" that Red Hat started in 2016. The May 2026 stable is 1.31.

Compared to containerd the positioning is different:

Interesting changes that landed in 2026:

Red Hat OpenShift 4.16 ships CRI-O by default, and parts of SK Telecom's 5G MEC and NTT Docomo's clusters run CRI-O too.


8. Podman 5 — daemonless, rootless, and pods

Podman is the "Docker alternative without a daemon" that Red Hat released in 2018. The May 2026 stable is 5.4.

Differentiators:

Combined with Buildah (build only) and Skopeo (inspect and copy images), it forms Red Hat's three-piece set. By 2026 Fedora, RHEL, and Rocky Linux have moved entirely to Podman as the default container tool.

On Mac and Windows, Podman Desktop is gaining share fast — a lot of enterprise users have moved off Docker Desktop because of its paid policy.


9. Docker 27 — still number one on developer machines

Docker Inc. has been charging enterprises since January 2022, yet its share on developer workstations remains the highest. May 2026 stable versions are Docker Engine 27.5 and Docker Desktop 4.40.

Major changes between 2024 and 2026:

Enterprise users have moved away because of Docker Desktop licensing — over to Podman Desktop, Rancher Desktop, or Orbstack on Mac — but for individual developers and small startups Docker is still number one.


10. gVisor — Google's user-space kernel

gVisor is the user-space kernel sandbox runtime Google announced at KubeCon 2018. The core idea — the host kernel does not handle syscalls from the container directly. A user-space process called Sentry intercepts them and forwards only a filtered subset.

   container app
        │ syscall
   Sentry (gVisor user-space kernel, Go)
        │ filtered subset
   host Linux kernel

Pros:

Cons:

Google Cloud Run, App Engine Flexible, and GKE Sandbox are all built on gVisor. Fly.io Machines uses it for some workloads, and Korea's Naver Cloud chose gVisor for multi-tenant function services.


11. Kata Containers 3 — VM-level isolation with container UX

Kata Containers began in 2017 by merging Intel Clear Containers and Hyper.sh runV. The May 2026 stable is 3.6.

The point — it looks like a container but inside is a real lightweight virtual machine. Each Pod or container runs in its own KVM VM, and the container process executes inside it.

Supported hypervisors:

Notable Kata 3.x features:

Users: parts of Alibaba Cloud's ECI, Yahoo! Japan, parts of Azure Container Instances, and GKE Sandbox (you can pick Kata instead of gVisor).


12. Firecracker 1.10 — the MicroVM behind AWS Lambda

Firecracker is the minimalist VMM AWS unveiled at re:Invent 2018. It is written in Rust and runs on KVM. The May 2026 stable is 1.10.

Design principles:

Where it is used:

Most people do not use Firecracker directly — they put a wrapper (Kata, Ignite, Firepilot) on top.


13. Cloud Hypervisor 42 — the other Rust VMM

Cloud Hypervisor is the other Rust VMM Intel started in 2018. Compared to Firecracker it supports a richer device model. The May 2026 stable is 42.

ItemFirecrackerCloud Hypervisor
Goalminimal boot timegeneral-purpose VM with richer devices
Devicesvirtio core onlyvirtio plus VFIO plus GPU passthrough
Live migrationnoyes
Used byLambda, FlyKata option, Edera Protect, Intel TDX

Edera Protect — a startup founded in 2024 by former etcd maintainers — builds a "sandbox platform that supports both GPU and confidential computing" on top of Cloud Hypervisor.


14. WebAssembly runtimes — entering K8s via runwasi shim

When containerd added official support for the runwasi shim in 2024, WebAssembly modules became deployable as OCI images on Kubernetes.

The three main Wasm runtimes (May 2026):

RuntimeOwnerStrengths
WasmEdge 0.14CNCF SandboxLLM and tensor extensions, K8s integration first
Wasmtime 27Bytecode Alliancebroadest WASI coverage, reference implementation
Wasmer 5.xWasmer Inc.edge first, AOT compile

Why containers for Wasm:

Limitations:

Wasm-first PaaS like Spin (Fermyon), WasmCloud, and Wasmer Edge are growing on top of this.


15. Confidential Containers — even memory is encrypted

Confidential Containers (CoCo) is a CNCF Sandbox project that started in 2022 and is on track for GA in late 2026. The key idea — not even the host kernel or hypervisor can read container memory.

Underlying hardware:

Flow:

  1. When a Kata Container is launched, the hypervisor creates an SEV-SNP or TDX VM.
  2. An attestation server validates the boot measurement.
  3. Once validation passes, secrets are injected.

Where it is used: Azure Confidential Containers, IBM Cloud Hyper Protect, and financial-sector compliance workloads in Korea and Japan. Edera Protect aims to extend confidentiality to GPU nodes.


16. Image formats — OCI v1.1 and zstd-chunked

Notable changes to the container image format as of May 2026:

Docker v2.2 (legacy) images are flagged deprecated and most registries will block new pushes within 2026.


17. Local development — Docker Desktop, Podman Desktop, Rancher Desktop, Orbstack

ToolBackendLicenseStrengthsWeaknesses
Docker Desktopdockerd plus Linux VMpaid for enterprisewidest compatibilityheavy and expensive
Podman DesktopPodman plus Linux VMopen sourcedaemonless, multi-engineUI is younger
Rancher Desktopcontainerd or dockerd plus Limaopen sourceK8s bundledmemory use is high
Orbstack (Mac only)containerd plus custom virtualizationpaid (free for individuals)very fast and lightmacOS only
ColimaLima plus containerd or dockerdopen sourceCLI friendlyno UI

Among Mac developers the name that has been heard most often since 2025 is Orbstack. With its own lightweight hypervisor it claims one third the memory and one fifth the startup time of Docker Desktop.

Linux developers do not really need a Desktop tool — install Podman or Docker Engine natively.


18. CI environments — Sysbox, DinD, Kaniko

Exposing host privileges in CI builds and runs is a long-standing headache.

GitHub Actions, GitLab CI, Jenkins, and Tekton have all defaulted to rootless builds as the recommendation in 2026.


19. Serverless — Lambda Firecracker, Fly Machines, Cloud Run gVisor

Isolation backends across the serverless and edge landscape:

ServiceIsolationBoot time
AWS LambdaFirecracker MicroVM100 to 300 ms cold
AWS FargateFirecracker or EC2seconds
GCP Cloud RungVisor200 to 500 ms
GCP App Engine FlexiblegVisorseconds
Azure Container InstancesHyper-V Container or Kataseconds
Fly.io MachinesFirecrackerhundreds of ms
NorthflankFirecracker plus Cloud Hypervisorhundreds of ms
KoyebFirecrackerhundreds of ms
Vercel FunctionsV8 isolate or AWS Lambdatens of ms
Cloudflare WorkersV8 isolate5 ms

Serverless isolation is converging on two camps — microVMs and V8 isolates. Containers are too heavy, while V8 isolates restrict you to Node.js or Wasm.


20. Korea and Japan — who uses what

Korea

Japan

Notably, youki is a Japanese-origin project, which is why Japanese cloud companies sponsor it more visibly.


21. Which runtime to choose — a decision tree

Question 1. What environment?
  ├─ Kubernetes cluster
  │    ├─ Red Hat ecosystem? → CRI-O plus crun
  │    └─ otherwise → containerd plus runc
  ├─ Local dev (Mac)
  │    ├─ speed matters → Orbstack
  │    ├─ open source first → Podman Desktop
  │    └─ maximum compatibility → Docker Desktop
  └─ Local dev (Linux) → Podman or Docker Engine

Question 2. How strong does isolation need to be?
  ├─ general isolation → runc or crun (namespaces plus cgroups)
  ├─ multi-tenant SaaS → gVisor or Kata
  ├─ memory protected too → Confidential Containers (Kata plus SEV-SNP/TDX)
  └─ fastest boot → Firecracker MicroVM or Wasm

Question 3. Workload shape?
  ├─ FaaS / short functions → Wasm (WasmEdge, Spin) or Firecracker
  ├─ long-running services → regular containers (containerd plus runc)
  ├─ data intensive → regular containers, avoid gVisor if syscall-heavy
  └─ AI/ML inference → regular containers plus GPU operator

22. Closing — the runtime landscape in 2026

To summarize as of May 2026:

  1. Cluster default is containerd 2.0 — the default in nearly every Kubernetes distribution.
  2. Red Hat ecosystem is CRI-O plus crun plus Podman — coherent picks for OpenShift users.
  3. Local dev has diversified — Docker Desktop, Podman Desktop, Rancher Desktop, and Orbstack coexist.
  4. Multi-tenant goes gVisor or Kata — depends on the cloud provider.
  5. Serverless goes Firecracker MicroVM or V8 isolate — containers are too heavy.
  6. Wasm is here for real — runwasi shim lets it ride the Kubernetes rails.
  7. Confidential Containers should hit GA late 2026 — AMD SEV-SNP and Intel TDX are now mature enough.
  8. Alternative OCI runtimes like youki and crun are growing — the Rust and C camps are shaking runc from the bottom.

Runtime choice is a triangle of "performance, isolation, compatibility." There is no single right answer. But armed with the map drawn here, you should be able to pin down a corner by the fifth question.


References

  1. Open Container Initiative — https://opencontainers.org/
  2. OCI Runtime Specification — https://github.com/opencontainers/runtime-spec
  3. OCI Image Specification — https://github.com/opencontainers/image-spec
  4. OCI Distribution Specification — https://github.com/opencontainers/distribution-spec
  5. runc — https://github.com/opencontainers/runc
  6. crun — https://github.com/containers/crun
  7. youki — https://github.com/youki-dev/youki
  8. containerd — https://containerd.io/
  9. CRI-O — https://cri-o.io/
  10. Podman — https://podman.io/
  11. Buildah — https://buildah.io/
  12. Skopeo — https://github.com/containers/skopeo
  13. Docker — https://www.docker.com/
  14. BuildKit — https://github.com/moby/buildkit
  15. gVisor — https://gvisor.dev/
  16. Kata Containers — https://katacontainers.io/
  17. Firecracker — https://firecracker-microvm.github.io/
  18. Cloud Hypervisor — https://www.cloudhypervisor.org/
  19. WasmEdge — https://wasmedge.org/
  20. Wasmtime — https://wasmtime.dev/
  21. Wasmer — https://wasmer.io/
  22. runwasi — https://github.com/containerd/runwasi
  23. Spin (Fermyon) — https://www.fermyon.com/spin
  24. WasmCloud — https://wasmcloud.com/
  25. Confidential Containers — https://github.com/confidential-containers
  26. Edera Protect — https://edera.dev/
  27. Kubernetes CRI — https://kubernetes.io/docs/concepts/architecture/cri/
  28. Orbstack — https://orbstack.dev/
  29. Rancher Desktop — https://rancherdesktop.io/
  30. Sysbox — https://github.com/nestybox/sysbox

Comments

No comments yet.

Sign in to leave a comment