Docker是一个容器化平台,可让您快速构建,测试和部署应用程序,作为可在几乎任何地方运行的可移植自足容器。它是事实上的容器部署标准,对于DevOps工程师及其持续的集成和交付管道来说,是必不可少的工具。

在本文中,我们将说明如何列出Docker容器。

列出Docker容器

用于列出容器的Docker命令采用以下形式:

docker container ls [options]

1.13之前的旧Docker版本正在使用不同的命令来列出容器:

docker ps [options]

较新的Docker版本仍支持上述命令,其中ps命令是container ls的别名。

要列出正在运行的容器,请运行docker container ls命令,不带任何选项:

docker container ls

输出将如下所示:

CONTAINER ID    IMAGE        COMMAND                  CREATED        STATUS        PORTS       NAMES
c8bded53da86    postgres     "docker-entrypoint.s…"   2 hours ago    Up 2 hours    5432/tcp    pg
571c3a115fcf    redis        "docker-entrypoint.s…"   4 hours ago    Up 4 hours    6379/tcp    cache
05ef6d8680ba    nginx        "nginx -g 'daemon of…"   2 hours ago    Up 2 hours    80/tcp      web

输出的每一行都包含以下列:

  • Container ID –标识每个容器的唯一字母数字字符串。
  • Image –用于创建容器的Docker映像。
  • Command –启动容器时执行的命令。
  • Created –容器的创建时间。
  • Status –容器的状态。
  • Ports –集装箱的已发布港口。
  • Name –容器的名称。

如果没有正在运行的容器,则仅显示标题行。

-a--all选项告诉docker container ls打印所有容器的列表:

docker container ls -a
CONTAINER ID    IMAGE        COMMAND                  CREATED        STATUS                    PORTS       NAMES
b28cbaa91f15    couchbase    "/entrypoint.sh couc…"   5 hours ago    Exited (0) 3 hours ago                db
c8bded53da86    postgres     "docker-entrypoint.s…"   2 hours ago    Up 2 hours                5432/tcp    pg
571c3a115fcf    redis        "docker-entrypoint.s…"   4 hours ago    Up 4 hours                6379/tcp    cache
05ef6d8680ba    nginx        "nginx -g 'daemon of…"   2 hours ago    Up 2 hours                80/tcp      web

默认情况下,长度超过指定限制的列将被截断。使用--no-trunc选项禁用截断功能:

docker container ls --no-trunc

要仅显示容器的ID,请通过-q--quiet选项:

docker container ls -q
c8bded53da86
571c3a115fcf
05ef6d8680ba

--format允许您使用Go模板格式化输出。例如,仅打印容器的名称和状态,包括要运行的标题:

docker container ls --format 'table {{.Names}}\t{{.Status}}'
NAMES    STATUS
pg       Up 2 hours
cache    Up 4 hours
web      Up 2 hours

使用-s--size选项查看容器的大小:

docker container ls -s

每行将包含名为SIZE的列,该列显示容器的大小:

CONTAINER ID    IMAGE        COMMAND                  CREATED        STATUS        PORTS       NAMES    SIZE
c8bded53da86    postgres     "docker-entrypoint.s…"   2 hours ago    Up 2 hours    5432/tcp    pg       63B (virtual 394MB)
571c3a115fcf    redis        "docker-entrypoint.s…"   4 hours ago    Up 4 hours    6379/tcp    cache    0B (virtual 98.2MB)
05ef6d8680ba    nginx        "nginx -g 'daemon of…"   2 hours ago    Up 2 hours    80/tcp      web      2B (virtual 126MB)

--last-n选项告诉命令显示n最近创建的容器,包括所有状态。例如,要查看最近创建的两个容器,可以运行:

docker container ls -n 2
CONTAINER ID    IMAGE        COMMAND                  CREATED        STATUS                    PORTS       NAMES
b28cbaa91f15    couchbase    "/entrypoint.sh couc…"   5 hours ago    Exited (0) 3 hours ago                db
c8bded53da86    postgres     "docker-entrypoint.s…"   2 hours ago    Up 2 hours                5432/tcp    pg

还有一个选项可以只列出最新创建的容器--latest-l,该容器与-n 1

相同

docker container ls -l

--filter-f选项可让您根据某些条件过滤输出。例如,要仅查看状态为exited的容器,可以运行:

docker container ls -f "status=exited"
CONTAINER ID    IMAGE        COMMAND                  CREATED        STATUS                    PORTS       NAMES
b28cbaa91f15    couchbase    "/entrypoint.sh couc…"   5 hours ago    Exited (0) 3 hours ago                db

有关所有受支持的过滤器的列表,请参阅 Docker文档

结论

Docker容器是映像的独立运行时实例。

要列出Docker容器,请使用docker container ls命令或其别名docker ps

如有任何疑问,请在下面发表评论。

如果你喜欢我们的内容可以选择在下方二维码中捐赠我们,或者点击广告予以支持,感谢你的支持