On this page
| Related Technologies | Related Topics | |
|---|---|---|
| Computer Networks | Docker | Dev Tools |
Containerization Technologies
System containers (lightweight VM-like):
LXC/LXD
Container runtimes / clients:
Docker | Podman
Local multi-service composition:
Docker Compose | Kubernetes
Full Kubernetes distributions / enterprise & managed K8s:
OpenShift
EKS (Amazon Elastic Kubernetes Service)
GKE (Google Kubernetes Engine)
AKS (Azure Kubernetes Service)
Lightweight/local Kubernetes for dev & edge:
Minikube | Kind | K3s | MicroK8s
Kubernetes management / multi-cluster:
Rancher
Alternative schedulers / orchestrators (non‑Kubernetes):
Mesos | Nomad | ECS (Amazon Elastic Container Service)
Docker Compose vs Kubernetes
Use Docker Compose
- for local development/test environments
- simple single-host stacks, quick prototypes
- your team wants minimal ops overhead
Use Kubernetes
- for production-grade
- multi-node orchestration with advanced features (scaling, self‑healing, service mesh, operators)
- fine-grained scheduling, autoscaling, complex networking
- run many services in production
- you want to adopt cloud-native patterns, operators, service meshes, or large-scale deployments
| Feature | Docker Compose | Kubernetes |
|---|---|---|
| Purpose | Lightweight tool to define and run multi-container apps on a single Docker host (development & simple deployments). | Full container orchestration platform for running containers across many hosts with declarative APIs, scheduling, and a large ecosystem. |
| Scope | Service composition, basic networking, volumes, environment variables, simple scaling on a single host. | Scheduling, rolling updates, autoscaling, service discovery, complex networking, persistent volumes, secrets, RBAC, autoscalers, controllers/operators. |
| Feature-by-feature comparison | ||
| Deployment model | docker-compose.yml (imperative up/down, or declarative file used by the CLI). | YAML manifests (Deployments, Services, StatefulSets, DaemonSets, Jobs) applied with kubectl or via controllers. |
| Scaling | Can run multiple replicas with docker compose up --scale (single host). deploy.replicas in compose file is for Swarm, not for standalone docker-compose. |
Horizontal Pod Autoscaler (HPA) across cluster nodes using metrics (CPU/memory/custom). |
| Scheduling & multi-node | Limited to one host (unless you use Swarm or other tooling). | Schedules pods across multiple nodes with constraints (nodeSelector, taints/tolerations, affinities). |
| High availability & self-healing | Restarts on failure on the same host; needs external tooling for HA. | Built-in health checks (readiness/liveness), restarts, rescheduling on node failure. |
| Networking & load balancing | Simple user-defined networks and port mappings. | ClusterIP, NodePort, LoadBalancer types, Ingress controllers, CNI plugins for advanced networking. |
| Storage | Volumes bound to host or volume drivers; limited portability. | PersistentVolumes + PersistentVolumeClaims with many provisioners (cloud disks, NFS, CSI drivers). |
| Configuration & secrets | Env files, environment variables, simple secrets via files or environment. | ConfigMaps and Secrets, RBAC-controlled access, encryption at rest options. |
| Observability & ecosystem | Limited built-in tooling — rely on Docker tooling and ad-hoc solutions. | Large ecosystem — Prometheus, Grafana, Jaeger, service meshes (Istio/Linkerd), operators, Helm charts. |
| Complexity & ops | Simple to learn and operate. | Significantly higher learning curve and operational overhead (cluster control plane, upgrades, security, networking). |