How to list containers in Docker

How to list containers in Docker

技术背景

在使用Docker进行容器化应用开发和部署时,经常需要查看当前系统中运行的容器或所有容器的信息。了解如何列出容器对于管理和监控容器状态至关重要。

实现步骤

显示正在运行的容器

使用 docker ps 命令可以显示当前正在运行的容器。

1
docker ps

显示所有容器

要显示所有容器(包括已停止的容器),可以使用 docker ps -a 命令。

1
docker ps -a

显示最新创建的容器

使用 docker ps -l 命令可以显示最新创建的容器(包括所有状态)。

1
docker ps -l

显示最后创建的n个容器

使用 docker ps -n 命令可以显示最后创建的n个容器(包括所有状态)。例如,显示最后创建的5个容器:

1
docker ps -n 5

显示容器的总文件大小

使用 docker ps -s 命令可以显示容器的总文件大小。

1
docker ps -s

新命令语法

在新版本的Docker中,还可以使用 docker container ls 命令来列出容器,其效果与 docker ps 类似。

1
docker container ls

显示所有容器:

1
docker container ls -a

仅显示容器的SHA1值

使用 docker ps -aq --no-trunc 命令可以仅显示容器的SHA1值,方便用于其他需要容器ID作为参数的命令。

1
docker ps -aq --no-trunc

仅显示容器的名称

使用 docker inspect --format='{{.Name}}' $(docker ps -aq --no-trunc) 命令可以仅显示容器的名称。

1
docker inspect --format='{{.Name}}' $(docker ps -aq --no-trunc)

列出所有停止的容器

使用 docker ps --filter "status=exited"docker ps -f "status=exited" 命令可以列出所有停止的容器。

1
docker ps --filter "status=exited"
1
docker ps -f "status=exited"

核心代码

以下是一些常用的列出容器的命令总结:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
# 显示正在运行的容器
docker ps

# 显示所有容器
docker ps -a

# 显示最新创建的容器
docker ps -l

# 显示最后创建的n个容器
docker ps -n 5

# 显示容器的总文件大小
docker ps -s

# 新命令语法
docker container ls
docker container ls -a

# 仅显示容器的SHA1值
docker ps -aq --no-trunc

# 仅显示容器的名称
docker inspect --format='{{.Name}}' $(docker ps -aq --no-trunc)

# 列出所有停止的容器
docker ps --filter "status=exited"
docker ps -f "status=exited"

最佳实践

  • 定期使用 docker ps -a 命令查看所有容器的状态,及时清理不再使用的容器,以释放系统资源。
  • 在编写自动化脚本时,使用 docker ps -q 仅获取容器的ID,方便进行批量操作,如批量停止或删除容器。

常见问题

无法连接到Docker守护进程

如果遇到 Cannot connect to the Docker daemon 错误信息,可能是因为Docker守护进程以root权限运行,需要在命令前加上 sudo

1
sudo docker ps

旧命令和新命令的选择

在新版本的Docker中,虽然旧命令(如 docker ps)仍然支持,但建议使用新的命令语法(如 docker container ls),以保持与未来版本的兼容性。


How to list containers in Docker
https://119291.xyz/posts/2025-04-22.how-to-list-containers-in-docker/
作者
ww
发布于
2025年4月23日
许可协议