Service Updates

  • Provides rolling replacement of tasks/containers in a service
  • Limits downtime (be careful with "prevent" downtime)
  • Will replace containers for most changes
  • Has many, many cli options to control the update
  • Create options will usually change, adding -add or -rm to them
  • Includes rollback and healthcheck options
  • Also has scale & rollback subcommand for quicker access
    • docker service scale web=4 and docker service rollback web
  • A stack deploy, when pre-existing, will issue service updates

Update Examples

  • Just update the image used to a newer version
docker service update --image myapp:1.2.1 <servicename>
  • Adding an environment variable and remove a port
docker service update --env-add NODE_ENV=production --publish-rm 8080
  • Change number of replicas of two services
docker service scale web=8 api=6
Updates in Stack Files
  • Same command. Just edit the YAML file, then
docker stack deploy -c file.yml <stackname>

Some other examples

[node1] ~> docker service create -p 8088:80 --name web nginx:1.13.7
ptc2b8k6enqrsdoegmga7fgnd
overall progress: 1 out of 1 tasks
1/1: running   [==================================================>]
verify: Service converged

[node1] ~> docker service ls
ID                  NAME                MODE                REPLICAS            IMAGE               PORTS
ptc2b8k6enqr        web                 replicated          1/1                 nginx:1.13.7        *:8088->80/tcp

[node1] ~> docker service scale web=5
web scaled to 5
overall progress: 5 out of 5 tasks
1/5: running   [==================================================>]
2/5: running   [==================================================>]
3/5: running   [==================================================>]
4/5: running   [==================================================>]
5/5: running   [==================================================>]
verify: Service converged

[node1] ~> docker service ls
ID                  NAME                MODE                REPLICAS            IMAGE               PORTS
ptc2b8k6enqr        web                 replicated          5/5                 nginx:1.13.7        *:8088->80/tcp

[node1] ~> docker service update --image nginx:1.13.6 web
web
overall progress: 5 out of 5 tasks
1/5: running   [==================================================>]
2/5: running   [==================================================>]
3/5: running   [==================================================>]
4/5: running   [==================================================>]
5/5: running   [==================================================>]
verify: Service converged

[node1] ~> docker service update --publish-rm 8088 --publish-add 9090:80 web
web
overall progress: 5 out of 5 tasks
1/5: running   [==================================================>]
2/5: running   [==================================================>]
3/5: running   [==================================================>]
4/5: running   [==================================================>]
5/5: running   [==================================================>]
verify: Service converged

[node1] ~> docker service update --force web
docker service update --force web
web
overall progress: 5 out of 5 tasks
1/5: running   [==================================================>]
2/5: running   [==================================================>]
3/5: running   [==================================================>]
4/5: running   [==================================================>]
5/5: running   [==================================================>]
verify: Service converged

https://docs.docker.com/engine/reference/commandline/service_update/

results matching ""

    No results matching ""