Find the Best Cosmetic Hospitals

Explore trusted cosmetic hospitals and make a confident choice for your transformation.

“Invest in yourself — your confidence is always worth it.”

Explore Cosmetic Hospitals

Start your journey today — compare options in one place.

Docker Tutorials: Docker Cgroup Drivers – Complete Guide

Introduction

Docker uses cgroups (control groups) to manage resource constraints like CPU, memory, and I/O for containers. These cgroups are orchestrated through cgroup drivers that act as an interface between Docker and the Linux kernel.

Understanding Docker’s cgroup drivers is critical for:

  • Optimizing container resource management
  • Integrating container runtime with Kubernetes
  • Debugging container performance problems
  • Ensuring compatibility with modern OS distributions

📋 What Are Cgroup Drivers?

A cgroup driver tells Docker which mechanism to use to allocate and manage resource control groups (cgroups) in the Linux system.

Docker supports two cgroup driver types:

  1. cgroupfs — Docker directly manages cgroups via the kernel’s cgroup filesystem
  2. systemd — Docker delegates cgroup management to systemd, which manages cgroups unified with system services

As of Docker v20+, both are still relevant depending on OS and platform.


🧱 List of Docker Cgroup Drivers

DriverControl ModeSupported Linux Cgroup Versions
cgroupfsDirect via /sys/fs/cgroupcgroup v1 and hybrid v1/v2
systemdDelegated to systemd’s unified hierarchyFully cgroup v2 compliant

🔧 1. cgroupfs Driver

Definition: Docker directly creates and manages cgroups by interacting with the kernel’s cgroup filesystem.

Filesystem structure:

/sys/fs/cgroup/
 ├── cpu/
 ├── memory/
 ├── blkio/
 └── ...

✔️ Pros:

  • Works with systems without systemd (e.g., Alpine, older distros)
  • No systemd overhead
  • Independent cgroup hierarchy — doesn’t rely on OS unit governance

❌ Cons:

  • Container and system services may use different cgroup hierarchies, causing interference
  • Not recommended for Kubernetes — kubelet prefers unified hierarchy
  • Difficult to manage under cgroup v2-only systems

📦 Use Cases:

  • Minimal Linux OS without systemd (e.g., Alpine, some IoT or embedded systems)
  • Isolated, single-node Docker usage

🧭 2. systemd Driver

Definition: Docker delegates cgroup management to systemd, ensuring that containers and system services are part of the same unified hierarchy.

Hierarchy example:

/sys/fs/cgroup/system.slice/docker-<container-id>.scope/
Code language: HTML, XML (xml)

✔️ Pros:

  • Kubernetes recommended driver via cgroupDriver: systemd
  • Prevents conflicting resource handling between services and containers
  • Supports cgroup v2 (unified) by default
  • Integrated with host’s unit management (service-level resource control)

❌ Cons:

  • Requires systemd (not present on Alpine or older distros)
  • Slightly more overhead in cgroup management

📦 Use Cases:

  • Kubernetes clusters
  • Modern Linux systems (Ubuntu 20.04+, RHEL 8+, Debian 11+)
  • Mixed workloads where system services and containers need consistent resource governance

📊 Comparison Summary

Featurecgroupfssystemd
Kubernetes-friendly❌ No✔️ Yes
Works without systemd✔️ Yes❌ No
Unified control system❌ No✔️ Yes
cgroup v2 supportPartialFull
Simplicity✔️ YesModerate
Recommended by Docker?Only for non-systemd hosts✔️ Preferred driver

🛠️ How to Check Which Cgroup Driver You’re Using

For Docker:

docker info | grep -i cgroup

Output example:

Cgroup Driver: systemd
Cgroup Version: 2

For Kubernetes:

kubectl get node -o jsonpath='{.items[0].status.nodeInfo.cgroupDriver}'
Code language: PHP (php)

🧠 Best Practices and Recommendations

  • On Kubernetes clusters: always use systemd cgroup driver (especially with CRI runtimes)
  • On lightweight systems without systemd: use cgroupfs
  • On cgroup v2-only systems (e.g., newer Ubuntu, RHEL): ensure your Docker is using systemd
  • Set cgroup driver consistently across Docker, containerd, and Kubernetes components to avoid mismatch errors

📖 Configure Docker Cgroup Driver

Edit Docker daemon configuration:

sudo vim /etc/docker/daemon.json

Set systemd driver:

{
  "exec-opts": ["native.cgroupdriver=systemd"]
}
Code language: JSON / JSON with Comments (json)

Restart Docker:

sudo systemctl restart docker

🧭 Troubleshooting Common Issues

❌ Error: “cgroup driver conflict”

Occurs when Docker is using cgroupfs while Kubernetes (kubelet) uses systemd.

Fix: Align both to use systemd

❌ Not recognized cgroup v2

Upgrade Docker runtime to v20+ and configure systemd as cgroup driver.


🧩 Summary

Docker supports two primary cgroup drivers — cgroupfs and systemd. The modern recommendation, especially for Kubernetes or systemd-based distributions, is to use systemd as the cgroup driver.

This ensures unified resource control between system services and containers, avoids cgroup conflicts, and fully supports cgroup v2.

ScenarioRecommended Driver
Modern Linux with systemd (Ubuntu, RHEL, Debian)systemd
Kubernetes clusterssystemd
Minimal Linux without systemdcgroupfs
Legacy Docker usage on old OScgroupfs

Find Trusted Cardiac Hospitals

Compare heart hospitals by city and services — all in one place.

Explore Hospitals
I’m a DevOps/SRE/DevSecOps/Cloud Expert passionate about sharing knowledge and experiences. I have worked at <a href="https://www.cotocus.com/">Cotocus</a>. I share tech blog at <a href="https://www.devopsschool.com/">DevOps School</a>, travel stories at <a href="https://www.holidaylandmark.com/">Holiday Landmark</a>, stock market tips at <a href="https://www.stocksmantra.in/">Stocks Mantra</a>, health and fitness guidance at <a href="https://www.mymedicplus.com/">My Medic Plus</a>, product reviews at <a href="https://www.truereviewnow.com/">TrueReviewNow</a> , and SEO strategies at <a href="https://www.wizbrand.com/">Wizbrand.</a> Do you want to learn <a href="https://www.quantumuting.com/">Quantum Computing</a>? <strong>Please find my social handles as below;</strong> <a href="https://www.rajeshkumar.xyz/">Rajesh Kumar Personal Website</a> <a href="https://www.youtube.com/TheDevOpsSchool">Rajesh Kumar at YOUTUBE</a> <a href="https://www.instagram.com/rajeshkumarin">Rajesh Kumar at INSTAGRAM</a> <a href="https://x.com/RajeshKumarIn">Rajesh Kumar at X</a> <a href="https://www.facebook.com/RajeshKumarLog">Rajesh Kumar at FACEBOOK</a> <a href="https://www.linkedin.com/in/rajeshkumarin/">Rajesh Kumar at LINKEDIN</a> <a href="https://www.wizbrand.com/rajeshkumar">Rajesh Kumar at WIZBRAND</a> <a href="https://www.rajeshkumar.xyz/dailylogs">Rajesh Kumar DailyLogs</a>

Related Posts

Top 10 LLM Evaluation Harnesses: Features, Pros, Cons & Comparison

Introduction LLM Evaluation Harnesses are tools, frameworks, and platforms that help teams test large language models, prompts, RAG pipelines, chatbots, copilots, and AI agents before they are…

Read More

Top 10 Model Benchmarking Suites: Features, Pros, Cons & Comparison

Introduction Model Benchmarking Suites help AI teams test, compare, and validate machine learning models, large language models, multimodal models, and AI agents before they are deployed in…

Read More

Top 10 Model Compression Toolkits: Features, Pros, Cons & Comparison

Introduction Model compression toolkits help AI teams reduce the size, memory usage, latency, and serving cost of machine learning models while keeping useful performance as high as…

Read More

Top 10 Model Quantization Tooling: Features, Pros, Cons & Comparison

Introduction Model quantization tooling helps AI teams make models smaller, faster, and cheaper to run by reducing numerical precision. Instead of running every model weight or activation…

Read More

Top 10 Model Distillation Toolkits: Features, Pros, Cons & Comparison

Introduction Model distillation toolkits help AI teams transfer knowledge from a larger, more capable model into a smaller, faster, and cheaper model. In simple terms, the larger…

Read More

Top 10 RLHF / RLAIF Training Platforms: Features, Pros, Cons & Comparison

Introduction RLHF and RLAIF training platforms help AI teams improve model behavior using structured feedback. RLHF, or reinforcement learning from human feedback, uses human preference signals, ratings,…

Read More
Subscribe
Notify of
guest
3 Comments
Newest
Oldest Most Voted
Inline Feedbacks
View all comments
Skylar Bennett
Skylar Bennett
5 months ago

This blog post on Docker cgroup drivers provides an in-depth and clear explanation of a fundamental aspect of container management. It effectively breaks down how Docker utilizes cgroups to manage and isolate system resources such as CPU, memory, and I/O, ensuring containers run efficiently and do not interfere with each other. The guide also does a great job of explaining the different cgroup drivers, like cgroupfs and systemd, and how they impact container performance and compatibility with orchestration tools like Kubernetes. This post is incredibly valuable for DevOps professionals and system administrators, especially those working with containerized environments in production. It offers essential insights into resource management and isolation, which are key to maintaining stable and reliable systems. Overall, it’s a must-read for anyone looking to deepen their understanding of Docker’s internal workings and improve their container management skills.

Skylar Bennett
Skylar Bennett
5 months ago

nice

Jason Mitchell
Jason Mitchell
5 months ago

Loved this guide — it explained cgroup drivers in a way that finally made sense to me. Felt like chatting with a friend who actually knows Docker. Seriously, great job on this!

3
0
Would love your thoughts, please comment.x
()
x