Corporate · onsite · online training worldwide
contact@DevOpsSchool.com· +91 99057 40781·
> Container Runtime · DevOpsSchool Trainer

containerd Trainer

Private corporate batches, live online cohorts and 1-on-1 mentoring in the CRI runtime beneath Kubernetes — snapshotters, shims, namespaces and the ctr/crictl/nerdctl toolchain — taught by a practitioner who runs it in production.

20 years across DevOps, SRE and Security · 10,000+ engineers trained · Trained teams at JPMorgan Chase, Verizon, Nokia and the World Bank

DeliveryOnline · Onsite · Hybrid
FormatsCorporate · 1-on-1 · Cohort
AgendaCustomisable
Batch size8–30 engineers
Engineers we've trained work at
JPMorgan ChaseBank of AmericaWells FargoVerizonNokiaWorld BankGE HealthcareVMwareOracleQualcommMercedes-BenzAirbusDatadogSplunkDeloitteInfosysWiproCapgemini
# who teaches it

Your containerd trainer

Rajesh Kumar

Principal DevOps Engineer & Architect

Container platformsCluster operationsProduction Kubernetes20 years in productionPrincipal / architect roles10,000+ engineers trainedM.Tech BITS Pilani25+ certifications

Rajesh teaches containerd as the layer beneath the engine — the plugin architecture and gRPC service split, namespaces and why k8s.io containers are invisible to a default-namespace client, the content store and snapshotter mechanics that decide pull and unpack behaviour, and the shim model that lets the daemon restart without killing workloads. Sessions cover the configuration engineers actually need to change: config.toml versions, registry mirrors and hosts.toml, the systemd cgroup driver, sandbox image and runtime handlers for gVisor or Kata via RuntimeClass, plus garbage collection, leases and node-level debugging with ctr, crictl and nerdctl.

Twenty years across DevOps, SRE and Security, in principal and architect roles at PayPay, SoftwareAG, ServiceNow, JDA Software, Intuit, Adobe and others. He has trained engineers at JPMorgan Chase, Verizon, Nokia, the World Bank, VMware, Oracle, Mercedes-Benz and Airbus — more than 10,000 people personally. He teaches what he runs, not what he reads.

One practitioner, not a bench

You are booked with a named engineer, and that is who turns up. Marketplaces and larger providers rotate whoever is free, so the person who sold you the agenda is rarely the person teaching it.

The same trainer is available for the next engagement, which matters when a team builds on what it learned last time.

18,000+certified learners
500+corporate batches delivered
50+countries served
100+certification programmes
# faculty

Who delivers containerd engagements

Your batch is assigned a named trainer before it starts, and that is who teaches it. See the full faculty.

How your containerd trainer is chosen

Engagements are matched on the tool, not the calendar. For containerd that means a trainer who has run it in production — the CRI runtime beneath Kubernetes — snapshotters, shims, namespaces and the ctr/crictl/nerdctl toolchain — rather than whoever is free that week. You are told who is teaching before you commit, and that person is on the discovery call that shapes the agenda.

Where a batch is large enough to need a second trainer, the pairing is declared up front. The lead trainer stays accountable for the syllabus and the assessment either way.

Rajesh Kumar

Principal DevOps Engineer & Architect

India20 yrsLead trainer

Twenty years across DevOps, SRE and Security in principal and architect roles at PayPay, SoftwareAG, ServiceNow, JDA Software, Intuit, Adobe, IBM/Emptoris, Ness, MindTree and Accenture. He has trained more than 10,000 engineers personally, at organisations including JPMorgan Chase, Verizon, Nokia, the World Bank, VMware, Oracle, Mercedes-Benz and Airbus. He teaches what he runs, not what he reads.

Nikhil Gupta

IndiaInstructorCoach

Pranab Kumar

IndiaInstructorCoach

Rohit Ghatol

IndiaInstructorCoach

Amit Agarwal

IndiaInstructorCoach

Anil Kumar

IndiaInstructorCoach

Balachandran Anbalagan

IndiaInstructorCoach

Durga Prasad

IndiaInstructorCoach

Gaurav Aggarwal

IndiaInstructorCoach

Harsh Mehta

IndiaInstructorCoach

Kapil Gupta

IndiaInstructorCoach

Kunal Jain

IndiaInstructorCoach

# how to engage

Four ways to work with this trainer

Private corporate batch

Teams of 8–30

Custom agenda, your timezone, onsite or online, NDA-friendly.

Request a quote

1-on-1 mentoring

Individual engineers

A private instructor and a curriculum built around your goal.

₹99,999

Live & Interactive cohort

Individuals who want peers

Scheduled batch, max 8 to 10 hours of live instruction.

₹34,999

Self-paced video

Self-starters

Full LMS access — 20+ courses and 50+ tools included.

₹833/mo
# private batches

Private containerd training for your team

A private batch starts with a discovery call. We look at the stack you actually run — the CI system, the cloud, the constraints — and map the agenda onto it, so examples use your topology rather than a generic one.

Delivery is onsite at your premises, live online, or hybrid, scheduled around your release calendar rather than ours. Batches run 8 to 30 engineers.

Every attendee leaves with recordings, slides, lab repositories and a completion certificate. You receive an attendance and assessment report. Invoicing supports PO and GST.

Talk to us about a private containerd batch

What you provide vs what we bring

  • You: the room or the call, and the engineers
  • Us: trainer, agenda, labs, assessment, certificates
  • Labs: we guide your team through provisioning their own free-tier cloud environment — the skill goes with them
# the technology

What is containerd?

containerd is a container runtime daemon: a long-running service that manages the complete lifecycle of containers on one machine — pulling and storing images, unpacking them into filesystems, handing execution to an OCI runtime, and supervising the result. It is not a developer tool and has no build system, no Compose and no opinion about workflow. It exposes a gRPC API and expects a client above it, which is exactly why Kubernetes uses it directly through the CRI plugin instead of going through a higher-level engine.

Internally containerd is a set of plugins behind that API, and the separation between them is what makes its behaviour predictable. The content store holds immutable, content-addressed blobs. The image service records manifests and tags pointing at that content. Snapshotters — overlayfs by default, with native, btrfs, zfs, devmapper and lazy-pulling options such as stargz and nydus — turn those layers into a mountable root filesystem. The task service starts processes by launching a shim, and every client operation happens inside a namespace, so the containers Kubernetes creates in the k8s.io namespace are invisible to a client working in the default one.

The shim is the design detail with the largest operational consequence. containerd does not parent container processes itself; containerd-shim-runc-v2 does, one per pod sandbox, and it calls runc to create the container and then stays alive holding the process. Because of that, containerd can be restarted or upgraded while workloads keep running. RuntimeClass and runtime handlers extend the same mechanism to alternative runtimes — gVisor, Kata Containers, crun — by pointing at a different shim.

Why this skill matters now

Kubernetes talks to containerd, not to a container engine. Since dockershim was removed from the kubelet, the runtime under almost every managed and self-managed cluster is containerd, and the tooling engineers reach for by habit no longer sees those containers at all. That gap turns routine node debugging into guesswork for teams who never learned the layer below the engine they started with.

The practical consequences show up constantly. Image pull failures and registry mirror configuration are resolved in containerd's config.toml and hosts.toml, not anywhere in Kubernetes. Cgroup driver mismatches between the kubelet and the runtime produce pods that fail in ways that look like scheduling problems. Disk pressure on a node is usually the content store and snapshots, and it is cleared by understanding leases and garbage collection rather than by deleting directories. Sandboxed runtimes for untrusted workloads are configured as runtime handlers with a RuntimeClass, one layer below anything Kubernetes documents in detail.

There is a performance dimension too. Image pull and unpack time is dominated by the snapshotter, and lazy-pulling snapshotters change node startup characteristics substantially for large images. Those are runtime decisions, made and diagnosed at the containerd layer.

containerd training
# outcomes

What your team can do afterwards

Place containerd precisely in the OCI stack and explain what it does that runc and the kubelet do not
Navigate containerd namespaces and inspect the containers Kubernetes actually created
Explain the content store and image handling: manifests, blobs, digests and unpacking
Choose a snapshotter deliberately and explain its effect on pull time, disk usage and node startup
Describe the shim model well enough to explain why restarting containerd does not kill containers
Configure config.toml correctly — version, cgroup driver, sandbox image, registry mirrors and hosts.toml
Register alternative runtimes such as gVisor or Kata and expose them through a Kubernetes RuntimeClass
Reclaim node disk safely using leases, garbage collection and image pruning rather than manual deletion
Debug node-level container failures with ctr, crictl, nerdctl, shim logs and journald
# curriculum

8 modules. Live demos in a real lab, not slides.

01Where containerd sits in the OCI stackLive & Interactive5 hrs · 2 assignments · 1 capstone

The layering, stated exactly. Kubelet, CRI, containerd, shim, runc and the kernel — who calls whom, what each layer owns, and which of the industry's runtime alternatives replace which layer.

Topics: The OCI runtime, image and distribution specifications · kubelet, CRI, containerd, shim, runc · containerd against CRI-O and other CRI implementations · runc, crun, youki and sandboxed runtimes · What dockershim removal actually changed · Where a container engine still adds value

  • Assignments: (1) Draw the full call path from a pod spec to a running process; (2) Run the same workload through an engine and directly through containerd, and compare
  • Capstone: Produce a runtime architecture note explaining every layer on your own nodes
02Architecture — daemon, plugins and the gRPC servicesLive & Interactive5 hrs · 2 assignments · 1 capstone

How the daemon is put together. The plugin model, the service split across content, images, containers, snapshots, tasks, events and leases, and the client libraries that drive them.

Topics: The plugin architecture and plugin types · Content, images, containers, snapshots, tasks and diff services · Events and the subscription API · Leases and reference counting · ctr as a low-level debugging client · The Go client library · Inspecting loaded plugins and their state · Daemon installation and systemd unit

  • Assignments: (1) List loaded plugins and identify which snapshotter and runtime are active; (2) Create, start and delete a container using only ctr
  • Capstone: Deliver an annotated map of the running daemon's plugins and services
03Namespaces and the content storeLive & Interactive5 hrs · 2 assignments · 1 capstone

Two concepts that explain most confusion. containerd namespaces as complete isolation between clients, then the content-addressed store: blobs, manifests, digests, and what pulling an image actually writes to disk.

Topics: containerd namespaces: default, moby and k8s.io · Why containers can be invisible to a client · Content-addressed blobs and digests · Image manifests, indexes and multi-architecture · Pull, unpack and the separation between them · Image labels and metadata · ctr and crictl across namespaces · Content store layout on disk

  • Assignments: (1) Find a Kubernetes-created container from the command line and inspect it; (2) Pull an image without unpacking it, then unpack it separately
  • Capstone: Account for every byte an image pull added to a node's disk
04Snapshotters and the filesystem layerLive & Interactive5 hrs · 2 assignments · 1 capstone

How layers become a root filesystem. The snapshotter interface, overlayfs as the default and its constraints, the alternatives, and the lazy-pulling snapshotters that change node startup time for large images.

Topics: The snapshotter interface: active and committed snapshots · overlayfs mechanics, lowerdir, upperdir and workdir · native, btrfs, zfs and devmapper snapshotters · Lazy pulling with stargz and nydus · Snapshot layout on disk and space accounting · Choosing a snapshotter for a workload profile · Diagnosing mount and permission failures · Measuring pull and unpack time

  • Assignments: (1) Measure pull and unpack time for a large image across two snapshotters; (2) Inspect the overlay mount of a running container and locate its layers
  • Capstone: Recommend a snapshotter for a named node profile with measured evidence
05Tasks, shims and runc — the execution pathLive & Interactive5 hrs · 2 assignments · 1 capstone

How a process actually starts. The task service, containerd-shim-runc-v2, the OCI runtime specification bundle handed to runc, and the process supervision model that keeps containers alive across a daemon restart.

Topics: Tasks versus containers · containerd-shim-runc-v2 and the shim API · One shim per pod sandbox · The OCI bundle: config.json and rootfs · runc create, start, exec and delete · Restarting containerd without killing workloads · Signals, exit status and process reaping · Shim logs and failure diagnosis

  • Assignments: (1) Restart the containerd daemon under load and prove workloads survived; (2) Inspect a live OCI bundle and correlate config.json with the pod spec
  • Capstone: Explain and demonstrate the complete path from a CRI call to a running process
06CRI — how the kubelet drives containerdLive & Interactive5 hrs · 2 assignments · 1 capstone

The Kubernetes-facing interface. The CRI plugin, sandboxes and containers, the pause container's role, image service versus runtime service, and how kubelet configuration and containerd configuration must agree.

Topics: The CRI plugin and its socket · RunPodSandbox, CreateContainer and the CRI call sequence · The pause container and shared namespaces · sandbox_image configuration · Image service versus runtime service · crictl: pods, ps, images, logs, inspect, exec · kubelet flags that must match containerd settings · Reading CRI errors that surface as pod events

  • Assignments: (1) Reproduce a pod's full lifecycle using crictl alone; (2) Diagnose a pod stuck in ContainerCreating from the runtime side
  • Capstone: Deliver a node-level troubleshooting guide covering the five most common CRI failures
07Configuration — config.toml, registries, cgroups and runtime classesLive & Interactive5 hrs · 2 assignments · 1 capstone

The file that decides node behaviour. Configuration versions and their differences, the systemd cgroup driver, registry mirrors and authentication through hosts.toml, and registering additional runtime handlers for sandboxed workloads.

Topics: config.toml versions and migration between them · SystemdCgroup and cgroup v2 · Registry mirrors and the hosts.toml directory layout · Registry authentication and insecure registries · Private and air-gapped registry configuration · Runtime handlers and runtime options · gVisor and Kata Containers as handlers · Exposing handlers through Kubernetes RuntimeClass

  • Assignments: (1) Configure a registry mirror with hosts.toml and prove pulls use it; (2) Register a sandboxed runtime and schedule a pod onto it with RuntimeClass
  • Capstone: Produce a node configuration standard covering cgroups, registries and runtime handlers
08Operations — garbage collection, migration, monitoring and debuggingLive & Interactive5 hrs · 2 assignments · 1 capstone

Keeping nodes healthy. Leases and the garbage collector, safe image and snapshot pruning, upgrade behaviour, metrics, and the debugging workflow that resolves runtime incidents without restarting nodes at random.

Topics: Leases, reference counting and the garbage collector · Reclaiming disk: images, snapshots and content · kubelet image garbage collection versus containerd's · Upgrading containerd on a live node · Migrating a node from dockershim to CRI · Metrics endpoint and Prometheus scraping · Debugging with ctr, crictl, nerdctl and journalctl · Common failures: disk pressure, cgroup mismatch, mirror misconfiguration, shim leaks

  • Assignments: (1) Fill a node's disk with images and reclaim it safely without breaking running pods; (2) Upgrade containerd on a node carrying live workloads
  • Capstone: Write and rehearse a node runbook covering disk reclamation, upgrade and runtime triage

Need this mapped to your stack?

We rebuild the agenda around the tools you actually run.

Request a custom agenda
# hands-on

Labs and capstones your engineers actually build

LAB · NAMESPACES

Find the container Kubernetes hid

Locate a Kubernetes-created container from the command line, inspect its task and bundle, and explain why the default namespace showed nothing.

namespacesctrcrictl
LAB · SNAPSHOTS

Snapshotter bake-off

Pull a multi-gigabyte image under overlayfs and under a lazy-pulling snapshotter, and measure pull time, unpack time and disk consumed.

overlayfsstargzperformance
LAB · SHIMS

Restart the daemon, keep the workloads

Restart and then upgrade containerd while containers serve traffic, and trace the shim processes that made the survival possible.

shimruncupgrade
LAB · CRI

A pod without Kubernetes

Create a sandbox and containers with crictl by hand, then diagnose a pod stuck in ContainerCreating entirely from the runtime side.

crisandboxtroubleshooting
LAB · REGISTRY

Mirror, authenticate, air-gap

Configure registry mirrors and credentials with hosts.toml, then prove an air-gapped node pulls only from the internal mirror.

hosts.tomlmirrorauth
CAPSTONE · NODE

Rescue a node under disk pressure

Fill a node until pods are evicted, then reclaim space through leases, garbage collection and pruning without disturbing running workloads.

garbage collectionleasesdisk pressure
# ecosystem

The tools containerd sits next to

Kubernetes
runc
crun
CRI-O
nerdctl
crictl
gVisor
Kata Containers
Harbor
Prometheus
Docker
BuildKit

Who this is for

  • SREs and platform engineers who debug Kubernetes nodes
  • Infrastructure engineers building or maintaining node images
  • Engineers who have migrated off dockershim and lost their debugging habits
  • Security engineers deploying sandboxed runtimes for untrusted workloads
  • Performance engineers investigating image pull and node startup time
  • Architects evaluating runtime choices for a Kubernetes platform

Pre-requisites

  • Solid Linux fundamentals — processes, systemd, mounts, cgroups and journald
  • Practical container experience: building images and running them somewhere
  • Working Kubernetes knowledge, at least at the pod and node level
  • Comfortable reading TOML and JSON configuration
  • Root access to a Linux host or VM where containerd can be reconfigured and restarted
# pricing

Straightforward pricing

Every plan includes 1 year of full LMS access — not just this course, the entire DevOpsSchool LMS: 20+ courses, 50+ tools, videos, quizzes, assignments and projects.

Self-paced video

₹833/mo

Billed yearly at ₹9,996

Enroll now

1-on-1 mentorship

₹99,999

Full program, private instructor

Enroll 1-on-1

Corporate / private batch

8–30 engineers · custom agenda · onsite or online · PO and GST invoicing

Get a custom quote

Refunds. If we cancel or postpone a cohort, you get a full refund within 15 days. There is no money-back guarantee otherwise.

Terms. Course material remains licensed to the attendee. Read the terms.

Your data. We don't share it with third parties. Privacy policy.

Every attendee gets a verifiable certificate

  • Issued per attendee on completion
  • Verifiable at devopsschool.com/certificates
  • Hard copy available on request
  • Corporate batches receive an attendance and assessment report
DevOpsSchool

containerd Training

Certificate of completion

# feedback

What engineers say

4.4 / 5 from 26 reviews on Trustpilot.

★★★★☆
Helped to understand more on overall DevOps concepts.
Pankaj Malhotra · Trustpilot
★★★★★
Got good lab sessions which kept the new DevOps tool learnings to the point and it helped a lot in my career.
robin son · Trustpilot
★★★★★
Very good training session. Well explained from the basics to the complex concepts. Also tried to cover practicals and demos within the 3 hour sessions. The learning content and videos are of a great deal of help.
Sreekanth Kannoth · Trustpilot
★★★★★
Basics explanation was exemplary from Rajesh where he dealt with complicated topics to be simple. Great learning stuff personally for me.
Krishna Mohan Yelleti · Trustpilot
★★★★★
Very detailed explanation and has lots of patience in attending the questionnaire. Thanks again for your wonderful sessions.
Uttam Samudrala · Trustpilot
★★★★★
Good discussion, helped us to understand different tools in SRE.
Prashant Saxena · Trustpilot
# comparison

Why a named practitioner beats a marketplace listing

What mattersYouTube + blogsGeneric online courseFreelance marketplaceDevOpsSchool
Named practitionerNoRarelyVaries per bookingYes — same trainer each time
Production experienceUnknownUnknownUnverified20 years, named employers
Custom agendaNoNoSometimesBuilt from your stack
Onsite deliveryNoNoSometimesYes
Lab environmentNoneSandbox that expiresVariesYour own cloud — skill goes with you
AssessmentNoneQuizRarelyAssignments + capstone per module
Per-attendee certificatesNoSometimesRarelyYes
Corporate invoicingNoLimitedVariesPO and GST
Post-training supportNoneForum, time-limitedNoneLifetime forum access
# questions

Frequently asked

How is this different from a Docker course?
A Docker course teaches the workflow above the runtime — images, Dockerfiles, Compose, registries and networking drivers. This course starts below that: the daemon's plugin architecture, snapshotters, shims, CRI and node configuration. There is deliberately almost no overlap, and image-building is not covered here.
Do we need this if we only run managed Kubernetes?
Usually yes. Managed control planes do not remove the runtime from your nodes, and image pull failures, registry mirrors, cgroup mismatches and disk pressure are all resolved at the containerd layer. What changes is that some node configuration is applied through a node pool or bootstrap script rather than by hand.
Does this cover CRI-O as well?
As comparison, in the first module — the CRI contract is the same, and much of the debugging transfers. If your estate standardises on CRI-O we can invert the emphasis for a private batch, keeping the CRI, cgroup and registry material and replacing the containerd-specific internals.
Can you cover gVisor and Kata Containers?
Yes. Registering them as runtime handlers and exposing them through a Kubernetes RuntimeClass is part of the configuration module, with a lab that schedules a pod onto a sandboxed runtime. Deeper isolation-model comparison can be added for a private batch.
Will we practise on real failures?
Every module ends in one. The labs include a pod stuck in ContainerCreating, an air-gapped registry misconfiguration, a daemon upgrade under live traffic, and a capstone that fills a node until pods are evicted and then reclaims space safely.
Can the agenda be customised for our stack?
Yes, and it is the normal case for a private batch. We start with a discovery call and rebuild the agenda around your node operating system, cgroup version, registry topology, snapshotter and any sandboxed runtime requirements.
How long does a private containerd batch take?
Two days for the full agenda. One day covers architecture, namespaces, snapshotters and CRI debugging, which is enough for most on-call SRE needs; the second adds configuration, alternative runtimes and node operations.
What lab environment is needed?
One Linux VM per attendee with root access — containerd must be reconfigured and restarted, so a shared or managed node will not do. A small Kubernetes cluster on those VMs covers the CRI and RuntimeClass work.
Do you deliver onsite?
Yes. Private batches run onsite at your premises, live online, or hybrid, scheduled around your release calendar.
What size are batches?
Private corporate batches run 8 to 30 engineers. Public Live & Interactive cohorts are capped at 10.
Do attendees get a certificate?
Yes — a completion certificate per attendee, verifiable at devopsschool.com/certificates, plus an attendance and assessment report for corporate batches.
What is your refund position?
If we cancel or postpone a cohort, you receive a full refund within 15 days. There is no general money-back guarantee, and GST and gateway fees are not refunded.

Still deciding?

Tell us the team, the stack and the timeline. You'll get a straight answer, not a sales sequence.

Talk to an advisor
# ready when you are

Book a containerd trainer — or ask a question first.

  • No spam, no drip sequence
  • Syllabus in 60 seconds
  • A human reply within one business day

Prefer to call or email?

More ways to reach us on the contact page.

Talk to an advisorRequest a quote