docker service ls
| Description | List services |
|---|---|
| Usage | docker service ls [OPTIONS] |
| Aliases | docker service list |
Swarm This command works with the Swarm orchestrator.
Description
This command lists services that are running in the swarm.
NoteThis is a cluster management command, and must be executed on a swarm manager node. To learn about managers and workers, refer to the Swarm mode section in the documentation.
Options
| Option | Default | Description |
|---|---|---|
-f, --filter | Filter output based on conditions provided | |
--format | Format output using a custom template: 'table': Print output in table format with column headers (default) 'table TEMPLATE': Print output in table format using the given Go template 'json': Print in JSON format 'TEMPLATE': Print output using the given Go template. Refer to https://docs.docker.com/go/formatting/ for more information about formatting output with templates | |
-q, --quiet | Only display IDs |
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:7.4.1 iwe3278osahj mongo global 7/7 mongo:3.3 hh08h9uu8uwr job replicated-job 1/1 (3/5 completed) nginx:latest The REPLICAS column shows both the actual and desired number of tasks for the service. If the service is in replicated-job or global-job, it will additionally show the completion status of the job as completed tasks over total tasks the job will execute.
Filtering (--filter)
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 the prefix of a service's ID.
The following filter matches services with an ID starting with 0bcjw:
$ docker service ls -f "id=0bcjw" ID NAME MODE REPLICAS IMAGE 0bcjwfh8ychr redis replicated 1/1 redis:7.4.1 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:7.4.1 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:7.4.1 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 the prefix of a service's name.
The following filter matches services with a name starting with redis.
$ docker service ls --filter name=redis ID NAME MODE REPLICAS IMAGE 0bcjwfh8ychr redis replicated 1/1 redis:7.4.1 Format the output (--format)
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 To list all services in JSON format, use the json directive:
$ docker service ls --format json {"ID":"ssniordqolsi","Image":"hello-world:latest","Mode":"replicated","Name":"hello","Ports":"","Replicas":"0/1"}