Docker 查看容器命令详解
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
– 容器ID,标识每个容器的唯一的字母数字字符串。Image
– 用于创建容器的 Docker 映像。Command
– 启动容器时执行的命令。Created
– 容器的创建时间。Status
– 容器的状态。Ports
– 容器的已发布端口。Name
– 容器的名称。
如果没有正在运行的容器,则仅显示标题行。
如果想打印所有容器的列表,请在 docker container ls
后面带上 -a
或者 --all
选项告诉 :
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
选项允许你使用模板格式化输出。例如,仅打印容器的名称和状态,包括要运行的标题:
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
。