- Cloud Native Applications
- Application Security
- Application Security
- Web Application Security
- Application Security Posture Management (ASPM)
- Microsegmentation
- Python Security
- SaaS Security
- Node.JS Security
- PHP Security
- AI in Cyber Security
- Cybersecurity for Financial Services
- The Principle of Least Privilege (PoLP)
- Identity and Access Management
- Cybersecurity in Banking
- Threat Detection and Response
- Cyber Kill Chain
- Threat Hunting
- Zero Trust Security
- Zero Trust Architecture
- Fileless Attacks
- DSPM
- Container Scanning
- Kubernetes
- Kubernetes
- Kubernetes Alternatives
- Kubernetes Namespace
- Kubernetes Architecture
- Kubernetes Cluster
- Kubernetes Nodes
- Kubernetes Pods
- Kubernetes Jobs
- Kubernetes Workloads
- Kubernetes Monitoring
- Kubernetes Security
- Kubernetes RBAC
- Secret Scanning
- Kubernetes Security Posture Management (KSPM)
- Kubernetes on AWS
- Kubernetes on VMware
- Kubernetes Vulnerability Scanning
- Managing Containers in Kubernetes
- K3s
- eBPF in Kubernetes
- Kubernetes Dashboard
- Kubernetes Operators
- Kubernetes Services
- Kubernetes Devops
- Kubernetes Networking
- Kubernetes ConfigMap
- Kubernetes Management
- Kubernetes Helm
- Kubernetes as a Service
- Kubernetes Serverless
- Kubernetes Tutorials
- Cloud Attacks
- Cloud Attacks
- Malware Attacks
- Zero Day Attack
- Top 10 Cyber Security Threats
- Arbitrary Code Execution
- Cryptojacking
- AI Attacks
- Prompt Injection
- Backdoor Attacks
- Reverse Shell Attack
- Remote Code Execution
- Defense Evasion
- Honeypots in Cybersecurity
- Malware Analysis
- AI Malware
- Lateral Movement
- Advanced Malware Protection
- CNAPP
- AI Security
- Container Platforms
- Containerized Architecture
- Containerized Architecture
- Docker Secrets
- Container Runtime Interface
- Container Images
- Image Scanning
- Container Compliance
- Docker Security Best Practices
- Container Security
- Container Security Best Practices
- Container Security Tools
- ECS Security
- Network Segmentation
- Istio security
- runC
- Service Mesh
- Image Repository
- Container Escape
- Container Runtime
- Docker Container
- OSS Container Image Scanning Tools
- What Is a Container?
- Docker Images
- Containerization 101
- VM vs. Container
- Containerization vs. Virtualization
- Containerized Applications
- Microservices and Containerization
- Registry Scanning
- Docker CVEs
- Docker Monitoring
- Securing Containers with Docker Scanning
- Docker CIS Benchmark
- Seccomp
- Docker Alpine
- Docker API
- Docker Tools
- 100 Best Docker Tutorials
- Docker Alternatives
- Docker Swarm
- Docker Containers vs. Virtual Machines (VMs)
- Docker Architecture
- Docker Networking
- Docker Registries
- Docker Orchestration
- OpenShift vs Docker
- Container Cloud Computing
- Container DevOps
- Docker in Production
- Container Monitoring
- Container Advantages
- Docker Hub
- Serverless Architecture
- Supply Chain Security
- Supply Chain Compliance
- SolarWinds Attack
- Supply Chain Security
- Secure Software Development Lifecycle
- Software Supply Chain Attacks
- Dependency Confusion Attack
- SLSA
- SSDF
- Software Composition Analysis
- Security Misconfigurations
- Repojacking
- Privilege Escalation
- CI/CD Security
- SAST Security
- GitLab Security
- GitHub Secret Scanning
- OWASP Dependency-Check
- Software Bill of Materials
- SBOM Tools
- NPM Vulnerabilities
- Log4j Vulnerability
- Text4Shell
- Secrets Management
- Jenkins Security
- Yarn vs. NPM
- Source Code Leaks
- Container Image Signing
- Open Source Licenses
- Vulnerability Management
- Vulnerability Management Tools
- Vulnerability Scanning Process
- Vulnerability Management
- Vulnerability Scanning
- Vulnerability Prioritization
- Open Source Vulnerability Scanning
- Vulnerability Remediation
- Vulnerability Scanner
- Risk-Based Vulnerability Management
- Vulnerability Exploitability eXchange (VEX)
- Malware Detection
- Fileless Malware
- Attack Vectors
- Malicious Code
- Risk Posture
- Alert Fatigue in Cybersecurity
- Cyber Security Posture
- MITRE ATT&CK
- MITRE ATT&CK Framework
- LLM Security
- Code Scanning
- Attack Surface
- Attack Surface Management
- What Are Indicators of Compromise (IoC)?
- Secure Code
- Configuration Drift
- Trivy
- DevSecOps
- DevSecOps
- DevSecOps Pipeline
- DevSecOps Best Practices
- DevSecOps vs SecDevOps
- Threat Modeling
- Mean Time to Repair (MTTR)
- eBPF Linux
- Cloud DevOps
- DevOps Tools
- GitOps vs DevOps
- Code Security
- Secure Code Review
- DevOps Security
- Infrastructure as Code (IaC) Security
- Infrastructure as Code DevOps
- Executive Order 14028 (U.S. Cybersecurity Executive Order)
- Open Source Security
- Shift-Left Security
- Shift Right Testing and Security
- What Is SecOps (Security Operations)?
- SecDevOps
- DevSecOps Tools
- Linux Security
- Rocky Linux
- Azure DevOps
- Cloud Security
- Cloud Security
- Cloud Security Challenges
- Cloud Security Tools
- Code to Cloud
- Cloud Protection
- Cloud Security Frameworks
- Cloud Security Standards
- Cloud Security Controls
- Cloud Security Posture Management (CSPM)
- AI Workloads
- Cloud Digital Forensics
- Cloud Computing Security Architecture
- What Is Enterprise Cloud Security?
- Virtualized Security
- CSPM Tools
- Vulnerabilities in Cloud Computing
- Top 7 Risks of Cloud Computing
- Cloud Security Assessment
- Cloud Visibility
- Cloud Governance
- Cloud Security Strategy
- Cloud Security Policy
- DFIR
- Cloud Workloads
- Public Cloud Security
- Private Cloud vs. Public Cloud
- Runtime Security
- Azure Cloud Security
- Azure Security Best Practices
- Azure Security vs. AWS Security
- AWS GovCloud: Basics & How It Compares to Azure & GCP
- S3 Security
- Cloud Misconfiguration
- Terraform Security
- Hybrid Cloud Security
- Multi-Cloud Strategy
- Agentless vs. Agent-Based Security & Monitoring
- Cloud Infrastructure Security
- Gartner CSPM
- Cloud Security Scanner
- AWS CIS Benchmark
- Cloud Configuration Management
- Cloud Workload Protection (CWP)
- Cloud Workload Protection Platforms (CWPP)
- Cloud Workload Security
- Cloud Vulnerabilities and Tools that Can Help
- Google Cloud Security
- Shared Responsibility Model
- AWS Shared Responsibility Model
- AWS Cloud Security
- Multi Cloud Security
- Cloud Compliance
- Kubernetes in Production
- Cloud Detection And Response
containerd: What You Should Know
Understand the difference between the containerd container runtime and related technologies, key features, and how to secure containerd.
What is containerd?
containerd is a container runtime that manages the lifecycle of a container on a physical or virtual machine (a host). It is a daemon process that creates, starts, stops, and destroys containers. It is also able to pull container images from container registries, mount storage, and enable networking for a container.
containerd was created by Docker and donated to the Cloud Native Computing Foundation (CNCF). It is a subset of its original Docker Engine, which has most of Docker’s functionality for running containers, handling storage, and managing images, but does not have many developer-facing features, making it suitable for large-scale use as part of container orchestrators like Kubernetes. Docker Engine runs containerd behind the scenes.
Docker Engine is an example of a high-level container engine primarily used by developers, while containerd is an example of a low-level container engine, with only basic functionality, suitable for use by automated mechanisms.
containerd fully supports standards established by the Open Container Initiative (OCI), an open governance organization focused on container best practices. It also supports the container runtime interface (CRI), a Kubernetes specification developed to allow multiple container runtimes to operate as part of a cluster. Kubernetes can use containerd, and other low-level container runtimes supporting OCI, to run containers on Kubernetes nodes.
This is part of our series of articles about container platforms.
In this article:
containerd vs Docker
Docker provides a broad set of technologies used to run and manage containers. One of those technologies is Docker Engine, a full-featured container runtime with advanced developer tools.
containerd is also a container runtime, based on Docker technology. You can use containerd on its own, as a bare-bones container runtime solution. Additionally, newer versions of Docker Engine use containerd behind the scenes.
The Docker Engine command line interface (CLI) allows you to interact with the underlying container runtime using commands. For example, the docker run command instructs the container runtime to create a container based on a specified image. Behind the scenes, containerd takes over, downloads the relevant container image, and creates a container from that image.
containerd vs CRI vs OCI vs CRIO vs RUNC
Here is how containerd compares to a few other common container engines:
- Container Runtime Interface (CRI)—this is the API used by Kubernetes to control container runtimes. The CRI API describes how Kubernetes should interact with a container runtime. So while containerd is a specific container runtime, CRI is an interface that can work with any supported runtime. Learn more in our guide to Container Runtime Interface ›
- Open Container Initiative (OCI)—this is a collaborative effort for maintaining a container image specification format. OCI images have a standard format and any container runtime that supports OCI can run them. So while containerd can run container images, OCI is a format for describing how container images are structured.
- CRI-O—this is a container runtime with similar functionality sets as containerd. CRI-O pulls containers from a registry, manages their lifecycle, and executes a low-level runtime (runc) to run their processes. CRI-O was developed from the outset as a container runtime for Kubernetes.
- runc—this is an OCI-compatible low-level runtime. It provides basic functionality such as interacting with Linux kernel features or managing namespaces and control groups. It does not provide a full featured CLI or utilities for developers. Containerd uses runc to launch containers.
Related content: Read our guide to container engines ›
containerd Features
Here are key features of containerd:
- Client—a library you can run on a local or cloud system to integrate containerd into your environment.
- Namespaces—enable separation between groups of containers on the same host. You can run two containerd containers with the same name in different namespaces.
- Containers—technically, a container in containerd is a metadata object, and OCI runtimes, container images, and filesystems can be attached to it.
- OCI runtime specification—defines how the container runtime behaves. The OCI specification has functions that generate container specifications based on images.
- Root filesystems—makes it possible to overlay a filesystem on a container or create a snapshot of a filesystem to use in a container.
- Clone and restore—leverages the criu utility to clone live containers, migrate containers to other machines, and restore containers based on checkpoints.
- Snapshot plugins—enables adding external plugins via GRPC, allowing you to extend snapshot capabilities in containerd.
containerd Security Best Practices
Containers can present a significant security challenge for organizations who are not prepared for complexities of cloud native deployments. As you start using containerd in your organization, you should be aware of security best practices.
It is important to note that containerd has the same attack surface as Docker, out-of-the-box. While containerd does not offer a CLI or SSH interface, anyone with access to the containerd socket file can download crictl, nerdctl, or use curl to talk to the socket and accomplish desired actions (benign, malicious, or otherwise). containerd containers, however, also have Linux capabilities that can be vulnerable to attack, including sys_chroot, audit_write, mknod, and net_raw.
containerd also shares the following attack surfaces with Docker Engine:
- Container images containing vulnerabilities or malicious content
- Hard-coded secrets within images that can be easily obtained by attackers
- Over-privileged containers enabling container escape attacks
- When not orchestrated properly, containers can overuse resources and disrupt other processes
- Vulnerabilities in the underlying operating system kernel
Use these best practices to improve containerd security:
- Never run containers as root and reduce privileges to the minimum necessary.
- Always scan images before using them at all stages of development and deployment.
- Verify image integrity – ensure images are encrypted, signed, and extracted from trusted registries.
- Use the latest secure and verified version of container images.
- Encrypt secrets and use secure secret management mechanisms, which safely inject secrets in production.
- Harden container hosts to prevent attacks such as container breakouts.
- Update containerd, and if it is delivered via a Kubernetes service, use the latest version of the service
- Users should ensure that only authorized users have access to the containerd socket file
Read our guide to container security best practices ›
containerd Security with Aqua
Aqua Security provides container security solutions for modern cloud native ecosystems. Aqua’s solutions for integrated image scanning, Kubernetes security, and container runtime security allow Security and DevOps professionals to establish control points across the application lifecycle and establish end-to-end security coverage.
To learn more about container security best practices, check out the Container Security Best Practices eBook ›
- Container Platforms: 6 Best Practices and 15 Top Solutions
- Container Engines: How They Work and Top 7 Options
- Container as a Service: The Basics and Top 4 Providers
- Google Kubernetes Engine: 5 Key Features and Getting Started
- What Is AWS Fargate?
- What Is VMware Tanzu?
- Securing Production K8s Clusters in AKS
- What Is AWS EKS?
- What Is AWS ECS?
- Azure Container Registry: The Basics and Critical Security Best Practices
- Azure Red Hat OpenShift
- Container Deployment: Making the Move
- AWS Containers: The Basics and How to Secure Containers on Amazon
- Azure OpenShift
- Show more
Aqua Cloud Native Application Protection Platform (CNAPP)
Go cloud native with the experts!