docker service update
Description
Update a service
Usage
docker service update [OPTIONS] SERVICE
Options
Name, shorthand | Default | Description |
---|---|---|
--args | Service command args | |
--constraint-add | Add or update a placement constraint | |
--constraint-rm | Remove a constraint | |
--container-label-add | Add or update a container label | |
--container-label-rm | Remove a container label by its key | |
--dns-add | Add or update a custom DNS server | |
--dns-option-add | Add or update a DNS option | |
--dns-option-rm | Remove a DNS option | |
--dns-rm | Remove a custom DNS server | |
--dns-search-add | Add or update a custom DNS search domain | |
--dns-search-rm | Remove a DNS search domain | |
--endpoint-mode | Endpoint mode (vip or dnsrr) | |
--env-add | Add or update an environment variable | |
--env-rm | Remove an environment variable | |
--force | false | Force update even if no changes require it |
--group-add | Add an additional supplementary user group to the container | |
--group-rm | Remove a previously added supplementary user group from the container | |
--health-cmd | Command to run to check health | |
--health-interval | Time between running the check (ns|us|ms|s|m|h) | |
--health-retries | 0 | Consecutive failures needed to report unhealthy |
--health-timeout | Maximum time to allow one check to run (ns|us|ms|s|m|h) | |
--host-add | Add or update a custom host-to-IP mapping (host:ip) | |
--host-rm | Remove a custom host-to-IP mapping (host:ip) | |
--hostname | Container hostname | |
--image | Service image tag | |
--label-add | Add or update a service label | |
--label-rm | Remove a label by its key | |
--limit-cpu | 0.000 | Limit CPUs |
--limit-memory | 0 B | Limit Memory |
--log-driver | Logging driver for service | |
--log-opt | Logging driver options | |
--mount-add | Add or update a mount on a service | |
--mount-rm | Remove a mount by its target path | |
--no-healthcheck | false | Disable any container-specified HEALTHCHECK |
--publish-add | Add or update a published port | |
--publish-rm | Remove a published port by its target port | |
--replicas | Number of tasks | |
--reserve-cpu | 0.000 | Reserve CPUs |
--reserve-memory | 0 B | Reserve Memory |
--restart-condition | Restart when condition is met (none, on-failure, or any) | |
--restart-delay | Delay between restart attempts (ns|us|ms|s|m|h) | |
--restart-max-attempts | Maximum number of restarts before giving up | |
--restart-window | Window used to evaluate the restart policy (ns|us|ms|s|m|h) | |
--rollback | false | Rollback to previous specification |
--secret-add | Add or update a secret on a service | |
--secret-rm | Remove a secret | |
--stop-grace-period | Time to wait before force killing a container (ns|us|ms|s|m|h) | |
--tty, -t | false | Allocate a pseudo-TTY |
--update-delay | 0s | Delay between updates (ns|us|ms|s|m|h) (default 0s) |
--update-failure-action | pause | Action on update failure (pause|continue) |
--update-max-failure-ratio | 0 | Failure rate to tolerate during an update |
--update-monitor | 0s | Duration after each task update to monitor for failure (ns|us|ms|s|m|h) (default 0s) |
--update-parallelism | 1 | Maximum number of tasks updated simultaneously (0 to update all at once) |
--user, -u | Username or UID (format: <name|uid>[:<group|gid>]) | |
--with-registry-auth | false | Send registry authentication details to swarm agents |
--workdir, -w | Working directory inside the container |
Parent command
Command | Description |
---|---|
docker service | Manage services |
Related commands
Command | Description |
---|---|
docker service create | Create a new service |
docker service inspect | Display detailed information on one or more services |
docker service logs | Fetch the logs of a service |
docker service ls | List services |
docker service ps | List the tasks of a service |
docker service rm | Remove one or more services |
docker service scale | Scale one or multiple replicated services |
docker service update | Update a service |
Extended description
Updates a service as described by the specified parameters. This command has to be run targeting a manager node. The parameters are the same as docker service create
. Please look at the description there for further information.
Normally, updating a service will only cause the service’s tasks to be replaced with new ones if a change to the service requires recreating the tasks for it to take effect. For example, only changing the --update-parallelism
setting will not recreate the tasks, because the individual tasks are not affected by this setting. However, the --force
flag will cause the tasks to be recreated anyway. This can be used to perform a rolling restart without any changes to the service parameters.
Examples
Update a service
$ docker service update --limit-cpu 2 redis
Perform a rolling restart with no parameter changes
$ docker service update --force --update-parallelism 1 --update-delay 30s redis
In this example, the --force
flag causes the service’s tasks to be shut down and replaced with new ones even though none of the other parameters would normally cause that to happen. The --update-parallelism 1
setting ensures that only one task is replaced at a time (this is the default behavior). The --update-delay 30s
setting introduces a 30 second delay between tasks, so that the rolling restart happens gradually.
Add or remove mounts
Use the --mount-add
or --mount-rm
options add or remove a service’s bind-mounts or volumes.
The following example creates a service which mounts the test-data
volume to /somewhere
. The next step updates the service to also mount the other-volume
volume to /somewhere-else
volume, The last step unmounts the /somewhere
mount point, effectively removing the test-data
volume. Each command returns the service name.
-
The
--mount-add
flag takes the same parameters as the--mount
flag onservice create
. Refer to the volumes and bind-mounts section in theservice create
reference for details. -
The
--mount-rm
flag takes thetarget
path of the mount.
$ docker service create \ --name=myservice \ --mount \ type=volume,source=test-data,target=/somewhere \ nginx:alpine \ myservice myservice $ docker service update \ --mount-add \ type=volume,source=other-volume,target=/somewhere-else \ myservice myservice $ docker service update --mount-rm /somewhere myservice myservice
Add or remove secrets
Use the --secret-add
or --secret-rm
options add or remove a service’s secrets.
The following example adds a secret named ssh-2
and removes ssh-1
:
$ docker service update \ --secret-add source=ssh-2,target=ssh-2 \ --secret-rm ssh-1 \ myservice
Update services using templates
Some flags of service update
support the use of templating. See service create
for the reference.
© 2017 Docker, Inc.
Licensed under the Apache License, Version 2.0.
Docker and the Docker logo are trademarks or registered trademarks of Docker, Inc. in the United States and/or other countries.
Docker, Inc. and other parties may also have trademark rights in other terms used herein.
https://docs.docker.com/v1.13/engine/reference/commandline/service_update/