3.1 docker ps
命令基础
docker ps
命令是Docker工具箱中最有用的命令之一。它会显示正在运行的容器列表并提供它们的信息。这节课我们会详细介绍如何使用docker ps
来检查你容器的状态以及有哪些参数可用来更详细地获取信息。
默认情况下,docker ps
命令只会输出当前正在运行的容器列表。
语法
docker ps [OPTIONS]
其中:
-
OPTIONS
: 用于过滤和格式化输出的额外参数。
基本用法举例
docker ps
这个基础命令docker ps
会输出所有正在运行的容器列表。输出内容包括以下字段:
- CONTAINER ID: 容器的唯一标识符。
- IMAGE: 用来创建容器的镜像。
- COMMAND: 在容器中执行的命令。
- CREATED: 容器创建的时间距离现在的间隔。
- STATUS: 容器当前的状态(例如, Up 5 minutes)。
- PORTS: 映射的端口。
- NAMES: 容器的名称。
显示所有容器
要显示所有的容器,包括已停止的,请使用选项 -a:
docker ps -a
这个命令会输出有史以来所有容器的列表,显示当前的状态(运行中,已停止等)。
3.2 输出过滤
Docker 提供了对 docker ps
命令的输出进行过滤的功能,仅显示符合给定条件的容器。
1. 按状态过滤
例如,只显示已停止的容器:
docker ps -f "status=exited"
2. 按名称过滤
显示具有特定名称或其部分的容器:
docker ps -f "name=my_container"
3. 按镜像过滤
显示由特定镜像创建的容器:
docker ps -f "ancestor=nginx"
3.3 输出格式化
你可以自定义 docker ps
命令的输出,使之更加易读或者只包含你需要的字段。为此可以使用参数 --format
。
格式化示例
docker ps --format "table {{.ID}}\t{{.Names}}\t{{.Status}}"
此示例输出一个表格,包含容器的 ID、名称和状态。
表格可用列
- {{.ID}}: 容器 ID。
- {{.Image}}: 容器镜像。
- {{.Command}}: 容器中运行的命令。
- {{.CreatedAt}}: 容器的创建时间。
- {{.RunningFor}}: 容器运行的时间。
- {{.Status}}: 容器的当前状态。
- {{.Ports}}: 转发的端口。
- {{.Names}}: 容器名称。
使用示例
示例 1: 仅显示容器 ID
此示例仅会输出运行中的容器 ID。适用于脚本中的使用。
docker ps -q
示例 2: 显示过去 24 小时内启动的容器
docker ps --filter "since=24h"
示例 3: 按状态显示容器并格式化输出
此示例将输出一个表格,显示所有正在运行的容器的名称、状态和转发的端口。
docker ps -f "status=running" --format "table {{.Names}}\t{{.Status}}\t{{.Ports}}"
3.4 实际情景
1. 监控正在运行的容器
当你有多个容器在运行时,命令docker ps
可以让你快速检查它们的当前状态,确保一切正常运行。
docker ps
2. 查找并删除已停止的容器
容器在运行结束后会留在系统中,直到你删除它们。你可以使用docker ps -a
来查找所有已停止的容器,然后将它们删除。
docker ps -a -f "status=exited"
docker rm $(docker ps -a -f "status=exited" -q)
3. 任务自动化
将docker ps
命令用在脚本中可以自动化处理容器管理的各种任务。例如,你可以生成容器状态报告,或者如果容器停止了,则自动重新启动容器。
if [ $(docker ps -q -f "name=my_container") ]; then
echo "Container is running"
else
docker start my_container
fi
重要! 这个“代码”是在Linux终端中编写的。可能需要你先学习它。
GO TO FULL VERSION