Deploy | Swarm | Docker
- Deploy | Swarm | Docker
📦 Tabela explicativa — deploy (Docker Swarm)
🔧 Propriedades principais de deploy
| Propriedade | Tipo | Descrição | Exemplo |
|---|---|---|---|
mode | string | Define como o serviço será executado no cluster | replicated, global |
replicas | number | Quantidade de réplicas do serviço | replicas: 3 |
endpoint_mode | string | Forma como o serviço é exposto na rede | vip, dnsrr |
🔁 Escalonamento e execução
| Propriedade | Descrição | Detalhes |
|---|---|---|
mode: replicated | Executa N réplicas do serviço | Usa replicas |
mode: global | Uma instância por nó | Ignora replicas |
endpoint_mode: vip | Balanceamento via IP virtual | Padrão do Swarm |
endpoint_mode: dnsrr | DNS round-robin | Usado com proxies externos |
🧠 Posicionamento de serviços (placement)
| Propriedade | Descrição | Exemplo |
|---|---|---|
placement | Regras de onde o serviço pode rodar | — |
constraints | Restrições baseadas em labels do nó | node.role == manager |
preferences | Preferências de distribuição | spread: node.labels.zone |
🖥️ Recursos (resources)
| Propriedade | Descrição | Exemplo |
|---|---|---|
limits | Limite máximo de recursos | — |
limits.cpus | Máximo de CPU | "0.50" |
limits.memory | Máxima memória | 512M |
reservations | Recursos mínimos garantidos | — |
reservations.cpus | CPU reservada | "0.25" |
reservations.memory | Memória reservada | 256M |
🔄 Política de restart (restart_policy)
| Propriedade | Descrição | Exemplo |
|---|---|---|
condition | Quando reiniciar o container | none, on-failure, any |
delay | Tempo entre tentativas | 5s |
max_attempts | Número máximo de tentativas | 3 |
window | Janela para contagem de falhas | 120s |
🔃 Atualizações e rollback
update_config
| Propriedade | Descrição | Exemplo |
|---|---|---|
parallelism | Containers atualizados por vez | 1 |
delay | Intervalo entre atualizações | 10s |
order | Ordem da atualização | start-first, stop-first |
failure_action | Ação em falha | pause, rollback, continue |
monitor | Tempo para monitorar falhas | 30s |
rollback_config
| Propriedade | Descrição |
|---|---|
parallelism | Containers revertidos por vez |
delay | Intervalo do rollback |
order | Ordem da reversão |
monitor | Monitoramento de falhas |
🏷️ Labels (labels)
| Propriedade | Descrição | Uso comum |
|---|---|---|
labels | Metadados do serviço | Traefik, monitoramento, logs |
labels:
- "traefik.enable=true"
- "traefik.http.services.web.loadbalancer.server.port=80"
🧩 Exemplo completo de deploy
deploy:
mode: replicated
replicas: 3
endpoint_mode: vip
placement:
constraints:
- node.labels.env == prod
resources:
limits:
cpus: "0.5"
memory: 512M
reservations:
cpus: "0.25"
memory: 256M
restart_policy:
condition: on-failure
delay: 5s
max_attempts: 3
update_config:
parallelism: 1
delay: 10s
order: start-first
failure_action: rollback
Parâmetros de execução
docker stack deploy [OPÇÕES] -c docker-compose.yml STACK_NAME
| Parâmetro | Tipo | Padrão | Descrição |
|---|---|---|---|
-c, --compose-file | string | docker-compose.yml | Arquivo Compose a ser usado |
--detach | bool | true | Executa o deploy em background |
--with-registry-auth | bool | false | Envia credenciais do registry para os nós |
--prune | bool | false | Remove serviços que não estão mais no compose |
--resolve-image | string | always | Controla resolução da imagem |
--quiet | bool | false | Suprime a saída padrão |
--resolve-images
| Valor | Resolve imagem no registry | Atualiza se a tag for a mesma |
|---|---|---|
always | Sim | Sim |
changed | Só se a tag mudar (padrão) | Não |
never | Não | Não |