promovaweb-devops-docker

Installation
SKILL.md

Docker Environment Check

Executa uma auditoria completa do ambiente Docker em execução no servidor e reporta conformidade, problemas e sugestões.

Instruções de Execução

Quando esta skill for invocada, siga exatamente este roteiro:

Passo 1 — Coletar informações do ambiente

Execute os comandos abaixo usando a ferramenta Bash para coletar o estado atual do ambiente Docker. Execute todos em paralelo onde possível.

docker version
docker info
docker node ls
docker network ls
docker network inspect network_swarm_public
docker volume ls
docker service ls
docker stack ls

Passo 2 — Executar todos os checks abaixo

Execute cada bloco de verificação e registre os resultados (✅ OK / ⚠️ Atenção / ❌ Erro).

Passo 3 — Gravar o resultado

Grave o relatório completo em um arquivo chamado docker-setup.audit.md.


Checks de Verificação

1. Versão do Docker Engine

  • Verificar a versão do Docker Engine (docker version)
  • Deve estar em uma versão estável e recente (recomendado: 25.x ou superior)
  • Alertar se estiver em versão inferior a 24.x (funcionalidades do Swarm mais antigas)
  • Alertar se Client e Server tiverem versões diferentes
  • Verificar se o componente containerd está disponível
  • Verificar se o componente runc está disponível

2. Docker Swarm

Verifique o status do Swarm (docker info):

  • Swarm: active — o Swarm deve estar ativado
  • ❌ Erro se Swarm: inactive — todo o setup da Promovaweb requer Swarm
  • Is Manager: true — o nó atual deve ser manager para gerenciar os stacks
  • ⚠️ Atenção se Is Manager: false (nó worker — comandos de stack não funcionarão aqui)
  • Managers — deve ter ao menos 1 manager ativo
  • Nodes — verificar quantos nós estão no cluster

3. Nós do Cluster

Execute docker node ls e verifique:

  • Deve haver ao menos 1 nó com status Ready
  • ❌ Erro se algum nó estiver com status Down
  • ⚠️ Atenção se algum nó estiver com availability Pause ou Drain
  • Verificar se o nó local tem role Leader (manager principal)
  • Reportar a contagem de nós: managers e workers

4. Rede network_swarm_public

Execute docker network ls e docker network inspect network_swarm_public:

  • ❌ Erro crítico se a rede network_swarm_public não existir — todos os stacks da Promovaweb dependem dela
  • Deve ser do driver overlay
  • Deve ter scope: swarm
  • Deve ter attachable: true (para que serviços possam se conectar)
  • ⚠️ Atenção se o subnet/IPAM não estiver configurado
  • Verificar se a rede tem serviços conectados (indica que está em uso)

Como criar a rede (se não existir):

docker network create --driver=overlay --attachable network_swarm_public

5. Outras Redes Importantes

Verifique se as redes padrão do Docker estão presentes (docker network ls):

  • bridge — rede padrão para containers standalone
  • host — rede para containers com acesso direto ao host
  • ingress — rede de ingress do Swarm (criada automaticamente com o Swarm)
  • ⚠️ Atenção se a rede ingress não existir (indica problema no Swarm)

6. Volumes Externos

Execute docker volume ls e verifique os volumes utilizados pelos stacks da Promovaweb:

Volumes esperados (dependem dos stacks implantados):

Volume Stack
vol_certificates Traefik
portainer_data Portainer
vol_postgres PostgreSQL
vol_redis Redis
vol_mongodb MongoDB
vol_mysql MySQL
vol_n8n n8n
vol_evolution Evolution API
vol_mautic Mautic
vol_metabase Metabase
vol_chatwoot Chatwoot
vol_kestra Kestra
vol_uptime_kuma Uptime Kuma
  • ⚠️ Atenção para volumes listados que não correspondem a nenhum stack ativo (possível lixo)
  • ⚠️ Atenção para stacks ativos sem volume correspondente (dados podem estar sendo perdidos)

7. Stacks e Serviços Ativos

Execute docker stack ls e docker service ls:

  • Listar todos os stacks em execução
  • Para cada serviço verificar:
    • REPLICAS — deve mostrar X/X (ex: 1/1, 2/2); ❌ Erro se 0/X
    • ❌ Erro se qualquer serviço tiver 0/N réplicas (serviço inativo)
    • ⚠️ Atenção se algum serviço tiver menos réplicas do que o esperado
  • Verificar se o stack traefik está presente (pré-requisito para todos os outros)

8. Informações do Sistema (docker info)

Verifique os detalhes do sistema:

  • Operating System — deve ser Linux (Ubuntu, Debian, etc.)
  • Architecture — verificar se é x86_64 ou aarch64
  • CPUs — reportar quantidade de CPUs disponíveis
  • Total Memory — reportar memória total disponível
  • Storage Driver — deve ser overlay2 (driver recomendado)
  • ⚠️ Atenção se o Storage Driver não for overlay2
  • Logging Driver — verificar o driver de logs em uso (json-file é o padrão)
  • Docker Root Dir — deve ser /var/lib/docker
  • Registry — deve apontar para https://index.docker.io/v1/ (Docker Hub padrão)

9. Segurança e Boas Práticas

Com base nas informações coletadas, verificar:

  • Docker socket exposto na rede? (docker info | grep -i tcp) — ❌ Erro crítico de segurança
  • Experimental: false — modo experimental não deve estar ativo em produção
  • Live Restore Enabled: true — recomendado para manter containers rodando durante restart do daemon
  • ⚠️ Atenção se Live Restore Enabled: false (restart do Docker derruba todos os containers)
  • Verificar se há imagens sem tag (<none>) em excesso — sinal de limpeza necessária

10. Limpeza e Manutenção

Verificar itens que indicam necessidade de manutenção:

  • Execute docker system df para verificar uso de espaço em disco
  • ⚠️ Atenção se uso total > 80% do espaço disponível
  • Verificar se há volumes dangling (não utilizados por nenhum container)
  • Verificar se há imagens não utilizadas ocupando espaço

Comandos de limpeza (não executar automaticamente — apenas sugerir):

# Remover recursos não utilizados (imagens, containers, networks, build cache)
docker system prune -f

# Remover também volumes não utilizados (CUIDADO: irreversível)
docker system prune --volumes -f

Formato do Relatório de Saída

Ao final, produza um relatório estruturado:

# Relatório de Auditoria — Docker Environment
Data: <data atual>
Servidor: <hostname obtido via docker info>

## Resumo
- Total de checks: X
- ✅ OK: X
- ⚠️ Atenções: X
- ❌ Erros: X

## Ambiente
- Docker Engine: vX.X.X
- Sistema Operacional: <OS>
- Arquitetura: <arch>
- CPUs: X | Memória: X GB
- Storage Driver: overlay2

## Resultados por Categoria

### 1. Versão do Docker
✅ Docker Engine vXX.X.X: versão estável
✅ Client e Server: mesma versão
...

### 2. Docker Swarm
✅ Swarm: active
✅ Is Manager: true
✅ Managers: 1 | Nodes: X
...

### 3. Nós do Cluster
✅ node1: Ready / Leader
✅ node2: Ready / Worker
❌ node3: Down — investigar conectividade
...

### 4. Rede network_swarm_public
✅ network_swarm_public: existe
✅ Driver: overlay | Scope: swarm
✅ attachable: true
✅ Serviços conectados: X
...

### 5. Redes Docker
✅ bridge: presente
✅ ingress: presente (Swarm ok)
...

### 6. Volumes Externos
✅ vol_certificates: presente (Traefik)
✅ portainer_data: presente (Portainer)
⚠️ vol_orphan_xyz: volume sem stack correspondente — considere remover
...

### 7. Stacks e Serviços
✅ traefik: 1/1 réplicas
✅ portainer_agent: 2/2 réplicas (global)
❌ n8n_main: 0/1 réplicas — serviço inativo!
...

### 8. Sistema
✅ Storage Driver: overlay2
⚠️ Live Restore: false — considere habilitar
...

### 9. Segurança
✅ Docker socket: não exposto na rede
⚠️ Live Restore desabilitado: restart do Docker derruba serviços
...

### 10. Manutenção
✅ Uso de disco: 45% (saudável)
⚠️ 3 volumes dangling encontrados — execute docker volume prune
...

## Ações Recomendadas (por prioridade)

### Crítico (resolver imediatamente)
1. ...

### Recomendado
1. ...

### Opcional / Manutenção
1. ...
Related skills
Installs
10
GitHub Stars
4
First Seen
Mar 28, 2026