Skip to content
Back to skills

Containerization

ASecurity

Docker and Kubernetes workflows for containerization. Use for building containers, orchestration, and cloud-native deployments.

  • 33 stars
  • 0 votes
  • 0 copies
  • 0 views
  • Added February 10, 2026
devopsbashsqlnodedockerkubernetesgitapidatabase

Works with

  • api

Security analysis

A100/100

Scanned February 12, 2026

npx -y skills add lovedragonball/power-ranger-toolkit --skill containerization --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Containerization?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for Containerization
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/lovedragonball-containerization/badge)](https://www.skillsdirectory.com/skills/lovedragonball-containerization)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
SKILL.md
---
name: containerization
description: Docker and Kubernetes workflows for containerization. Use for building containers, orchestration, and cloud-native deployments.
---

# 🐳 Containerization Skill

## Docker Basics

### Dockerfile
```dockerfile
# Multi-stage build
FROM node:20-alpine AS builder
WORKDIR /app
COPY package*.json ./
RUN npm ci
COPY . .
RUN npm run build

FROM node:20-alpine AS runner
WORKDIR /app
ENV NODE_ENV=production
COPY --from=builder /app/dist ./dist
COPY --from=builder /app/node_modules ./node_modules
EXPOSE 3000
CMD ["node", "dist/index.js"]
```

### docker-compose.yml
```yaml
version: '3.8'
services:
  web:
    build: .
    ports:
      - "3000:3000"
    environment:
      - DATABASE_URL=postgres://db:5432/app
    depends_on:
      - db
  
  db:
    image: postgres:15-alpine
    environment:
      POSTGRES_PASSWORD: secret
    volumes:
      - postgres_data:/var/lib/postgresql/data

volumes:
  postgres_data:
```

---

## Docker Commands

```bash
# Build
docker build -t myapp:latest .

# Run
docker run -d -p 3000:3000 --name myapp myapp:latest

# Compose
docker-compose up -d
docker-compose down

# Clean up
docker system prune -a
```

---

## Kubernetes Basics

### Deployment
```yaml
apiVersion: apps/v1
kind: Deployment
metadata:
  name: myapp
spec:
  replicas: 3
  selector:
    matchLabels:
      app: myapp
  template:
    metadata:
      labels:
        app: myapp
    spec:
      containers:
        - name: myapp
          image: myapp:latest
          ports:
            - containerPort: 3000
          resources:
            limits:
              memory: "256Mi"
              cpu: "500m"
```

### Service
```yaml
apiVersion: v1
kind: Service
metadata:
  name: myapp-service
spec:
  selector:
    app: myapp
  ports:
    - port: 80
      targetPort: 3000
  type: LoadBalancer
```

---

## K8s Commands

```bash
# Apply configs
kubectl apply -f deployment.yaml

# Get resources
kubectl get pods
kubectl get services

# Logs & Debug
kubectl logs pod-name
kubectl exec -it pod-name -- /bin/sh

# Scale
kubectl scale deployment myapp --replicas=5
```

---

## Best Practices

| Practice | Description |
|----------|-------------|
| .dockerignore | Exclude node_modules, .git |
| Multi-stage | Smaller production images |
| Non-root | Run as non-root user |
| Health checks | Add HEALTHCHECK directive |
| Resource limits | Set CPU/memory limits |

---

## Checklist

- [ ] Create Dockerfile (multi-stage)
- [ ] Add .dockerignore
- [ ] Set up docker-compose for dev
- [ ] Configure health checks
- [ ] Create K8s manifests
- [ ] Set resource limits

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments

Loading comments…