Skip to content
Back to skills

Docker Production

ASecurity

Deploy Docker containers to production with monitoring, logging, and health checks

  • 666 stars
  • 0 votes
  • 0 copies
  • 2 views
  • Added February 8, 2026
devopsbashdockerdebuggingsecurity

Security analysis

A96/100
  • mediumUses curl or wget to download content

Pro shows the line behind each finding and how to fix it

Scanned February 12, 2026

npx -y skills add majiayu000/claude-skill-registry --skill docker-production --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Docker Production?

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

Security grade badge for Docker Production
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/majiayu000-docker-production/badge)](https://www.skillsdirectory.com/skills/majiayu000-docker-production)

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: docker-production
description: Deploy Docker containers to production with monitoring, logging, and health checks
sasmp_version: "1.3.0"
bonded_agent: 07-docker-production
bond_type: PRIMARY_BOND
---

# Docker Production Skill

Master production-grade Docker deployments with monitoring, logging, health checks, and resource management.

## Purpose

Configure containers for production with proper observability, resource limits, and deployment strategies.

## Parameters

| Parameter | Type | Required | Default | Description |
|-----------|------|----------|---------|-------------|
| monitoring | enum | No | prometheus | prometheus/datadog |
| logging | enum | No | json-file | json-file/loki/elk |
| replicas | number | No | 1 | Number of replicas |

## Production Configuration

### Health Checks
```dockerfile
HEALTHCHECK --interval=30s --timeout=3s --retries=3 --start-period=60s \
  CMD curl -f http://localhost:3000/health || exit 1
```

```yaml
# Compose health check
services:
  app:
    healthcheck:
      test: ["CMD", "curl", "-f", "http://localhost:3000/health"]
      interval: 30s
      timeout: 10s
      retries: 3
      start_period: 60s
```

### Resource Limits
```yaml
services:
  app:
    deploy:
      resources:
        limits:
          cpus: '1'
          memory: 1G
        reservations:
          cpus: '0.5'
          memory: 512M
      restart_policy:
        condition: on-failure
        delay: 5s
        max_attempts: 3
```

### Logging Configuration
```yaml
services:
  app:
    logging:
      driver: json-file
      options:
        max-size: "10m"
        max-file: "3"
        labels: "app,environment"
```

## Monitoring Stack

### Prometheus + Grafana
```yaml
services:
  prometheus:
    image: prom/prometheus:latest
    volumes:
      - ./prometheus.yml:/etc/prometheus/prometheus.yml
    ports:
      - "9090:9090"

  grafana:
    image: grafana/grafana:latest
    ports:
      - "3001:3000"
    environment:
      GF_SECURITY_ADMIN_PASSWORD: ${GRAFANA_PASSWORD}

  cadvisor:
    image: gcr.io/cadvisor/cadvisor:latest
    volumes:
      - /:/rootfs:ro
      - /var/run:/var/run:ro
      - /sys:/sys:ro
      - /var/lib/docker/:/var/lib/docker:ro
    ports:
      - "8080:8080"
```

### Prometheus Config
```yaml
# prometheus.yml
global:
  scrape_interval: 15s

scrape_configs:
  - job_name: 'docker-containers'
    docker_sd_configs:
      - host: unix:///var/run/docker.sock
```

## Deployment Strategies

### Rolling Update (Zero Downtime)
```yaml
deploy:
  update_config:
    parallelism: 1
    delay: 10s
    failure_action: rollback
    order: start-first
  rollback_config:
    parallelism: 1
    delay: 10s
```

### Blue-Green
```bash
# Deploy new version
docker compose -p myapp-green up -d

# Switch traffic (update nginx/load balancer)
# Remove old version
docker compose -p myapp-blue down
```

## Error Handling

### Common Errors
| Error | Cause | Solution |
|-------|-------|----------|
| `unhealthy` | Health check failing | Check endpoint, increase start_period |
| `OOMKilled` | Memory exceeded | Increase limit or optimize |
| `restart loop` | App crash | Check logs, fix application |

### Recovery
1. Check logs: `docker logs --tail 100 <container>`
2. Verify health: `docker inspect --format='{{.State.Health.Status}}'`
3. Rollback if needed

## Troubleshooting

### Debug Checklist
- [ ] Health check passing?
- [ ] Resources sufficient? `docker stats`
- [ ] Logs showing errors?
- [ ] Metrics collecting?

### Diagnostics
```bash
# Resource usage
docker stats --format "table {{.Name}}\t{{.CPUPerc}}\t{{.MemUsage}}"

# Restart count
docker inspect --format='{{.RestartCount}}' <container>

# Recent events
docker events --filter 'container=<name>' --since 1h
```

## Usage

```
Skill("docker-production")
```

## Related Skills
- docker-debugging
- docker-ci-cd
- docker-security

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…

Newsletter

Get the weekly list of safe new skills, and the ones we pulled.