DOCKER(1)

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)