Docker PS 命令:从基础查询到高级过滤
-
- 一、核心架构图解
-
- 1.1 命令执行流程
- 1.2 容器状态生命周期
- 二、参数详解与使用场景
-
- 2.1 命令基础语法
- 2.2 参数功能矩阵
- 三、实战操作指南
-
- 3.1 基础查询技巧
-
- 标准列表查看
- 显示完整信息
- 3.2 高级过滤查询
-
- 状态过滤
- 标签过滤
- 四、企业级最佳实践
-
- 4.1 生产环境监控方案
- 4.2 格式化输出模板
- 五、常见问题排查
-
- 5.1 状态异常分析表
- 5.2 性能优化查询
- 六、与编排系统集成
-
- 6.1 Kubernetes对比
- 6.2 Swarm服务查询
- 七、安全注意事项
-
- 7.1 敏感信息防护
- 7.2 权限控制建议
- 八、自动化脚本应用
-
- 8.1 容器健康检查
- 8.2 资源报表生成
- 九、可视化展示方案
-
- 9.1 终端表格美化
- 9.2 监控面板集成
- 十、总结与黄金法则
-
- 10.1 查询决策树
- 10.2 最佳实践清单
🌺The Begin🌺点点关注,收藏不迷路🌺
|
一、核心架构图解
1.1 命令执行流程
1.2 容器状态生命周期
二、参数详解与使用场景
2.1 命令基础语法
docker ps [OPTIONS]
2.2 参数功能矩阵
参数 | 全称 | 作用 | 典型应用场景 | 输出示例 |
---|---|---|---|---|
-a |
--all |
显示所有容器 | 系统维护 | 包括已停止容器 |
-q |
--quiet |
只显示ID | 脚本处理 | c3f279d17e0a |
-l |
--latest |
显示最新容器 | 快速调试 | 最近创建的1个 |
-n |
- | 显示n个最新 | 批量操作 | 最近3个容器 |
-s |
--size |
显示磁盘占用 | 容量监控 | +2MB (virtual 65MB) |
--no-trunc |
- | 不截断输出 | 完整信息查看 | 显示完整ID |
--filter |
-f |
条件过滤 | 精准查询 | status=running |
--format |
- | 自定义格式 | 报表生成 | 表格/JSON输出 |
三、实战操作指南
3.1 基础查询技巧
标准列表查看
docker ps
输出字段说明:
显示完整信息
docker ps --no-trunc -a
3.2 高级过滤查询
状态过滤
docker ps -f "status=exited" -f "ancestor=nginx"
标签过滤
docker ps -f "label=environment=production"
四、企业级最佳实践
4.1 生产环境监控方案
4.2 格式化输出模板
# 自定义表格输出
docker ps --format "table {{.ID}}\t{{.Names}}\t{{.Status}}\t{{.Size}}"
# JSON格式输出
docker ps --format '{{json .}}' | jq
五、常见问题排查
5.1 状态异常分析表
状态 | 可能原因 | 检查方法 |
---|---|---|
restarting | 持续崩溃 | docker logs --tail 50 |
paused | 人工干预 | docker inspect |
dead | 严重错误 | 系统日志检查 |
exited(非0) | 启动失败 | 返回码分析 |
5.2 性能优化查询
# 只查询必要字段
docker ps -a --format "{{.ID}} {{.Names}}"
# 使用grep二次过滤
docker ps --no-trunc | grep "异常关键词"
六、与编排系统集成
6.1 Kubernetes对比
6.2 Swarm服务查询
# 服务与容器关联查询
docker service ps $(docker service ls -q) --no-trunc
七、安全注意事项
7.1 敏感信息防护
# 避免暴露环境变量
docker ps --format "table {{.ID}}\t{{.Names}}" | grep -v "secret"
7.2 权限控制建议
# 创建只读权限角色
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": [
"docker:ps"
],
"Resource": "*"
}
]
}
八、自动化脚本应用
8.1 容器健康检查
#!/bin/bash
# 检查异常容器
docker ps -a -f "status=exited" --format "{{.ID}}" | while read id; do
echo "异常容器: $id $(docker inspect -f '{{.State.Error}}' $id)"
done
8.2 资源报表生成
docker ps -a --format "{{.Names}},{{.Status}},{{.Size}}" > container_report.csv
九、可视化展示方案
9.1 终端表格美化
docker ps --format "table {{.ID}}\t{{.Image}}\t{{.RunningFor}}\t{{.Status}}" | column -t -s $'\t'
9.2 监控面板集成
十、总结与黄金法则
10.1 查询决策树
10.2 最佳实践清单
- 生产环境:定期使用
-a
检查僵尸容器 - 批量操作:结合
-q
输出用于脚本处理 - 故障排查:优先使用
-l
查看最新容器 - 安全审计:记录关键查询操作日志
终极查询模板:
function docker_ps_enhanced() {
local format="table {{.ID}}\t{{.Names}}\t{{.Image}}\t{{.Status}}\t{{.Ports}}"
local filter=""
case $1 in
"all") filter="-a" ;;
"dead") filter="-f status=dead" ;;
"exited") filter="-f status=exited" ;;
"running") filter="-f status=running" ;;
esac
docker ps $filter --format "$format" | column -t -s $'\t'
}
🌺The End🌺点点关注,收藏不迷路🌺
|