Skip to content
Container Runtime

containerd Releases

Track containerd releases, Kubernetes CRI version compatibility, Docker Engine dependency context, and version feature comparison. Upgrade paths from 1.x to 2.x and migration guidance.

Total Versions

Supported

Latest

Version Timeline

All tracked releases with lifecycle status and EOL dates.

Loading version data…

Lifecycle Timeline

Visual overview of active support and maintenance windows.

1.6 LTS
1.7
2.0
2.1
2022 2023 2024 2025 2026 2027 2028 2029
Active
Maint
Active
Maint
Active
Maint
Active
Maint
Active / LTS
Maintenance
Today

Upgrade Paths

Migration guidance between major versions — breaking changes, effort estimates, and tips.

1.6 1.7 Low Difficulty
Est. 30-60 minutes per node

Breaking Changes

  • Sandbox API changes (internal)
  • Some deprecated Go APIs removed
  • Updated default runtime to runc v2
  • NRI support added (opt-in)

Migration Notes

Smooth upgrade. Stop containerd, replace binary, update config.toml if needed (most configs work unchanged), restart. Test with ctr and crictl to verify.

1.7 2.0 Medium Difficulty
Est. 1-2 hours per node (including drain/uncordon)

Breaking Changes

  • CRI plugin config format changed (v1 → v2)
  • Legacy snapshotter API removed
  • Deprecated Go APIs removed
  • Plugin registration changes for custom plugins
  • Transfer service replaces some image operations
  • Some CLI flags renamed or removed

Migration Notes

Run containerd config migrate to auto-convert your config.toml. Test the new config with containerd config validate. The CRI config format change is the most impactful: if you have custom registry mirrors, sandbox images, or runtime configurations, verify they migrated correctly. Drain nodes before upgrading.

Version Risk Assessment

Evaluate risk factors before choosing a version for production.

Version EOL Risk CVE Risk Ecosystem Cloud Support Overall Recommended Action
containerd 1.5 and older Critical Critical Dead None Critical Severely outdated — known CVEs in container runtime
containerd 1.6 Critical High EOL Degrading Critical LTS ended Feb 2025 — upgrade to 1.7 or 2.0
containerd 1.7 Medium Low Maintenance Full Medium Supported until Jun 2025 — plan 2.0 migration
containerd 2.0 Low Low Active Full Low Current stable — recommended
containerd 2.1 None Low Active Full Low Latest — recommended for new installations

containerd maintains the latest 2-3 versions with patches. 1.6 LTS had extended support. Running unsupported versions on K8s nodes is a cluster security risk. Assessed March 2026.

containerd Version Feature Comparison

Side-by-side feature differences across major versions.

Feature 1.6 LTS 1.7 2.0 2.1
CRI config format v1 v1 (v2 preview) v2 v2
Sandbox API Legacy Transitional v2 Stable v2 Enhanced
NRI support No Stable Stable Enhanced
Transfer service No Experimental Stable Stable
Image encryption Beta Stable Stable Stable
CDI device support No Beta Stable Stable
runc default version v1 v2 v2 v2
K8s CRI version v1 v1 v1 v1
Registry mirror config hosts.toml hosts.toml hosts.toml hosts.toml

Embed Badges

Add live containerd status badges to your README, docs, or dashboard.

Health Status

Overall support health

containerd Health Status
![containerd Health Status](https://img.releaserun.com/badge/health/containerd.svg)

EOL Countdown

Next end-of-life date

containerd EOL Countdown
![containerd EOL Countdown](https://img.releaserun.com/badge/eol/containerd.svg)

Latest Version

Current stable release

containerd Latest Version
![containerd Latest Version](https://img.releaserun.com/badge/v/containerd.svg)

CVE Status

Known vulnerabilities

containerd CVE Status
![containerd CVE Status](https://img.releaserun.com/badge/cve/containerd.svg)

Frequently Asked Questions

Common questions about containerd releases and lifecycle.

What is containerd and how does it relate to Docker?
containerd is the core container runtime that Docker Engine uses internally. When Kubernetes dropped Docker as a runtime in 1.24, the recommendation was to use containerd directly (via CRI). Docker Desktop and Docker Engine still use containerd under the hood. Switching from Docker to containerd on Kubernetes is transparent to your containers: same images, same registries, same behavior.
Which containerd version should I use with Kubernetes?
Check the Kubernetes release notes for tested containerd versions. K8s 1.28+ works with containerd 1.7+. K8s 1.30+ is tested with containerd 1.7 and 2.0. Always use the latest patch of your chosen containerd minor version. If your distro packages an older containerd, consider using the upstream packages from containerd.io.
What changed in containerd 2.0?
containerd 2.0 (released 2024) removed deprecated features: the legacy CRI plugin config format (switch to CRI v2), the older snapshotter API, and several deprecated Go APIs. It also introduced sandbox API improvements, better NRI (Node Resource Interface) support, and transfer service for improved image distribution. The CRI config migration is the main upgrade task.
How do I upgrade containerd on a Kubernetes node?
Cordon the node (kubectl cordon), drain workloads (kubectl drain --ignore-daemonsets), stop kubelet, upgrade containerd, update the config.toml if needed, restart containerd, restart kubelet, uncordon. On managed Kubernetes (EKS, GKE, AKS), the provider handles containerd upgrades during node pool updates.
What is the containerd config.toml format change?
containerd 1.x used a CRI plugin config format at [plugins."io.containerd.grpc.v1.cri"]. containerd 2.0 uses a simplified format. The containerd config migrate command can auto-convert your config. This is the #1 gotcha in the 1.x to 2.0 upgrade.
containerd vs CRI-O: which should I use?
Both are production-grade CRI runtimes. containerd has broader adoption (Docker, nerdctl, BuildKit all use it) and a larger ecosystem. CRI-O is purpose-built for Kubernetes only and is slightly lighter. OpenShift uses CRI-O exclusively. Most other Kubernetes distributions default to containerd. Pick whichever your platform supports; both are excellent.

Related Tools