docker service ls
Estimated reading time: 4 minutesDescription
List services
API 1.24+
The client and daemon API must both be at least
1.24
to use this command. Use the docker version
command on the client to check
your client and daemon API versions.
Swarm This command works with the Swarm orchestrator.
Usage
docker service ls [OPTIONS]
Options
Name, shorthand | Default | Description |
--filter , -f |
Filter output based on conditions provided | |
--format |
Pretty-print services using a Go template | |
--quiet , -q |
Only display IDs |
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 or task |
docker service ls | List services |
docker service ps | List the tasks of one or more services |
docker service rm | Remove one or more services |
docker service rollback | Revert changes to a service’s configuration |
docker service scale | Scale one or multiple replicated services |
docker service update | Update a service |
Extended description
This command when run targeting a manager, lists services are running in the swarm.
Examples
On a manager node:
$ docker service ls
ID NAME MODE REPLICAS IMAGE
c8wgl7q4ndfd frontend replicated 5/5 nginx:alpine
dmu1ept4cxcf redis replicated 3/3 redis:3.0.6
iwe3278osahj mongo global 7/7 mongo:3.3
The REPLICAS
column shows both the actual and desired number of tasks for
the service.
Filtering
The filtering flag (-f
or --filter
) format is of “key=value”. If there is more
than one filter, then pass multiple flags (e.g., --filter "foo=bar" --filter "bif=baz"
)
The currently supported filters are:
id
The id
filter matches all or part of a service’s id.
$ docker service ls -f "id=0bcjw"
ID NAME MODE REPLICAS IMAGE
0bcjwfh8ychr redis replicated 1/1 redis:3.0.6
label
The label
filter matches services based on the presence of a label
alone or
a label
and a value.
The following filter matches all services with a project
label regardless of
its value:
$ docker service ls --filter label=project
ID NAME MODE REPLICAS IMAGE
01sl1rp6nj5u frontend2 replicated 1/1 nginx:alpine
36xvvwwauej0 frontend replicated 5/5 nginx:alpine
74nzcxxjv6fq backend replicated 3/3 redis:3.0.6
The following filter matches only services with the project
label with the
project-a
value.
$ docker service ls --filter label=project=project-a
ID NAME MODE REPLICAS IMAGE
36xvvwwauej0 frontend replicated 5/5 nginx:alpine
74nzcxxjv6fq backend replicated 3/3 redis:3.0.6
mode
The mode
filter matches on the mode (either replicated
or global
) of a service.
The following filter matches only global
services.
$ docker service ls --filter mode=global
ID NAME MODE REPLICAS IMAGE
w7y0v2yrn620 top global 1/1 busybox
name
The name
filter matches on all or part of a service’s name.
The following filter matches services with a name containing redis
.
$ docker service ls --filter name=redis
ID NAME MODE REPLICAS IMAGE
0bcjwfh8ychr redis replicated 1/1 redis:3.0.6
Formatting
The formatting options (--format
) pretty-prints services output
using a Go template.
Valid placeholders for the Go template are listed below:
Placeholder | Description |
---|---|
.ID |
Service ID |
.Name |
Service name |
.Mode |
Service mode (replicated, global) |
.Replicas |
Service replicas |
.Image |
Service image |
.Ports |
Service ports published in ingress mode |
When using the --format
option, the service ls
command will either
output the data exactly as the template declares or, when using the
table
directive, includes column headers as well.
The following example uses a template without headers and outputs the
ID
, Mode
, and Replicas
entries separated by a colon for all services:
$ docker service ls --format "{{.ID}}: {{.Mode}} {{.Replicas}}"
0zmvwuiu3vue: replicated 10/10
fm6uf97exkul: global 5/5