Tool.Yun
Uirlisí úsáideacha do fhorbróirí
Áireamhán Amúchta
Bileog Cheat Bash
Bileog Cheat Comhréire JSONPath
Bileog Cheat Comhréire XPath
Bileog Cheat Docker
Bileog Cheat Jq
Bileog Cheat K8s
Bileog Cheat Markdown
Bileog Cheat Nano
Bileog Cheat Ordú Scáileáin
Bileog Cheat Ordú Tmux
Bileog Cheat Ordú Zellij
Bileog Cheat Ordú chmod
Bileog Cheat Powershell
Bileog Cheat Regex Choitianta
Bileog Cheat Roghnóirí CSS
Bileog Cheat Tiomnais Seimeantach Git
Bileog Cheat VIM
Bileog caimiléir Git
Bileog cheat Docker Compose
Bileog cheat Docker SWARM
Bileog cheat Dockerfile
Bileog cheat Regex
Bileog cheat Sed
NBileog Cheat ginx
Flipper Bonn
Roghnóir Cártaí
Rollóir Dísle
Roth an fhortún
Argon2 Hasher
Bcrypt
Beart Niceware go Frása Pasfhocail
Cripteagrafaíocht AOIS
Criptigh / díchriptiú téacs
Criptithe cruinneachán Ansible a dhíchriptiú
Criptiú Comhaid PGP
Criptiú PGP
Criptiú RSA
Criptiú Teaghrán Jasypt
Eochairghiniúint PGP
Gineadóir CSR
Gineadóir JWT
Gineadóir péire eochracha Ed25519
Gineadóir péirí eochracha ECDSA
Gineadóir teastais X509
Hais Comhaid
Hais téacs
Hmac gineadóir
Ionchódóir/Díchódóir Bech32
Parsálaí JWT
Parsálaí SAML
Parsálaí Teastais/Eochrach
Paseto/PASERK Poiblí/Príobháideach
Paseto/PASERK Áitiúil
RSA gineadóir eochair péire
Roinnt Rúnda Shamirs
Sínitheoir agus Fíoraitheoir RSA/DSA/ECDSA
Tiontaire Teastais SSL
Áireamhán CRC
Bailíochtóir GTIN
Díchódóir Cód QR
Gineadóir Faisnéise Teagmhála QR
Gineadóir barrachóid
Gineadóir cóid QR
Gineadóir cóid QR WiFi
Léitheoir Barrachóid
tools.epc-qrcode-generator.name
Bailíochtóir Cumadóireachta Docker
Docker Compose chuig comhad .env
Docker Compose go Quadlets
Docker compose go kubernetes
Docker iniúchta le haghaidh rith Docker
Déantóir Cumadóireachta Docker Traefik
Gineadóir Lipéad Dockerfile
Gineadóir RBAC Kubernetes
Lipéid Docker Pangolin
Rith Docker go Kubernetes
Rith Docker go Quadlets
Rith docker chuig tiontaire cumadóireachta Docker
Tiontaire Formáide Docker Compose
Tiontaire rith Docker Compose go Docker
Íoslódálaí Íomhánna Docker
Aláram Ama
Aláram Cron/Laethanta na Seachtaine
Comhaireamh síos
Cróniméadar
Cumaisc iCal
Cén Lá?
Gineadóir ICAL
Parsálaí Comhad ICAL
Tiontaire Crios Ama
Tiontaire Uimhreacha Seachtaine
Tiontaire dáta-am
Áireamhán Dáta+Fad
Áireamhán ETA
Áireamhán Fad
Áireamhán Laethanta
Áireamhán TTL
Ríomhaire Aclaíochta
Tiontaire Aonaid Achar
Tiontaire Aonaid Brú
Tiontaire Aonaid Fad
Tiontaire Aonaid Fuinnimh
Tiontaire Aonaid Fórsa
Tiontaire Aonaid Mais
Tiontaire Aonaid Toirte
Tiontaire Aonaid Uillinne
Tiontaire Cumhachta
Tiontaire Fuinnimh Bia
Tiontaire Luas
Tiontaire Luasghéaraithe
Tiontaire Minicíochta
Tiontaire Ráta Sreafa Toirte
Tiontaire Réimíreanna SI
Tiontaire Soilsiúcháin
Tiontaire teochta
Aibhsitheoir Cód/Scripteanna
Amaire Pomodoro
Bréigeoir Sonraí
CSS/JS Áilleachtú & Laghdaigh
Ceo Javascript
Dí-chomhbhrúiteoir/Díphacáileoir Javascript
Eagarthóir orduithe Cli
Gineadóir Favicon
Gineadóir GitIgnore
Gineadóir Mailto
Gineadóir Paraiméadair SQL
Gineadóir Rúnda Django
Gineadóir Scripteanna Tástála Ualaigh K6
Gineadóir Tréithe Git
Gineadóir Tábla Bunachar Sonraí
Json go Protobuf
Json go SQL INSERT
Json go Typescript
Miniféir SQL
Oscail gineadóir meta graf
SQL prettify agus formáid
Scoilteoir Comhad
Stacktrace níos deise
Tiontaire Comhad HEX
Tiontaire Lua
Tiontaire Lúb
Tástálaí API
Tástálaí Chomhéadain Swagger
Tástálaí Picomatch
Tástálaí Éalaithe ANSI
Tógálaí Cruthaithe Bunachar Sonraí
Tógálaí Teaghrán Ceangail Bunachar Sonraí
Áillitheoir Javascript
Éalaitheoir Teaghrán
Anailíseoir Tuairiscí DMARC
Bileog Cheat Sreangaithe RJ45 Cat6
Brathadóir Cineál Comhaid
Brathadóir/Díchódóir Tacair Charachtair Téacs
Consól Port Sraitheach
Cuardaitheoir airíonna LDAP ActiveDirectory
Díchódóir EMV TLV
Díchódóir Idirbhirt ETH
Díchódóir Safelink Outlook
Díchódóir Url Comhroinnte SharePoint
Eastóscóir aitheantais calóga sneachta
Faisnéis eochairchóid
Gineadóir TCPDump
Ionchódóir/Díchódóir Heicsidheachúlach
Leathnaitheoir URLanna Gearra
Léitheoir comhaid Parquet
Mascóir sonraí íogaire
Parsálaí Fianán
Parsálaí MSG Outlook
Parsálaí Ríomhphoist
Parsálaí Ríomhphoist Preabtha
Parsálaí URL
Tiontaire GZip/Díbhoilscithe
Tiontaire IdRéadaí MongoDB
Tiontaire Ionchódaithe MIME
Tiontaire Meán-Endian
Tiontaire SMART Raw
Tiontaire uimhir snámhphointe
Tástálaí DNS
Tástálaí HTTPS
Tástálaí Ilphlandúcháin DNS
Tástálaí Picteil Marbh
Tógálaí Ordú Nmap
Tógálaí URL
Áireamhán Friotóra
键盘测试器
Gineadóir Cód PIN
Gineadóir Frása Pas
Gineadóir NanoIDanna
Gineadóir Pasfhocal Diceware
Gineadóir UUIDs
Gineadóir comhartha
Gineadóir cóid OTP saor in aisce,
Gineadóir pasfhrása BIP39
Gineadóir uimhreacha
Gineadóir uimhreacha randamacha
Tiontaire UUID
Cineálacha MIME
Cóid stádais HTTP
Déantóir Blúirí Cuardaigh Téacs Url
Eagarthóir HTML WYSIWYG
Eolas gléas
Gabhálaí Url
Gineadóir Grádáin CSS
Gineadóir URL UTM
Gineadóir áitsealbhóirí SVG
Glantóir Html
Glantóir URL
HTML go XHTML
HTML go sonraí
Ionchódaigh/díchódaigh teaghráin formáidithe URL
Laghdaitheoir HTML
Parsálaí úsáideora-ghníomhaire
Roth Dathanna
Seiceálaí Codarsnachta Datha
Slabhra sluga a chruthú
Tiontaire Aonad CSS
Tiontaire CSS XPath
Tiontaire datha
Tiontaire picteilín REM
Áillitheoir CSS
Áillitheoir Html
Éalú aonáin HTML
Íomhá go CSS
Anailíseoir Méid Json
CSV go JSON
Cumaisc JSON
Cód Json go PHP
Difríocht JSON
Eagarthóir JSON
Iarratas Json
JSON Leacaitheoir/Díleacaitheoir
JSON Linter
JSON ceartaigh agus formáid
JSON chuig an Eintiteas Java
JSON go .env
JSON go C#
JSON go CSV
JSON go Go
JSON go MessagePack
JSON go Sonraí
JSON go TOML
JSON go TS
JSON go XML
JSON go réad
Json go PHP-Array
Json go Python
Json go SQL DDL
Json go Scéim
Laghdaigh JSON
Máistir sórtála JSON
ObjGen go JSON
PHP-Eagar go JSON
Pacáiste Teachtaireachta chuig JSON
Tiontaire JS go JSON
Tiontaire JSON go JS
Tiontaire JSON go YAML
Tiontaire teaghrán Json
Tástálaí Jq/JSONPath
tools.json-patch.name
Éalú Json/Unescape
Anailíseoir neart pasfhocal
Bileog Cheat ZPool
Cuardach seoladh MAC
Díchódóir ARPA
Díchódóir X-VR-SpamCause
Fiosrúcháin DNS
Forbróir raon IPv4
Formáideoir Nginx
Formáideoir Orduithe Shell
Geoshuíomh IP
Gineadóir Crontab
Gineadóir Cumraíochta Wireguard
Gineadóir DMARC DNS
Gineadóir DNS BIMI
Gineadóir DNS DKIM
Gineadóir DNS PTR
Gineadóir DNS SPF
Gineadóir FStab
Gineadóir HTAccess
Gineadóir Htpasswd/htaccess
Gineadóir Iptables
Gineadóir LogRotate Apache
Gineadóir Option43
Gineadóir Orduithe Múchta
Gineadóir Ordú Curl
Gineadóir Ordú UFW
Gineadóir Rsync
Gineadóir WPA PSK
Gineadóir port randamach
Gineadóir seoladh MAC
Gineadóir údaraithe bunúsach
IPv4-6/IPRange/CIDR in IPRange/CIDR/IPMask
IPv6 gineadóir ULA
Iarratais DNS/RDAP Cloudflare
Liosta Fo-líonra IPv4
Línearaitheoir Orduithe Shell
Mo Sheoladh IP
Neart Pasfhocal Zxcvbn
Ping
Seiceálaí DNSBL
Seiceálaí Whois
Sláintitheoir HAR
Slánuimhreacha chuig IPv4/IPv6
Tiontaire Punycode
Tiontaire Seoladh MAC
Tiontaire seoladh IPv4
Tiontaire seoladh Ipv6
Tástálaí Calafoirt TCP/UDP
Tástálaí Micreafóin
Tástálaí soicéad gréasáin
Uimhreacha Poirt
gineadóir líne ordaithe firewalld
tools.restic-command-generator.name
tools.url-redirection-checker.name
Áireamhán Chmod
Áireamhán Eisiaimh Fo-líonraí IP
Áireamhán Fo-líonra Amhairc
Áireamhán HDD
Áireamhán Iontaofachta RAID
Áireamhán RAID
Áireamhán RAID ZPOOL
Áireamhán Raoin IP ó CIDR Ipv4/6
Áireamhán Raon IPv4/6 go CIDR(anna)
Áireamhán Ráta Aistrithe Sonraí
Áireamhán fo-líonra Ipv6
Áireamhán subnet IPv4
Íoslódálaí il-naisc
Údarú SIP
Difríocht Marcáil anuas
Eagarthóir Markdown
Epub go Markdown
Gineadóir Tábla Marcála
Gineadóir toc Markdown
Greamaigh mar Markdown
HTML le marcáil síos
Lorem Ipsum Markdown
Marcáil síos ar shonraí
Marcáil síos go DOCX
Marcáil síos go HTML
Marcáil síos go Téacs
Réamhamharc marcála síos
tools.markdown-format-converter.name
Áilleoir Tábla Marcála
Amharcléiritheoir Cuar Triantánach/Cothromóideach
Measúnaí mata
OCR Matamaitice
Tiontaire Formáidí Matamaitice
Áireamhán Dénártha
Áireamhán leideanna
Comhbhrúiteoir PDF
Comhcheanglóir Pdf
Eastóscóir Téacs PDF
HTML go PDF
Pdf Criptithe
Pdf Eastóscóir Leathanach
Pdf Línearú/FastWeb
Pdf a dhíchriptiú agus a dhíghlasáil
Seiceáil sínithe PDF
Tógálaí Léirithe Cron
Bailíochtóir Luhn
Bailíochtóir agus Parsálaí ISBN
Bailíochtóir agus parsálaí IBAN
Bailíochtú Uimhreacha CBL
Comhoiriúnacht ceadúnas bogearraí
Cuardach Unicode
Cuardaitheoir Cód Tíre ISO 3166
Cuardaitheoir ISO 639
Foclóir Ar Líne
Mínigh an tOrdú Shell
Parsálaí agus formáidí fón
Seiceálaí Cárta Creidmheasa
Tiontaire Airgeadra
Tiontaire Cás Uachtarach RMB
Tiontaire Féilire
Treoirlínte Soilsithe IES
Áireamhán BMI
Áireamhán Luas Rith
Áireamhán SLA
TOML Linter
TOML go JSON
TOML go YAML
Csv go Sonraí
Excel go sonraí
Gineadóir ULID
Ionchódóir/díchódóir eagar heicsidheachúlach Base64
Ionchódóir/díchódóir teaghrán Base64
Normalaitheoir ríomhphoist
Ríomhaire Ídiú Fuinnimh agus Costais
Tiontaire Aonad Go Leor
Tiontaire Aonaid Stórála Sonraí
Tiontaire Carachtair Unicode go Eintitis Java
Tiontaire Comhordanáidí Geografacha
Tiontaire Formáid Athróg Comhdhlútha
Tiontaire airíonna
Tiontaire bonn slánuimhir
Tiontaire comhad base64 íoslódáil
Tiontaire dBm mW
Tiontaire uimhreacha Rómhánacha
Torrent go Maighnéad
Téacs go Unicode
Téacs go dénártha UTF-8
Tógálaí tagarmhairc
Áireamhán Cóimheas Gnéithe
Áireamhán achair gheografaigh
Áireamhán céatadánach
Aimsitheoir Línte Dúblacha
Aistritheoir Téacs
Athsholáthar Téacs Cliste agus Briseadh Líne
Bain téacs as HTML
Comhroinnteoir Nasc Sóisialta
Comparadóir Liostaí
Difríocht téacs
Déan Comparáid Clónna
Focail Ar Leith
Formáideoir Unicode
Gineadóir Ordú Sed
Gineadóir Sleachta
Gineadóir Téacs Ealaíne ASCII
Gineadóir an-mhaith
Gineadóir/Meirge Zalgo
Ionchódóir/Díchódóir Comhartha GPT
JSON go TOON
Liosta tiontaire
Léaráid Struchtúr Fillteán
Léitheoir RSVP
Meastóir Comharthaí GPT
Onnmhaireoir maighdeana mara
Pacáil comhaid le haghaidh AI
Roghnóir Emoji
Roghnóir Líní Rándamach
Scoilteoir Pras AI
Scrambalóir slabhra
Seiceálaí I agus L
Staitisticí téacs
TOON go JSON
Tabáil go Spásanna
Tiontaire Cód Morse
Tiontaire Leagan Amach Méarchláir
Tiontaire Rún
Tiontaire cás
Tástálaí Regex
Téacs chuig Ainmneacha Unicode
Téacs go aibítir NATO
Unicode go GSM-7
Áireamhán Levenshtein
Íomhá go hEalaín ASCII
Formáidiú XML
Linter XML
ObjGen go HTML
Tástálaí XPath
Tástálaí XSLT
XML go JSON
Cumasc YAML
Tiontaire YAML go JSON
YAML Leacaitheoir/Díleacaitheoir
YAML go TOML
YAML prettify agus formáid
Athraitheoir íomhá
Bain Cúlra na hÍomhá
Bain EXIF
Comparáid Íomhá
GIF go MP4
Inbhéartóir Dath Íomhá
Léitheoir cáilíochta EXIF/Meiteashonraí/GPS/JPEG íomhá
OCRúigh íomhá agus PDF
Réamhamharcóir SVG
Ríomhairigh íomhá
Taifeadta ceamara
Tiontaire Formáidí Íomhá
Tiontaire HEIC
Tiontaire ICO/PNG
Uiscemharc
Íomhá go SVG (potrace)

Bileog cheat Docker SWARM

Bileog cheat mód Docker Swarm

Docker Swarm mode is Docker’s native clustering and orchestration solution. It turns a group of Docker hosts into a single virtual system with high availability, load balancing and a declarative deployment model — using the CLI you already know.

  • Built-in orchestration with a declarative service model
  • Rolling updates and one-command rollback
  • Self-healing: failed replicas are rescheduled automatically
  • Secure node-to-node communication over mutual TLS, rotated automatically
  • Secrets and configs distributed straight from the cluster store

ℹ️ Swarm does not auto-scale on load. Replica counts are set manually with --replicas or docker service scale.

🧱 Concepts

TermWhat it is
NodeA Docker engine that joined the swarm — a manager or a worker
ManagerKeeps cluster state via Raft, schedules tasks, serves the API
WorkerRuns tasks only; has no view of the cluster state
ServiceThe declaration of what should run (image, replicas, ports, …)
TaskOne container slot of a service, scheduled onto a node
StackA group of services deployed together from a Compose file

📌 Swarm Initialization

# initialize a swarm; this node becomes the first manager
docker swarm init

# pick the interface to advertise on multi-homed hosts
docker swarm init --advertise-addr <manager-ip>

# address pool for the overlay networks
docker swarm init --default-addr-pool 10.20.0.0/16

# print the command a worker needs to join
docker swarm join-token worker

# print the command a manager needs to join
docker swarm join-token manager

# run on the joining node
docker swarm join --token <token> <manager-ip>:2377

# rotate a token, invalidating the old one
docker swarm join-token --rotate worker

# leave the swarm (on a worker)
docker swarm leave

# leave on a manager, or on the last node
docker swarm leave --force

# keep fewer terminated tasks per service
docker swarm update --task-history-limit 5

# lifetime of the node certificates
docker swarm update --cert-expiry 720h

# rotate the swarm certificate authority
docker swarm ca --rotate

🔌 Ports that must be open between nodes

PortProtocolUsed for
2377TCPCluster management (managers only)
7946TCP + UDPNode discovery and gossip
4789UDPOverlay network data plane (VXLAN)
IP protocol 50 (ESP)—Only with encrypted overlay networks

👥 Node Management

# list the nodes of the swarm
docker node ls

# filter by role, id, name, label, membership
docker node ls --filter role=manager

# readable summary of one node
docker node inspect <node> --pretty

# a single field via a Go template
docker node inspect -f '{{.Status.State}}' <node>

# worker  → manager
docker node promote <node>

# manager → worker
docker node demote <node>

# move tasks off and stop scheduling new ones
docker node update --availability drain <node>

# keep running tasks, schedule nothing new
docker node update --availability pause <node>

# bring a drained or paused node back
docker node update --availability active <node>

# label a node for placement constraints
docker node update --label-add env=production <node>

# remove a label again
docker node update --label-rm env <node>

# tasks running on a node
docker node ps <node>

# remove a node that already left
docker node rm <node>

# remove an unreachable node
docker node rm --force <node>

💡 Drain a node before maintenance (--availability drain), then set it back to active. Swarm reschedules the tasks for you.

🧠 Manager Nodes & Raft

Managers orchestrate tasks, maintain the cluster state through Raft consensus and serve the API. Several managers give you high availability, but only one is the leader at a time.

⚠️ Use an odd number of managers (3, 5 or 7). Raft tolerates (N-1)/2 failures — 3 managers survive 1 loss, 5 survive 2. Beyond 7 the consensus overhead outweighs the benefit.

# swarm and Raft state of the local node
docker info

# details of the current node, manager status included
docker node inspect self --pretty

# encrypt the Raft logs at rest
docker swarm update --autolock=true

# unlock a manager after a restart
docker swarm unlock

# show the current unlock key
docker swarm unlock-key

# rotate it
docker swarm unlock-key --rotate

📦 Service Management

# create a service
docker service create --name <service> <image>

# create a service with a fixed replica count
docker service create --name <service> --replicas <n> <image>

# create a global service: one task on every node
docker service create --name <service> --mode global <image>

# list services
docker service ls

# filter the list
docker service ls --filter name=<service>

# readable service definition
docker service inspect <service> --pretty

# tasks and the nodes they run on
docker service ps <service>

# change the replica count
docker service scale <service>=<n>

# scale several services at once
docker service scale <svc-a>=3 <svc-b>=5

# roll out a new image
docker service update --image <new-image> <service>

# redistribute tasks without changing anything
docker service update --force <service>

# go back to the previous definition
docker service rollback <service>

# follow the logs of every task
docker service logs -f <service>

# recent output only
docker service logs --tail 100 --since 10m <service>

# remove a service
docker service rm <service>

Changing a running service

# add or replace an environment variable
docker service update --env-add KEY=value <service>

# remove one
docker service update --env-rm KEY <service>

# publish another port
docker service update --publish-add 8080:80 <service>

# stop publishing it
docker service update --publish-rm 8080 <service>

# attach a volume
docker service update --mount-add type=volume,src=data,dst=/data <service>

# detach it again, by target path
docker service update --mount-rm /data <service>

# add a placement constraint
docker service update --constraint-add 'node.labels.env==prod' <service>

# at most one task per node
docker service update --replicas-max-per-node 1 <service>

# change the resource limits
docker service update --limit-memory 512m --reserve-memory 256m <service>

🔁 Replicas & Modes

Replicas define how many instances of a service run across the swarm. Swarm spreads them over the available nodes and reschedules them when a task or a node fails.

ModeFlagBehaviour
Replicated--mode replicated (default)Run exactly --replicas tasks, anywhere they fit
Global--mode globalExactly one task per eligible node
Replicated job--mode replicated-jobRun --replicas tasks to completion
Global job--mode global-jobRun one task to completion on every node
# five tasks
docker service create --replicas 5 --name myapp myimage

# scale the same service up to ten
docker service scale myapp=10

# one per node
docker service create --mode global --name agent myimage

# batch job: 20 tasks in total, 4 running at a time
docker service create --mode replicated-job --replicas 20 \
  --max-concurrent 4 --name migrate myimage

🐝 Tasks & Containers

A task is a single container slot managed by Swarm; it maps to one container on one node and is never moved — a failed task is replaced by a new one.

# tasks of a service, with their node
docker service ps <service>

# full error messages — start debugging here
docker service ps --no-trunc <service>

# hide the terminated tasks
docker service ps -f "desired-state=running" <service>

# tasks on one node
docker node ps <node>

# containers on the current node
docker container ls

# low-level details of one container
docker container inspect <container-id>
Task stateMeaning
NEW / PENDINGAccepted, waiting for a node that satisfies the constraints
ASSIGNED / PREPARINGSent to a node, image being pulled
STARTING / RUNNINGThe container is starting or up
COMPLETEA job task finished successfully
FAILEDThe container exited with an error
SHUTDOWNStopped on purpose (update, drain, scale down)
REJECTEDThe node refused the task (missing image, bad mount)
ORPHANEDThe node has been unreachable too long

🎯 Placement

docker service create --constraint 'node.role==worker' --name web nginx

docker service create --constraint 'node.labels.env==production' --name api myimage

docker service create --placement-pref 'spread=node.labels.zone' --name web nginx

docker service create --replicas-max-per-node 1 --name web nginx
ExpressionMatches
node.rolemanager or worker
node.hostnameThe node’s hostname
node.idThe node’s ID
node.labels.<key>A label set with docker node update --label-add
engine.labels.<key>A label set in the engine’s daemon.json
node.platform.os / node.platform.archlinux, windows / amd64, arm64

🌐 Networking

An overlay network is a virtual network spanning multiple Docker hosts. Containers on different nodes talk as if they were on the same L2 segment, with DNS-based service discovery built in.

# create an overlay network
docker network create --driver overlay <network>

# encrypt the data plane too
docker network create --driver overlay --opt encrypted <network>

# let standalone containers join
docker network create --driver overlay --attachable <network>

# list networks
docker network ls

# attached services and containers
docker network inspect <network>

# attach at creation time
docker service create --name <service> --network <network> <image>

# attach an existing service
docker service update --network-add <network> <service>

# detach it again
docker service update --network-rm <network> <service>

Publishing ports

# routing mesh (ingress)
docker service create --publish 8080:80 --name web nginx

# host port, no mesh
docker service create --publish mode=host,target=80,published=8080 --name web nginx
ModeBehaviour
ingress (default)Every node accepts the port and load-balances to the tasks
hostThe port is published only on nodes running a task — no mesh, no extra hop

🔄 Rolling Updates & Rollback

docker service create \
  --name web \
  --replicas 5 \
  --update-parallelism 2 \
  --update-delay 10s \
  --update-failure-action rollback \
  --update-monitor 30s \
  nginx:1.25

# trigger the rolling update
docker service update --image nginx:1.26 web

# return to the previous definition
docker service rollback web
FlagDescription
--update-parallelismHow many tasks are updated at once (0 = all)
--update-delayPause between batches
--update-failure-actionpause (default), continue or rollback
--update-monitorHow long a task is watched before it counts as healthy
--update-orderstop-first (default) or start-first
--rollback-parallelismSame knobs for the rollback path (--rollback-delay, --rollback-monitor, --rollback-failure-action, --rollback-order)

🩺 Health Checks

Swarm reschedules a task as soon as its health check fails, so an update never marks a broken image as healthy.

docker service create \
  --name api \
  --health-cmd 'curl -f http://localhost:8080/health || exit 1' \
  --health-interval 10s \
  --health-timeout 3s \
  --health-retries 3 \
  --health-start-period 30s \
  myimage

🔐 Secrets

Secrets are encrypted in the Raft log and mounted into the container as in-memory files under /run/secrets/.

# create from a file
docker secret create db_password ./db_password.txt

# create from stdin
echo "s3cr3t" | docker secret create db_password -

# list secrets
docker secret ls

# metadata only — never the value
docker secret inspect db_password

# attach a secret; it appears at /run/secrets/db_password
docker service create --name db --secret db_password postgres:16

# ...or mount it at a custom path with a fixed mode
docker service create --name db \
  --secret source=db_password,target=/run/secrets/pg_pw,mode=0400 postgres:16

# only possible when no service uses it
docker secret rm db_password

Rotating a secret — create the new one, swap it, then drop the old one:

echo "n3w-s3cr3t" | docker secret create db_password_v2 -

docker service update \
  --secret-rm db_password \
  --secret-add source=db_password_v2,target=db_password \
  db

docker secret rm db_password

🔑 Configs

Configs work like secrets but are not encrypted at rest — use them for non-sensitive files such as nginx.conf.

# create a config
docker config create my_nginx_conf ./nginx.conf

# list configs
docker config ls

# metadata and the stored content
docker config inspect my_nginx_conf

# mount a config at a specific path
docker service create \
  --name web \
  --config source=my_nginx_conf,target=/etc/nginx/nginx.conf \
  nginx

# swap in a new version of the config
docker service update \
  --config-rm my_nginx_conf \
  --config-add source=my_nginx_conf_v2,target=/etc/nginx/nginx.conf \
  web

# only when no service uses it
docker config rm my_nginx_conf

📚 Stacks

A stack is a group of related services deployed together from a Compose file — the standard production workflow for Swarm.

# deploy or update a stack
docker stack deploy -c stack.yaml mystack

# pass your registry credentials along
docker stack deploy -c stack.yaml --with-registry-auth mystack

# remove services no longer in the file
docker stack deploy -c stack.yaml --prune mystack

# list stacks
docker stack ls

# services of a stack
docker stack services mystack

# tasks of a stack
docker stack ps mystack

# tasks of a stack, with full error messages
docker stack ps --no-trunc mystack

# print the merged, resolved file
docker stack config -c stack.yaml

# remove the whole stack
docker stack rm mystack

Stacks honour the deploy: block of the Compose file (replicas, placement, resources, restart policy, update config). build:, top-level restart: and depends_on: are ignored.

🧯 Troubleshooting

# the error column tells you why a task died
docker service ps --no-trunc <service>

# application output of every task
docker service logs --tail 200 <service>

# is a node Down or Unreachable?
docker node ls

# what was actually deployed
docker service inspect --pretty <service>

# live stream of orchestration events
docker events --filter type=service
SymptomUsual cause
Task stuck in PENDINGNo node satisfies the constraints, ports, or resource reservations
no suitable nodePlacement constraint or --replicas-max-per-node cannot be met
Task loops FAILED → STARTINGThe container exits immediately — read docker service logs
REJECTED with an image errorThe image is missing on that node; use --with-registry-auth for private registries
Service unreachable from other nodesPorts 7946/4789 blocked, or the services are not on the same overlay network

🛠 Common Flags Reference

docker service create / docker service update

FlagDescription
--replicasNumber of tasks for a replicated service
--modereplicated (default), global, replicated-job, global-job
--publishPort mapping (<published>:<target>, or mode=host,...)
--mountAttach a volume or bind mount
--networkAttach to an overlay network
--constraintPlacement rule, e.g. node.role==worker
--placement-prefSpread tasks, e.g. spread=node.labels.zone
--replicas-max-per-nodeCap the tasks of this service per node
--limit-cpu / --limit-memoryHard resource limits
--reserve-cpu / --reserve-memoryResources reserved for scheduling
--secret / --configAttach a secret or a config
--env / --env-fileEnvironment variables
--restart-conditionnone, on-failure or any (default)
--health-cmd and friendsOverride the image health check
--with-registry-authForward registry credentials to the nodes

📄 Example: Production-style Web Service

docker service create \
  --name web \
  --replicas 3 \
  --publish 80:80 \
  --network webnet \
  --constraint 'node.role==worker' \
  --constraint 'node.labels.env==production' \
  --placement-pref 'spread=node.labels.zone' \
  --update-parallelism 1 \
  --update-delay 10s \
  --update-failure-action rollback \
  --update-order start-first \
  --limit-memory 512m \
  --reserve-memory 256m \
  --restart-condition any \
  nginx:1.25

📚 Resources

  • Swarm mode overview
  • Swarm services
  • Manage secrets
  • Manage configs
  • Stack file reference (Compose Spec deploy:)
  • docker service create CLI reference