Service Modes

  • Notice it in docker service ls

  • Defaults to replicated, but global is an option

  • Global = one task per node

  • Set on service create only, must remove service to change

  • Good for host agents (security, monitoring, backup, proxy, etc.)

  • 1.13+ Global Mode can be combined with Constraints

Examples

  • Place one task on each node in Swarm

    • docker service create --mode=global nginx

  • Place one task on each Worker in Swarm

    • docker service create --mode=global --constraint=node.role==worker nginx

Hands On

[node1] ~> docker service create --mode=global --name test1 nginx
q8shwxzsucgwi6b6kijfn55nq
overall progress: 3 out of 3 tasks
rru8z0gj9riq: running   [==================================================>]
th2nb6uc5j61: running   [==================================================>]
tsojlv10aqlv: running   [==================================================>]
verify: Service converged
[node1] ~> docker service create --mode=global --name test2 --constraint=node.role==worker nginx
qlzmyl2fmouim1p5rsxj09l7w
overall progress: 2 out of 2 tasks
tsojlv10aqlv: running   [==================================================>]
rru8z0gj9riq: running   [==================================================>]
verify: Service converged

It might be good to run special devops or maintenance services on worker nodes (backup, proxy, monitoring, etc.)

Service Modes in Stack Files

version: "3.1"
services:
  web:
    image: nginx
    deploy:
      mode: global

Last updated

Was this helpful?