command: docker stack services
short: List the services in the stack
long: |-
    Lists the services that are running as part of the specified stack.

    > [!NOTE]
    > This 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](/engine/swarm/) in the
    > documentation.
usage: docker stack services [OPTIONS] STACK
pname: docker stack
plink: docker_stack.yaml
options:
    - option: filter
      shorthand: f
      value_type: filter
      description: Filter output based on conditions provided
      details_url: '#filter'
      deprecated: false
      hidden: false
      experimental: false
      experimentalcli: false
      kubernetes: false
      swarm: false
    - option: format
      value_type: string
      description: |-
        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
      details_url: '#format'
      deprecated: false
      hidden: false
      experimental: false
      experimentalcli: false
      kubernetes: false
      swarm: false
    - option: quiet
      shorthand: q
      value_type: bool
      default_value: "false"
      description: Only display IDs
      deprecated: false
      hidden: false
      experimental: false
      experimentalcli: false
      kubernetes: false
      swarm: false
inherited_options:
    - option: help
      value_type: bool
      default_value: "false"
      description: Print usage
      deprecated: false
      hidden: true
      experimental: false
      experimentalcli: false
      kubernetes: false
      swarm: false
    - option: orchestrator
      value_type: string
      description: Orchestrator to use (swarm|all)
      deprecated: true
      hidden: true
      experimental: false
      experimentalcli: false
      kubernetes: false
      swarm: false
examples: |-
    The following command shows all services in the `myapp` stack:

    ```console
    $ docker stack services myapp

    ID            NAME            REPLICAS  IMAGE                                                                          COMMAND
    7be5ei6sqeye  myapp_web       1/1       nginx@sha256:23f809e7fd5952e7d5be065b4d3643fbbceccd349d537b62a123ef2201bc886f
    dn7m7nhhfb9y  myapp_db        1/1       mysql@sha256:a9a5b559f8821fe73d58c3606c812d1c044868d42c63817fa5125fd9d8b7b539
    ```

    ### Filtering (--filter) {#filter}

    The filtering flag (`-f` or `--filter`) format is a `key=value` pair. If there
    is more than one filter, then pass multiple flags (e.g. `--filter "foo=bar" --filter "bif=baz"`).
    Multiple filter flags are combined as an `OR` filter.

    The following command shows both the `web` and `db` services:

    ```console
    $ docker stack services --filter name=myapp_web --filter name=myapp_db myapp

    ID            NAME            REPLICAS  IMAGE                                                                          COMMAND
    7be5ei6sqeye  myapp_web       1/1       nginx@sha256:23f809e7fd5952e7d5be065b4d3643fbbceccd349d537b62a123ef2201bc886f
    dn7m7nhhfb9y  myapp_db        1/1       mysql@sha256:a9a5b559f8821fe73d58c3606c812d1c044868d42c63817fa5125fd9d8b7b539
    ```

    The currently supported filters are:

    * id / ID (`--filter id=7be5ei6sqeye`, or `--filter ID=7be5ei6sqeye`)
    * label (`--filter label=key=value`)
    * mode (`--filter mode=replicated`, or `--filter mode=global`)
      * Swarm: not supported
    * name (`--filter name=myapp_web`)
    * node (`--filter node=mynode`)
      * Swarm: not supported
    * service (`--filter service=web`)
      * Swarm: not supported

    ### Format the output (--format) {#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                     |

    When using the `--format` option, the `stack services` 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:

    ```console
    $ docker stack services --format "{{.ID}}: {{.Mode}} {{.Replicas}}"

    0zmvwuiu3vue: replicated 10/10
    fm6uf97exkul: global 5/5
    ```

    To list all services in JSON format, use the `json` directive:

    ```console
    $ docker stack services ls --format json
    {"ID":"0axqbl293vwm","Image":"localstack/localstack:latest","Mode":"replicated","Name":"myapp_localstack","Ports":"*:4566-\u003e4566/tcp, *:8080-\u003e8080/tcp","Replicas":"0/1"}
    {"ID":"384xvtzigz3p","Image":"redis:6.0.9-alpine3.12","Mode":"replicated","Name":"myapp_redis","Ports":"*:6379-\u003e6379/tcp","Replicas":"1/1"}
    {"ID":"hyujct8cnjkk","Image":"postgres:13.2-alpine","Mode":"replicated","Name":"myapp_repos-db","Ports":"*:5432-\u003e5432/tcp","Replicas":"0/1"}
    ```
deprecated: false
hidden: false
min_api_version: "1.25"
experimental: false
experimentalcli: false
kubernetes: false
swarm: true

