---
name: "docker-container-ls"
section: "1"
platform: "linux"
package: "docker"
version: "1:29.9.2-1"
release: "Arch Linux 2026-11-01"
platforms: ["linux"]
url: "https://new.carta.tech/docker-container-ls"
---

# docker-container-ls(1)

List containers

## NAME

docker-container-ls - List containers

## SYNOPSIS

**docker container ls \[OPTIONS\]**

## DESCRIPTION

List the containers in the local repository. By default this shows only the running containers.

## Filters

Filter output based on these conditions:\
    \- ancestor=(\[:tag\]\|\|image@digest ⟨mailto:image@digest⟩)\
      containers created from an image or a descendant.\
    \- before=(\|)\
    \- expose=(\[/\]\|/\[\])\
    \- exited= an exit code of \
    \- health=(starting\|healthy\|unhealthy\|none)\
    \- id= a container's ID\
    \- isolation=(**default**\|**process**\|**hyperv**) (Windows daemon only)\
    \- is-task=(true\|false)\
    \- label= or label==\
    \- name= a container's name\
    \- network=(\|)\
    \- publish=(\[/\]\|/\[\])\
    \- since=(\|)\
    \- status=(created\|restarting\|removing\|running\|paused\|exited)\
    \- volume=(\|)

## Format

The formatting option (**--format**) pretty-prints container output using a Go template.

Valid placeholders for the Go template are listed below:\
    \- .ID           - Container ID.\
    \- .Image        - Image ID.\
    \- .Command      - Quoted command.\
    \- .CreatedAt    - Time when the container was created.\
    \- .RunningFor   - Elapsed time since the container was started.\
    \- .Ports        - Exposed ports.\
    \- .Status       - Container status.\
    \- .Size         - Container disk size.\
    \- .Names        - Container names.\
    \- .Labels       - All labels assigned to the container.\
    \- .Label        - Value of a specific label for this container.\
                      For example **'{{.Label "com.docker.swarm.cpu"}}'**.\
    \- .Mounts       - Names of the volumes mounted in this container.\
    \- .Networks     - Names of the networks attached to this container.

## EXAMPLES

## Display all containers, including non-running

```
$ docker container ls -a
CONTAINER ID        IMAGE                 COMMAND                CREATED             STATUS      PORTS    NAMES
a87ecb4f327c        ubuntu:24.04          /bin/sh -c #(nop) MA   20 minutes ago      Exit 0               desperate_brattain
01946d9d34d8        busybox               /bin/sh -c #(nop) MA   33 minutes ago      Exit 0               thirsty_bell
c1d3b0166030        acffc0358b9e          /bin/sh -c yum -y up   2 weeks ago         Exit 1               determined_torvalds
41d50ecd2f57        ubuntu:24.04          /bin/sh -c #(nop) MA   2 weeks ago         Exit 0               drunk_pike
```

## Display only IDs of all containers, including non-running

```
$ docker container ls -a -q
a87ecb4f327c
01946d9d34d8
c1d3b0166030
41d50ecd2f57
```

## Display only IDs of all containers that have the name determined\_torvalds

```
$ docker container ls -a -q --filter=name=determined_torvalds
c1d3b0166030
```

## Display containers with their commands

```
$ docker container ls --format "{{.ID}}: {{.Command}}"
a87ecb4f327c: /bin/sh -c #(nop) MA
01946d9d34d8: /bin/sh -c #(nop) MA
c1d3b0166030: /bin/sh -c yum -y up
41d50ecd2f57: /bin/sh -c #(nop) MA
```

## Display containers with their labels in a table

```
$ docker container ls --format "table {{.ID}}\t{{.Labels}}"
CONTAINER ID        LABELS
a87ecb4f327c        com.docker.swarm.node=ubuntu,com.docker.swarm.storage=ssd
01946d9d34d8
c1d3b0166030        com.docker.swarm.node=debian,com.docker.swarm.cpu=6
41d50ecd2f57        com.docker.swarm.node=fedora,com.docker.swarm.cpu=3,com.docker.swarm.storage=ssd
```

## Display containers with their node label in a table

```
$ docker container ls --format 'table {{.ID}}\t{{(.Label "com.docker.swarm.node")}}'
CONTAINER ID        NODE
a87ecb4f327c        worker-1
01946d9d34d8
c1d3b0166030        worker-1
41d50ecd2f57        worker-2
```

## Display containers with remote-volume mounted

```
$ docker container ls --filter volume=remote-volume --format "table {{.ID}}\t{{.Mounts}}"
CONTAINER ID        MOUNTS
9c3527ed70ce        remote-volume
```

## Display containers with a volume mounted in /data

```
$ docker container ls --filter volume=/data --format "table {{.ID}}\t{{.Mounts}}"
CONTAINER ID        MOUNTS
9c3527ed70ce        remote-volume
```

## Display containers that have published port of 80:

```
$ docker ps --filter publish=80
CONTAINER ID        IMAGE               COMMAND             CREATED              STATUS              PORTS                   NAMES
fc7e477723b7        busybox             "top"               About a minute ago   Up About a minute   0.0.0.0:32768->80/tcp   admiring_roentgen
```

## Display containers that have exposed TCP port in the range of 8000-8080:

```
$ docker ps --filter expose=8000-8080/tcp
CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS              PORTS               NAMES
9833437217a5        busybox             "top"               21 seconds ago      Up 19 seconds       8080/tcp            dreamy_mccarthy
```

## Display containers in JSON format:

```
$ docker ps --format json
{"Command":"\"/docker-entrypoint.…\"","CreatedAt":"2021-03-10 00:15:05 +0100 CET","ID":"a762a2b37a1d","Image":"nginx","Labels":"maintainer=NGINX Docker Maintainers \u003cdocker-maint@nginx.com\u003e","LocalVolumes":"0","Mounts":"","Names":"boring_keldysh","Networks":"bridge","Ports":"80/tcp","RunningFor":"4 seconds ago","Size":"0B","State":"running","Status":"Up 3 seconds"}
```

## OPTIONS

**-a**, **--all**\[=false\]\
 	Show all containers (default shows just running)

**-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

**-n**, **--last**=-1\
 	Show n last created containers (includes all states)

**-l**, **--latest**\[=false\]\
 	Show the latest created container (includes all states)

**--no-trunc**\[=false\]\
 	Don't truncate output

**-q**, **--quiet**\[=false\]\
 	Only display container IDs

**-s**, **--size**\[=false\]\
 	Display total file sizes

## SEE ALSO

**[docker-container(1)](/docker-container/1.md)**
