Certified Kubernetes Application Developer - CKAD
Core Concepts
A note on Docker Deprecation
Every time we mention Docker in this article, we receive questions like: Why discuss Docker if it's deprecated? This article aims to clarify the situation and dispel any confusion surrounding Docker's deprecation in Kubernetes.
Previously, Docker was the only supported container runtime for Kubernetes. Docker combined several essential components into one platform, including the Docker CLI, API, image build tools, volume support, security features, the container runtime (runc), and the daemon (containerd). However, to support a variety of runtimes, Kubernetes introduced the Container Runtime Interface (CRI).
The key takeaway is that the component containerd is CRI-compatible and operates directly with Kubernetes, independent of Docker’s other components. This means containerd can function as a standalone runtime. With containerd managing container operations, Kubernetes no longer depends on Docker-specific tools such as its CLI, API, or volume management, as these needs are now handled internally by Kubernetes.
Clarification
Kubernetes' deprecation of Docker as a runtime does not mean Docker is obsolete. It simply indicates that Kubernetes now uses containerd directly through CRI, bypassing Docker-specific integrations.
Docker remains the most popular container solution among developers for daily development and build processes. In discussions throughout this article, Docker is often used as an example to illustrate container concepts. This is acceptable because beginners typically start with Docker before transitioning to container orchestration with Kubernetes. For those who use containerd exclusively or do not have Docker installed, tools like nerdctl provide equivalent commands with a Docker-compatible interface.
For further reading on container runtimes and Kubernetes integrations, consider exploring these resources:
Watch Video
Watch video content