<!--[metadata]>
+++
title = "service update"
description = "The service update command description and usage"
keywords = ["service, update"]
[menu.main]
parent = "smn_cli"
+++
<![end-metadata]-->

**Warning:** this command is part of the Swarm management feature introduced in Docker 1.12, and might be subject to non backward-compatible changes.

# service update

```Markdown
Usage:  docker service update [OPTIONS] SERVICE

Update a service

Options:
      --args string                  Service command args
      --constraint-add value         Add or update placement constraints (default [])
      --constraint-rm value          Remove a constraint (default [])
      --endpoint-mode string         Endpoint mode (vip or dnsrr)
      --env-add value                Add or update environment variables (default [])
      --env-rm value                 Remove an environment variable (default [])
      --help                         Print usage
      --image string                 Service image tag
      --label-add value              Add or update service labels (default [])
      --label-rm value               Remove a label by its key (default [])
      --limit-cpu value              Limit CPUs (default 0.000)
      --limit-memory value           Limit Memory (default 0 B)
      --mount-add value              Add or update a mount on a service
      --mount-rm value               Remove a mount by its target path (default [])
      --name string                  Service name
      --network-add value            Add or update network attachments (default [])
      --network-rm value             Remove a network by name (default [])
      --publish-add value            Add or update a published port (default [])
      --publish-rm value             Remove a published port by its target port (default [])
      --registry-auth                Send registry authentication details to Swarm agents
      --replicas value               Number of tasks (default none)
      --reserve-cpu value            Reserve CPUs (default 0.000)
      --reserve-memory value         Reserve Memory (default 0 B)
      --restart-condition string     Restart when condition is met (none, on-failure, or any)
      --restart-delay value          Delay between restart attempts (default none)
      --restart-max-attempts value   Maximum number of restarts before giving up (default none)
      --restart-window value         Window used to evaluate the restart policy (default none)
      --stop-grace-period value      Time to wait before force killing a container (default none)
      --update-delay duration        Delay between updates
      --update-parallelism uint      Maximum number of tasks updated simultaneously
  -u, --user string                  Username or UID
  -w, --workdir string               Working directory inside the container
```

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`](service_create.md). Please look at the description there
for further information.

## Examples

### Update a service

```bash
$ docker service update --limit-cpu 2 redis
```

## Related information

* [service create](service_create.md)
* [service inspect](service_inspect.md)
* [service tasks](service_tasks.md)
* [service ls](service_ls.md)
* [service rm](service_rm.md)
