Skip to main content

Deploy | Swarm | Docker

  • Deploy | Swarm | Docker

📦 Tabela explicativa — deploy (Docker Swarm)


🔧 Propriedades principais de deploy

PropriedadeTipoDescriçãoExemplo
modestringDefine como o serviço será executado no clusterreplicated, global
replicasnumberQuantidade de réplicas do serviçoreplicas: 3
endpoint_modestringForma como o serviço é exposto na redevip, dnsrr

🔁 Escalonamento e execução

PropriedadeDescriçãoDetalhes
mode: replicatedExecuta N réplicas do serviçoUsa replicas
mode: globalUma instância por nóIgnora replicas
endpoint_mode: vipBalanceamento via IP virtualPadrão do Swarm
endpoint_mode: dnsrrDNS round-robinUsado com proxies externos

🧠 Posicionamento de serviços (placement)

PropriedadeDescriçãoExemplo
placementRegras de onde o serviço pode rodar
constraintsRestrições baseadas em labels do nónode.role == manager
preferencesPreferências de distribuiçãospread: node.labels.zone

🖥️ Recursos (resources)

PropriedadeDescriçãoExemplo
limitsLimite máximo de recursos
limits.cpusMáximo de CPU"0.50"
limits.memoryMáxima memória512M
reservationsRecursos mínimos garantidos
reservations.cpusCPU reservada"0.25"
reservations.memoryMemória reservada256M

🔄 Política de restart (restart_policy)

PropriedadeDescriçãoExemplo
conditionQuando reiniciar o containernone, on-failure, any
delayTempo entre tentativas5s
max_attemptsNúmero máximo de tentativas3
windowJanela para contagem de falhas120s

🔃 Atualizações e rollback

update_config

PropriedadeDescriçãoExemplo
parallelismContainers atualizados por vez1
delayIntervalo entre atualizações10s
orderOrdem da atualizaçãostart-first, stop-first
failure_actionAção em falhapause, rollback, continue
monitorTempo para monitorar falhas30s

rollback_config

PropriedadeDescrição
parallelismContainers revertidos por vez
delayIntervalo do rollback
orderOrdem da reversão
monitorMonitoramento de falhas

🏷️ Labels (labels)

PropriedadeDescriçãoUso comum
labelsMetadados do serviçoTraefik, 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âmetroTipoPadrãoDescrição
-c, --compose-filestringdocker-compose.ymlArquivo Compose a ser usado
--detachbooltrueExecuta o deploy em background
--with-registry-authboolfalseEnvia credenciais do registry para os nós
--pruneboolfalseRemove serviços que não estão mais no compose
--resolve-imagestringalwaysControla resolução da imagem
--quietboolfalseSuprime a saída padrão

--resolve-images

ValorResolve imagem no registryAtualiza se a tag for a mesma
alwaysSimSim
changedSó se a tag mudar (padrão)Não
neverNãoNão