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
</table>
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).