Now liveThe Skillselion MCP - thousands of ranked skills, loaded into your agent mid-task. No install.Get it →
full-statck-skills avatar

Docker Production

  • 11 installs
  • 2 repo stars
  • Updated July 29, 2026
  • full-statck-skills/docker-skills

Deploy Docker in production with Swarm or Kubernetes migration, resource limits, zero-downtime rolling updates, and Prometheus/Grafana monitoring.

About

Guides deploying and managing Docker in production with Swarm, Kubernetes migration, and container monitoring. A developer uses it to run containerized services in production with zero-downtime deploys.

  • Docker Swarm init/join/stack deploy, service scaling, and rolling updates
  • Kubernetes migration with kompose/Helm, zero-downtime patterns, cAdvisor+Prometheus+Grafana monitoring

Docker Production by the numbers

  • 11 all-time installs (skills.sh)
  • Ranked #993 of 1,435 DevOps & CI/CD skills by installs in the Skillselion catalog
  • Data as of Jul 30, 2026 (Skillselion catalog sync)
npx skills add https://github.com/full-statck-skills/docker-skills --skill docker-production

Add your badge

Show developers this skill is listed on Skillselion. Paste this into your README.

Listed on Skillselion
Installs11
repo stars2
Last updatedJuly 29, 2026
Repositoryfull-statck-skills/docker-skills

What it does

Deploy Docker in production with Swarm or Kubernetes migration, resource limits, zero-downtime rolling updates, and Prometheus/Grafana monitoring.

Files

SKILL.mdMarkdownGitHub ↗

Docker Production — 生产环境部署

Guidance for deploying and managing Docker in production.

When to Use

ALWAYS use this skill when the user mentions:

  • "生产部署", "production Docker"
  • "docker swarm", "docker stack", "swarm cluster"
  • "Kubernetes migration", "kompose", "K8s"
  • "零停机部署", "rolling update"
  • "容器监控", "监控", "Prometheus"

Docker Swarm Quick Start

# Initialize cluster
docker swarm init --advertise-addr <MANAGER-IP>

# Join workers (run on worker nodes)
docker swarm join --token <TOKEN> <MANAGER-IP>:2377

# Deploy a stack
docker stack deploy -c docker-compose.yml myapp

# Manage services
docker service ls
docker service scale myapp_web=5
docker service update --image myapp:v2 myapp_web
docker service logs -f myapp_web

Swarm Compose Example

version: '3.8'
services:
  web:
    image: myapp:${TAG:-latest}
    deploy:
      replicas: 3
      update_config:
        parallelism: 1
        delay: 10s
        order: start-first
      rollback_config:
        parallelism: 1
        delay: 10s
      resources:
        limits:
          cpus: '0.5'
          memory: 512M
    ports:
      - "80:8080"

Zero-Downtime Deployment

Rolling Update Flow:

┌──────┐  ┌──────┐  ┌──────┐     Old replicas (v1)
│ v1  │  │ v1  │  │ v1  │
└──────┘  └──────┘  └──────┘

docker service update --image myapp:v2 web

Step 1: Start v2
┌──────┐  ┌──────┐  ┌──────┐  ┌──────┐
│ v1  │  │ v1  │  │ v1  │  │ v2  │    ← 1 new
└──────┘  └──────┘  └──────┘  └──────┘

Step 2: Replace one v1 with v2
┌──────┐  ┌──────┐  ┌──────┐  ┌──────┐
│ v1  │  │ v1  │  │ v2  │  │ v2  │    ← 2 new
└──────┘  └──────┘  └──────┘  └──────┘

... until all v2

Kubernetes Migration

# Convert compose to K8s
kompose convert -f docker-compose.yml

# Output:
# web-deployment.yaml
# web-service.yaml
# ...

# Apply
kubectl apply -f .
ComposeK8s
servicesDeployments + Services
networksNetwork Policies
volumesPersistentVolumeClaims
deploy.replicasDeployment.spec.replicas
secretsSecrets

Monitoring Stack

cAdvisor + Prometheus + Grafana

# docker-compose.monitoring.yml
services:
  cadvisor:
    image: gcr.io/cadvisor/cadvisor:latest
    ports: ["8080:8080"]
    volumes:
      - /:/rootfs:ro
      - /var/run/docker.sock:/var/run/docker.sock:ro
      - /sys:/sys:ro

  prometheus:
    image: prom/prometheus:latest
    ports: ["9090:9090"]
    volumes:
      - ./prometheus.yml:/etc/prometheus/prometheus.yml

  grafana:
    image: grafana/grafana:latest
    ports: ["3000:3000"]

Workflow — 推荐部署流程

Step 1: 单机部署: compose.yml + restart: unless-stopped + systemd 守护 Step 2: Swarm 集群: docker swarm initdocker stack deploy -c compose.yml myapp Step 3: 滚动更新: docker service update --image myapp:v2 + health check + rollback Step 4: 监控接入: Prometheus + cAdvisor + Grafana 绑定额仪表盘 Step 5: K8s 迁移: kompose convert → 手动添加资源限制+健康检查 → Helm Chart

Gotchas — Common Pitfalls

  • Single Swarm manager: If the only manager goes down, the cluster is unresponsive. → Recovery: Use 3 or 5 managers; docker node promote <worker> to add manager; back up /var/lib/docker/swarm/ regularly.
  • Rolling update health check: Without health checks, updates may deploy broken containers. → Recovery: Define HEALTHCHECK in Dockerfile + service health check; use --update-failure-action rollback.
  • Data without volumes: Production databases MUST use volumes. Container restart = new filesystem without volumes. → Recovery: docker service create --mount type=volume,src=db_data,target=/var/lib/mysql.
  • Direct K8s migration: kompose is a starting point, not production-ready K8s configs. → Recovery: After kompose convert, manually add resource limits, health checks, init containers, and ConfigMap/Secret references.

Boundary — 能力边界(适用与不适用场景)

分类场景说明
✅ 能做单机 Compose 生产部署compose.yml + systemd 守护
✅ 能做Swarm 集群管理init/join/stack deploy/rolling update
✅ 能做K8s 迁移方案kompose + 手动调整 + Helm Chart
✅ 能做生产监控搭建Prometheus + cAdvisor + Grafana + Loki
⚠️ 需条件多数据中心 Swarm需 overlay 网络 + 低延迟连接
⚠️ 需条件零停机迁移 K8s需蓝绿/金丝雀发布策略
❌ 超范围应用代码部署各语言 CI/CD 管道
❌ 超范围K8s 集群搭建使用 K8s 官方文档
❌ 超范围数据库高可用DBA 专业领域 + 数据库原生方案

When NOT to Use

❌ Skip✅ Use Instead
Development/debuggingdocker-run
Single-container appsdocker-run + systemd
K8s-native from startSkip Swarm, use K8s directly
Docker basicsdocker-basics

Security & Stability

  • Rotate Swarm join tokens regularly. Leaked worker tokens allow unauthorized node joining.
  • Use Docker Secrets for all sensitive configuration in production stacks.
  • Enable TLS for Docker daemon in production (tlsverify mode).
  • Implement resource limits on all production services to prevent noisy-neighbor issues.
  • Back up Swarm raft data regularly: /var/lib/docker/swarm/.
  • Monitor node health and set up alerts for node failures.

📚 官方文档参考

文档地址
Docker Swarmhttps://docs.docker.com/engine/swarm/
Docker Stackhttps://docs.docker.com/engine/swarm/stack-deploy/
管理指南https://docs.docker.com/admin/
生产环境 Composehttps://docs.docker.com/compose/production/
安全部署https://docs.docker.com/engine/security/
Docker 引擎https://docs.docker.com/engine/

🧭 Docker Skills Journey

📍 You are here: `docker-production` — 生产部署

← Previous: docker-cicd | → Next: docker-troubleshooting

FAQ

Q1: 如何快速上手此技能? A: 参考上方的快速开始章节,按步骤操作即可。

Q2: 遇到版本不兼容问题怎么办? A: 检查依赖版本,使用 lock 文件锁定,参考常见陷阱章节。

Q3: 如何在生产环境使用? A: 参考最佳实践章节,确保配置正确,做好监控和日志。

Q4: 性能如何优化? A: 参考性能优化相关文档,使用缓存、索引等手段。

Q5: 如何贡献或反馈问题? A: 在 GitHub 仓库提交 Issue 或 Pull Request。

Q6: 是否支持中文? A: 支持中文文档和中文注释,详见国内适配章节。

Related skills

DevOps & CI/CDdeployinfra

This week in AI coding

Five minutes, every Monday - the tools, releases and tactics for developers.

unsubscribe anytime.