Ctrl+K

Containerization & Orchestration

Docker, Kubernetes, and modern container workflows

Containerization Benefits

Consistency

Same environment from development to production eliminates β€œworks on my machine” issues.

Isolation

Applications run in isolated environments preventing dependency conflicts.

Efficiency

Lightweight compared to virtual machines, better resource utilization.

Scalability

Easy to scale applications horizontally with orchestration platforms.

Docker Command Reference

Image Management

# Build image
docker build -t myapp:1.0 .
 
# List images
docker images
 
# Remove image
docker rmi myapp:1.0
 
# Push to registry
docker push myregistry.com/myapp:1.0

Container Management

# Run container
docker run -d -p 3000:3000 myapp:1.0
 
# List running containers
docker ps
 
# Stop container
docker stop container_id
 
# View logs
docker logs container_id
 
# Execute commands in container
docker exec -it container_id bash

Docker Compose

version: '3.8'
services:
  web:
    build: .
    ports:
      - "3000:3000"
    environment:
      - NODE_ENV=production
  db:
    image: postgres:13
    environment:
      - POSTGRES_PASSWORD=password

Kubernetes Concepts

Core Objects

  • Pods: Smallest deployable units containing containers
  • Services: Network abstraction for accessing pods
  • Deployments: Declarative way to manage pod replicas
  • ConfigMaps/Secrets: Configuration and sensitive data management

kubectl Commands

# Get cluster info
kubectl cluster-info
 
# List pods
kubectl get pods
 
# Describe pod
kubectl describe pod pod-name
 
# View logs
kubectl logs pod-name
 
# Execute commands
kubectl exec -it pod-name -- bash

Best Practices

Image Optimization

  • Use multi-stage builds to reduce image size
  • Choose appropriate base images (Alpine Linux for smaller size)
  • Clean up package manager cache in Dockerfiles

Security

  • Don’t run containers as root
  • Scan images for vulnerabilities
  • Use secrets management instead of environment variables for sensitive data

Development Workflow

  • Use Docker Compose for local development
  • Mount source code volumes for hot reloading
  • Use .dockerignore to exclude unnecessary files

Production Deployment

  • Use health checks and readiness probes
  • Implement proper logging and monitoring
  • Plan for rolling updates and rollbacks
  • Set resource limits and requests