Docker PS 命令:从基础查询到高级过滤_docker ps怎么用
Docker PS 命令:从基础查询到高级过滤
-
- 一、核心架构图解
- 二、参数详解与使用场景
-
- 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 最佳实践清单
一、核心架构图解
1.1 命令执行流程
#mermaid-svg-KemETY1yTZwPOYLX {font-family:\"trebuchet ms\",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg-KemETY1yTZwPOYLX .error-icon{fill:#552222;}#mermaid-svg-KemETY1yTZwPOYLX .error-text{fill:#552222;stroke:#552222;}#mermaid-svg-KemETY1yTZwPOYLX .edge-thickness-normal{stroke-width:2px;}#mermaid-svg-KemETY1yTZwPOYLX .edge-thickness-thick{stroke-width:3.5px;}#mermaid-svg-KemETY1yTZwPOYLX .edge-pattern-solid{stroke-dasharray:0;}#mermaid-svg-KemETY1yTZwPOYLX .edge-pattern-dashed{stroke-dasharray:3;}#mermaid-svg-KemETY1yTZwPOYLX .edge-pattern-dotted{stroke-dasharray:2;}#mermaid-svg-KemETY1yTZwPOYLX .marker{fill:#333333;stroke:#333333;}#mermaid-svg-KemETY1yTZwPOYLX .marker.cross{stroke:#333333;}#mermaid-svg-KemETY1yTZwPOYLX svg{font-family:\"trebuchet ms\",verdana,arial,sans-serif;font-size:16px;}#mermaid-svg-KemETY1yTZwPOYLX .actor{stroke:hsl(259.6261682243, 59.7765363128%, 87.9019607843%);fill:#ECECFF;}#mermaid-svg-KemETY1yTZwPOYLX text.actor>tspan{fill:black;stroke:none;}#mermaid-svg-KemETY1yTZwPOYLX .actor-line{stroke:grey;}#mermaid-svg-KemETY1yTZwPOYLX .messageLine0{stroke-width:1.5;stroke-dasharray:none;stroke:#333;}#mermaid-svg-KemETY1yTZwPOYLX .messageLine1{stroke-width:1.5;stroke-dasharray:2,2;stroke:#333;}#mermaid-svg-KemETY1yTZwPOYLX #arrowhead path{fill:#333;stroke:#333;}#mermaid-svg-KemETY1yTZwPOYLX .sequenceNumber{fill:white;}#mermaid-svg-KemETY1yTZwPOYLX #sequencenumber{fill:#333;}#mermaid-svg-KemETY1yTZwPOYLX #crosshead path{fill:#333;stroke:#333;}#mermaid-svg-KemETY1yTZwPOYLX .messageText{fill:#333;stroke:#333;}#mermaid-svg-KemETY1yTZwPOYLX .labelBox{stroke:hsl(259.6261682243, 59.7765363128%, 87.9019607843%);fill:#ECECFF;}#mermaid-svg-KemETY1yTZwPOYLX .labelText,#mermaid-svg-KemETY1yTZwPOYLX .labelText>tspan{fill:black;stroke:none;}#mermaid-svg-KemETY1yTZwPOYLX .loopText,#mermaid-svg-KemETY1yTZwPOYLX .loopText>tspan{fill:black;stroke:none;}#mermaid-svg-KemETY1yTZwPOYLX .loopLine{stroke-width:2px;stroke-dasharray:2,2;stroke:hsl(259.6261682243, 59.7765363128%, 87.9019607843%);fill:hsl(259.6261682243, 59.7765363128%, 87.9019607843%);}#mermaid-svg-KemETY1yTZwPOYLX .note{stroke:#aaaa33;fill:#fff5ad;}#mermaid-svg-KemETY1yTZwPOYLX .noteText,#mermaid-svg-KemETY1yTZwPOYLX .noteText>tspan{fill:black;stroke:none;}#mermaid-svg-KemETY1yTZwPOYLX .activation0{fill:#f4f4f4;stroke:#666;}#mermaid-svg-KemETY1yTZwPOYLX .activation1{fill:#f4f4f4;stroke:#666;}#mermaid-svg-KemETY1yTZwPOYLX .activation2{fill:#f4f4f4;stroke:#666;}#mermaid-svg-KemETY1yTZwPOYLX .actorPopupMenu{position:absolute;}#mermaid-svg-KemETY1yTZwPOYLX .actorPopupMenuPanel{position:absolute;fill:#ECECFF;box-shadow:0px 8px 16px 0px rgba(0,0,0,0.2);filter:drop-shadow(3px 5px 2px rgb(0 0 0 / 0.4));}#mermaid-svg-KemETY1yTZwPOYLX .actor-man line{stroke:hsl(259.6261682243, 59.7765363128%, 87.9019607843%);fill:#ECECFF;}#mermaid-svg-KemETY1yTZwPOYLX .actor-man circle,#mermaid-svg-KemETY1yTZwPOYLX line{stroke:hsl(259.6261682243, 59.7765363128%, 87.9019607843%);fill:#ECECFF;stroke-width:2px;}#mermaid-svg-KemETY1yTZwPOYLX :root{--mermaid-font-family:\"trebuchet ms\",verdana,arial,sans-serif;}UserDocker ClientDocker DaemonContainerDBps [OPTIONS]API请求查询容器数据返回元数据格式化输出结果UserDocker ClientDocker DaemonContainerDB
1.2 容器状态生命周期
#mermaid-svg-byyVpJkivUQibRqh {font-family:\"trebuchet ms\",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg-byyVpJkivUQibRqh .error-icon{fill:#552222;}#mermaid-svg-byyVpJkivUQibRqh .error-text{fill:#552222;stroke:#552222;}#mermaid-svg-byyVpJkivUQibRqh .edge-thickness-normal{stroke-width:2px;}#mermaid-svg-byyVpJkivUQibRqh .edge-thickness-thick{stroke-width:3.5px;}#mermaid-svg-byyVpJkivUQibRqh .edge-pattern-solid{stroke-dasharray:0;}#mermaid-svg-byyVpJkivUQibRqh .edge-pattern-dashed{stroke-dasharray:3;}#mermaid-svg-byyVpJkivUQibRqh .edge-pattern-dotted{stroke-dasharray:2;}#mermaid-svg-byyVpJkivUQibRqh .marker{fill:#333333;stroke:#333333;}#mermaid-svg-byyVpJkivUQibRqh .marker.cross{stroke:#333333;}#mermaid-svg-byyVpJkivUQibRqh svg{font-family:\"trebuchet ms\",verdana,arial,sans-serif;font-size:16px;}#mermaid-svg-byyVpJkivUQibRqh defs #statediagram-barbEnd{fill:#333333;stroke:#333333;}#mermaid-svg-byyVpJkivUQibRqh g.stateGroup text{fill:#9370DB;stroke:none;font-size:10px;}#mermaid-svg-byyVpJkivUQibRqh g.stateGroup text{fill:#333;stroke:none;font-size:10px;}#mermaid-svg-byyVpJkivUQibRqh g.stateGroup .state-title{font-weight:bolder;fill:#131300;}#mermaid-svg-byyVpJkivUQibRqh g.stateGroup rect{fill:#ECECFF;stroke:#9370DB;}#mermaid-svg-byyVpJkivUQibRqh g.stateGroup line{stroke:#333333;stroke-width:1;}#mermaid-svg-byyVpJkivUQibRqh .transition{stroke:#333333;stroke-width:1;fill:none;}#mermaid-svg-byyVpJkivUQibRqh .stateGroup .composit{fill:white;border-bottom:1px;}#mermaid-svg-byyVpJkivUQibRqh .stateGroup .alt-composit{fill:#e0e0e0;border-bottom:1px;}#mermaid-svg-byyVpJkivUQibRqh .state-note{stroke:#aaaa33;fill:#fff5ad;}#mermaid-svg-byyVpJkivUQibRqh .state-note text{fill:black;stroke:none;font-size:10px;}#mermaid-svg-byyVpJkivUQibRqh .stateLabel .box{stroke:none;stroke-width:0;fill:#ECECFF;opacity:0.5;}#mermaid-svg-byyVpJkivUQibRqh .edgeLabel .label rect{fill:#ECECFF;opacity:0.5;}#mermaid-svg-byyVpJkivUQibRqh .edgeLabel .label text{fill:#333;}#mermaid-svg-byyVpJkivUQibRqh .label div .edgeLabel{color:#333;}#mermaid-svg-byyVpJkivUQibRqh .stateLabel text{fill:#131300;font-size:10px;font-weight:bold;}#mermaid-svg-byyVpJkivUQibRqh .node circle.state-start{fill:#333333;stroke:#333333;}#mermaid-svg-byyVpJkivUQibRqh .node .fork-join{fill:#333333;stroke:#333333;}#mermaid-svg-byyVpJkivUQibRqh .node circle.state-end{fill:#9370DB;stroke:white;stroke-width:1.5;}#mermaid-svg-byyVpJkivUQibRqh .end-state-inner{fill:white;stroke-width:1.5;}#mermaid-svg-byyVpJkivUQibRqh .node rect{fill:#ECECFF;stroke:#9370DB;stroke-width:1px;}#mermaid-svg-byyVpJkivUQibRqh .node polygon{fill:#ECECFF;stroke:#9370DB;stroke-width:1px;}#mermaid-svg-byyVpJkivUQibRqh #statediagram-barbEnd{fill:#333333;}#mermaid-svg-byyVpJkivUQibRqh .statediagram-cluster rect{fill:#ECECFF;stroke:#9370DB;stroke-width:1px;}#mermaid-svg-byyVpJkivUQibRqh .cluster-label,#mermaid-svg-byyVpJkivUQibRqh .nodeLabel{color:#131300;}#mermaid-svg-byyVpJkivUQibRqh .statediagram-cluster rect.outer{rx:5px;ry:5px;}#mermaid-svg-byyVpJkivUQibRqh .statediagram-state .divider{stroke:#9370DB;}#mermaid-svg-byyVpJkivUQibRqh .statediagram-state .title-state{rx:5px;ry:5px;}#mermaid-svg-byyVpJkivUQibRqh .statediagram-cluster.statediagram-cluster .inner{fill:white;}#mermaid-svg-byyVpJkivUQibRqh .statediagram-cluster.statediagram-cluster-alt .inner{fill:#f0f0f0;}#mermaid-svg-byyVpJkivUQibRqh .statediagram-cluster .inner{rx:0;ry:0;}#mermaid-svg-byyVpJkivUQibRqh .statediagram-state rect.basic{rx:5px;ry:5px;}#mermaid-svg-byyVpJkivUQibRqh .statediagram-state rect.divider{stroke-dasharray:10,10;fill:#f0f0f0;}#mermaid-svg-byyVpJkivUQibRqh .note-edge{stroke-dasharray:5;}#mermaid-svg-byyVpJkivUQibRqh .statediagram-note rect{fill:#fff5ad;stroke:#aaaa33;stroke-width:1px;rx:0;ry:0;}#mermaid-svg-byyVpJkivUQibRqh .statediagram-note rect{fill:#fff5ad;stroke:#aaaa33;stroke-width:1px;rx:0;ry:0;}#mermaid-svg-byyVpJkivUQibRqh .statediagram-note text{fill:black;}#mermaid-svg-byyVpJkivUQibRqh .statediagram-note .nodeLabel{color:black;}#mermaid-svg-byyVpJkivUQibRqh .statediagram .edgeLabel{color:red;}#mermaid-svg-byyVpJkivUQibRqh #dependencyStart,#mermaid-svg-byyVpJkivUQibRqh #dependencyEnd{fill:#333333;stroke:#333333;stroke-width:1;}#mermaid-svg-byyVpJkivUQibRqh :root{--mermaid-font-family:\"trebuchet ms\",verdana,arial,sans-serif;}docker createdocker startdocker pausedocker unpause进程结束异常退出重启成功createdrunningpausedexitedrestarting
二、参数详解与使用场景
2.1 命令基础语法
docker ps [OPTIONS]
2.2 参数功能矩阵
-a
--all
-q
--quiet
c3f279d17e0a
-l
--latest
-n
-s
--size
+2MB (virtual 65MB)
--no-trunc
--filter
-f
status=running
--format
三、实战操作指南
3.1 基础查询技巧
标准列表查看
docker ps
输出字段说明:
#mermaid-svg-LS5eygsQR0ls7e2G {font-family:\"trebuchet ms\",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg-LS5eygsQR0ls7e2G .error-icon{fill:#552222;}#mermaid-svg-LS5eygsQR0ls7e2G .error-text{fill:#552222;stroke:#552222;}#mermaid-svg-LS5eygsQR0ls7e2G .edge-thickness-normal{stroke-width:2px;}#mermaid-svg-LS5eygsQR0ls7e2G .edge-thickness-thick{stroke-width:3.5px;}#mermaid-svg-LS5eygsQR0ls7e2G .edge-pattern-solid{stroke-dasharray:0;}#mermaid-svg-LS5eygsQR0ls7e2G .edge-pattern-dashed{stroke-dasharray:3;}#mermaid-svg-LS5eygsQR0ls7e2G .edge-pattern-dotted{stroke-dasharray:2;}#mermaid-svg-LS5eygsQR0ls7e2G .marker{fill:#333333;stroke:#333333;}#mermaid-svg-LS5eygsQR0ls7e2G .marker.cross{stroke:#333333;}#mermaid-svg-LS5eygsQR0ls7e2G svg{font-family:\"trebuchet ms\",verdana,arial,sans-serif;font-size:16px;}#mermaid-svg-LS5eygsQR0ls7e2G .label{font-family:\"trebuchet ms\",verdana,arial,sans-serif;color:#333;}#mermaid-svg-LS5eygsQR0ls7e2G .cluster-label text{fill:#333;}#mermaid-svg-LS5eygsQR0ls7e2G .cluster-label span{color:#333;}#mermaid-svg-LS5eygsQR0ls7e2G .label text,#mermaid-svg-LS5eygsQR0ls7e2G span{fill:#333;color:#333;}#mermaid-svg-LS5eygsQR0ls7e2G .node rect,#mermaid-svg-LS5eygsQR0ls7e2G .node circle,#mermaid-svg-LS5eygsQR0ls7e2G .node ellipse,#mermaid-svg-LS5eygsQR0ls7e2G .node polygon,#mermaid-svg-LS5eygsQR0ls7e2G .node path{fill:#ECECFF;stroke:#9370DB;stroke-width:1px;}#mermaid-svg-LS5eygsQR0ls7e2G .node .label{text-align:center;}#mermaid-svg-LS5eygsQR0ls7e2G .node.clickable{cursor:pointer;}#mermaid-svg-LS5eygsQR0ls7e2G .arrowheadPath{fill:#333333;}#mermaid-svg-LS5eygsQR0ls7e2G .edgePath .path{stroke:#333333;stroke-width:2.0px;}#mermaid-svg-LS5eygsQR0ls7e2G .flowchart-link{stroke:#333333;fill:none;}#mermaid-svg-LS5eygsQR0ls7e2G .edgeLabel{background-color:#e8e8e8;text-align:center;}#mermaid-svg-LS5eygsQR0ls7e2G .edgeLabel rect{opacity:0.5;background-color:#e8e8e8;fill:#e8e8e8;}#mermaid-svg-LS5eygsQR0ls7e2G .cluster rect{fill:#ffffde;stroke:#aaaa33;stroke-width:1px;}#mermaid-svg-LS5eygsQR0ls7e2G .cluster text{fill:#333;}#mermaid-svg-LS5eygsQR0ls7e2G .cluster span{color:#333;}#mermaid-svg-LS5eygsQR0ls7e2G div.mermaidTooltip{position:absolute;text-align:center;max-width:200px;padding:2px;font-family:\"trebuchet ms\",verdana,arial,sans-serif;font-size:12px;background:hsl(80, 100%, 96.2745098039%);border:1px solid #aaaa33;border-radius:2px;pointer-events:none;z-index:100;}#mermaid-svg-LS5eygsQR0ls7e2G :root{--mermaid-font-family:\"trebuchet ms\",verdana,arial,sans-serif;}CONTAINER_IDIMAGECOMMANDCREATEDSTATUSPORTSNAMES
显示完整信息
docker ps --no-trunc -a
3.2 高级过滤查询
状态过滤
docker ps -f \"status=exited\" -f \"ancestor=nginx\"
标签过滤
docker ps -f \"label=environment=production\"
四、企业级最佳实践
4.1 生产环境监控方案
#mermaid-svg-4PdsrOxly361tShy {font-family:\"trebuchet ms\",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg-4PdsrOxly361tShy .error-icon{fill:#552222;}#mermaid-svg-4PdsrOxly361tShy .error-text{fill:#552222;stroke:#552222;}#mermaid-svg-4PdsrOxly361tShy .edge-thickness-normal{stroke-width:2px;}#mermaid-svg-4PdsrOxly361tShy .edge-thickness-thick{stroke-width:3.5px;}#mermaid-svg-4PdsrOxly361tShy .edge-pattern-solid{stroke-dasharray:0;}#mermaid-svg-4PdsrOxly361tShy .edge-pattern-dashed{stroke-dasharray:3;}#mermaid-svg-4PdsrOxly361tShy .edge-pattern-dotted{stroke-dasharray:2;}#mermaid-svg-4PdsrOxly361tShy .marker{fill:#333333;stroke:#333333;}#mermaid-svg-4PdsrOxly361tShy .marker.cross{stroke:#333333;}#mermaid-svg-4PdsrOxly361tShy svg{font-family:\"trebuchet ms\",verdana,arial,sans-serif;font-size:16px;}#mermaid-svg-4PdsrOxly361tShy .label{font-family:\"trebuchet ms\",verdana,arial,sans-serif;color:#333;}#mermaid-svg-4PdsrOxly361tShy .cluster-label text{fill:#333;}#mermaid-svg-4PdsrOxly361tShy .cluster-label span{color:#333;}#mermaid-svg-4PdsrOxly361tShy .label text,#mermaid-svg-4PdsrOxly361tShy span{fill:#333;color:#333;}#mermaid-svg-4PdsrOxly361tShy .node rect,#mermaid-svg-4PdsrOxly361tShy .node circle,#mermaid-svg-4PdsrOxly361tShy .node ellipse,#mermaid-svg-4PdsrOxly361tShy .node polygon,#mermaid-svg-4PdsrOxly361tShy .node path{fill:#ECECFF;stroke:#9370DB;stroke-width:1px;}#mermaid-svg-4PdsrOxly361tShy .node .label{text-align:center;}#mermaid-svg-4PdsrOxly361tShy .node.clickable{cursor:pointer;}#mermaid-svg-4PdsrOxly361tShy .arrowheadPath{fill:#333333;}#mermaid-svg-4PdsrOxly361tShy .edgePath .path{stroke:#333333;stroke-width:2.0px;}#mermaid-svg-4PdsrOxly361tShy .flowchart-link{stroke:#333333;fill:none;}#mermaid-svg-4PdsrOxly361tShy .edgeLabel{background-color:#e8e8e8;text-align:center;}#mermaid-svg-4PdsrOxly361tShy .edgeLabel rect{opacity:0.5;background-color:#e8e8e8;fill:#e8e8e8;}#mermaid-svg-4PdsrOxly361tShy .cluster rect{fill:#ffffde;stroke:#aaaa33;stroke-width:1px;}#mermaid-svg-4PdsrOxly361tShy .cluster text{fill:#333;}#mermaid-svg-4PdsrOxly361tShy .cluster span{color:#333;}#mermaid-svg-4PdsrOxly361tShy div.mermaidTooltip{position:absolute;text-align:center;max-width:200px;padding:2px;font-family:\"trebuchet ms\",verdana,arial,sans-serif;font-size:12px;background:hsl(80, 100%, 96.2745098039%);border:1px solid #aaaa33;border-radius:2px;pointer-events:none;z-index:100;}#mermaid-svg-4PdsrOxly361tShy :root{--mermaid-font-family:\"trebuchet ms\",verdana,arial,sans-serif;}定时任务docker ps -q资源指标采集异常报警监控面板
4.2 格式化输出模板
# 自定义表格输出docker ps --format \"table {{.ID}}\\t{{.Names}}\\t{{.Status}}\\t{{.Size}}\"# JSON格式输出docker ps --format \'{{json .}}\' | jq
五、常见问题排查
5.1 状态异常分析表
docker logs --tail 50
docker inspect
5.2 性能优化查询
# 只查询必要字段docker ps -a --format \"{{.ID}} {{.Names}}\"# 使用grep二次过滤docker ps --no-trunc | grep \"异常关键词\"
六、与编排系统集成
6.1 Kubernetes对比
#mermaid-svg-fhzPI2Gk5dX02ZMa {font-family:\"trebuchet ms\",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg-fhzPI2Gk5dX02ZMa .error-icon{fill:#552222;}#mermaid-svg-fhzPI2Gk5dX02ZMa .error-text{fill:#552222;stroke:#552222;}#mermaid-svg-fhzPI2Gk5dX02ZMa .edge-thickness-normal{stroke-width:2px;}#mermaid-svg-fhzPI2Gk5dX02ZMa .edge-thickness-thick{stroke-width:3.5px;}#mermaid-svg-fhzPI2Gk5dX02ZMa .edge-pattern-solid{stroke-dasharray:0;}#mermaid-svg-fhzPI2Gk5dX02ZMa .edge-pattern-dashed{stroke-dasharray:3;}#mermaid-svg-fhzPI2Gk5dX02ZMa .edge-pattern-dotted{stroke-dasharray:2;}#mermaid-svg-fhzPI2Gk5dX02ZMa .marker{fill:#333333;stroke:#333333;}#mermaid-svg-fhzPI2Gk5dX02ZMa .marker.cross{stroke:#333333;}#mermaid-svg-fhzPI2Gk5dX02ZMa svg{font-family:\"trebuchet ms\",verdana,arial,sans-serif;font-size:16px;}#mermaid-svg-fhzPI2Gk5dX02ZMa .pieCircle{stroke:black;stroke-width:2px;opacity:0.7;}#mermaid-svg-fhzPI2Gk5dX02ZMa .pieTitleText{text-anchor:middle;font-size:25px;fill:black;font-family:\"trebuchet ms\",verdana,arial,sans-serif;}#mermaid-svg-fhzPI2Gk5dX02ZMa .slice{font-family:\"trebuchet ms\",verdana,arial,sans-serif;fill:#333;font-size:17px;}#mermaid-svg-fhzPI2Gk5dX02ZMa .legend text{fill:black;font-family:\"trebuchet ms\",verdana,arial,sans-serif;font-size:17px;}#mermaid-svg-fhzPI2Gk5dX02ZMa :root{--mermaid-font-family:\"trebuchet ms\",verdana,arial,sans-serif;}45%55%查询命令对比docker pskubectl get pods
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 监控面板集成
#mermaid-svg-nCUTry4y8ttuY2Lo {font-family:\"trebuchet ms\",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg-nCUTry4y8ttuY2Lo .error-icon{fill:#552222;}#mermaid-svg-nCUTry4y8ttuY2Lo .error-text{fill:#552222;stroke:#552222;}#mermaid-svg-nCUTry4y8ttuY2Lo .edge-thickness-normal{stroke-width:2px;}#mermaid-svg-nCUTry4y8ttuY2Lo .edge-thickness-thick{stroke-width:3.5px;}#mermaid-svg-nCUTry4y8ttuY2Lo .edge-pattern-solid{stroke-dasharray:0;}#mermaid-svg-nCUTry4y8ttuY2Lo .edge-pattern-dashed{stroke-dasharray:3;}#mermaid-svg-nCUTry4y8ttuY2Lo .edge-pattern-dotted{stroke-dasharray:2;}#mermaid-svg-nCUTry4y8ttuY2Lo .marker{fill:#333333;stroke:#333333;}#mermaid-svg-nCUTry4y8ttuY2Lo .marker.cross{stroke:#333333;}#mermaid-svg-nCUTry4y8ttuY2Lo svg{font-family:\"trebuchet ms\",verdana,arial,sans-serif;font-size:16px;}#mermaid-svg-nCUTry4y8ttuY2Lo .label{font-family:\"trebuchet ms\",verdana,arial,sans-serif;color:#333;}#mermaid-svg-nCUTry4y8ttuY2Lo .cluster-label text{fill:#333;}#mermaid-svg-nCUTry4y8ttuY2Lo .cluster-label span{color:#333;}#mermaid-svg-nCUTry4y8ttuY2Lo .label text,#mermaid-svg-nCUTry4y8ttuY2Lo span{fill:#333;color:#333;}#mermaid-svg-nCUTry4y8ttuY2Lo .node rect,#mermaid-svg-nCUTry4y8ttuY2Lo .node circle,#mermaid-svg-nCUTry4y8ttuY2Lo .node ellipse,#mermaid-svg-nCUTry4y8ttuY2Lo .node polygon,#mermaid-svg-nCUTry4y8ttuY2Lo .node path{fill:#ECECFF;stroke:#9370DB;stroke-width:1px;}#mermaid-svg-nCUTry4y8ttuY2Lo .node .label{text-align:center;}#mermaid-svg-nCUTry4y8ttuY2Lo .node.clickable{cursor:pointer;}#mermaid-svg-nCUTry4y8ttuY2Lo .arrowheadPath{fill:#333333;}#mermaid-svg-nCUTry4y8ttuY2Lo .edgePath .path{stroke:#333333;stroke-width:2.0px;}#mermaid-svg-nCUTry4y8ttuY2Lo .flowchart-link{stroke:#333333;fill:none;}#mermaid-svg-nCUTry4y8ttuY2Lo .edgeLabel{background-color:#e8e8e8;text-align:center;}#mermaid-svg-nCUTry4y8ttuY2Lo .edgeLabel rect{opacity:0.5;background-color:#e8e8e8;fill:#e8e8e8;}#mermaid-svg-nCUTry4y8ttuY2Lo .cluster rect{fill:#ffffde;stroke:#aaaa33;stroke-width:1px;}#mermaid-svg-nCUTry4y8ttuY2Lo .cluster text{fill:#333;}#mermaid-svg-nCUTry4y8ttuY2Lo .cluster span{color:#333;}#mermaid-svg-nCUTry4y8ttuY2Lo div.mermaidTooltip{position:absolute;text-align:center;max-width:200px;padding:2px;font-family:\"trebuchet ms\",verdana,arial,sans-serif;font-size:12px;background:hsl(80, 100%, 96.2745098039%);border:1px solid #aaaa33;border-radius:2px;pointer-events:none;z-index:100;}#mermaid-svg-nCUTry4y8ttuY2Lo :root{--mermaid-font-family:\"trebuchet ms\",verdana,arial,sans-serif;}docker ps -qPrometheusGrafanaAlertManager
十、总结与黄金法则
10.1 查询决策树
#mermaid-svg-CK1kqmwSSKvRJQ36 {font-family:\"trebuchet ms\",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg-CK1kqmwSSKvRJQ36 .error-icon{fill:#552222;}#mermaid-svg-CK1kqmwSSKvRJQ36 .error-text{fill:#552222;stroke:#552222;}#mermaid-svg-CK1kqmwSSKvRJQ36 .edge-thickness-normal{stroke-width:2px;}#mermaid-svg-CK1kqmwSSKvRJQ36 .edge-thickness-thick{stroke-width:3.5px;}#mermaid-svg-CK1kqmwSSKvRJQ36 .edge-pattern-solid{stroke-dasharray:0;}#mermaid-svg-CK1kqmwSSKvRJQ36 .edge-pattern-dashed{stroke-dasharray:3;}#mermaid-svg-CK1kqmwSSKvRJQ36 .edge-pattern-dotted{stroke-dasharray:2;}#mermaid-svg-CK1kqmwSSKvRJQ36 .marker{fill:#333333;stroke:#333333;}#mermaid-svg-CK1kqmwSSKvRJQ36 .marker.cross{stroke:#333333;}#mermaid-svg-CK1kqmwSSKvRJQ36 svg{font-family:\"trebuchet ms\",verdana,arial,sans-serif;font-size:16px;}#mermaid-svg-CK1kqmwSSKvRJQ36 .label{font-family:\"trebuchet ms\",verdana,arial,sans-serif;color:#333;}#mermaid-svg-CK1kqmwSSKvRJQ36 .cluster-label text{fill:#333;}#mermaid-svg-CK1kqmwSSKvRJQ36 .cluster-label span{color:#333;}#mermaid-svg-CK1kqmwSSKvRJQ36 .label text,#mermaid-svg-CK1kqmwSSKvRJQ36 span{fill:#333;color:#333;}#mermaid-svg-CK1kqmwSSKvRJQ36 .node rect,#mermaid-svg-CK1kqmwSSKvRJQ36 .node circle,#mermaid-svg-CK1kqmwSSKvRJQ36 .node ellipse,#mermaid-svg-CK1kqmwSSKvRJQ36 .node polygon,#mermaid-svg-CK1kqmwSSKvRJQ36 .node path{fill:#ECECFF;stroke:#9370DB;stroke-width:1px;}#mermaid-svg-CK1kqmwSSKvRJQ36 .node .label{text-align:center;}#mermaid-svg-CK1kqmwSSKvRJQ36 .node.clickable{cursor:pointer;}#mermaid-svg-CK1kqmwSSKvRJQ36 .arrowheadPath{fill:#333333;}#mermaid-svg-CK1kqmwSSKvRJQ36 .edgePath .path{stroke:#333333;stroke-width:2.0px;}#mermaid-svg-CK1kqmwSSKvRJQ36 .flowchart-link{stroke:#333333;fill:none;}#mermaid-svg-CK1kqmwSSKvRJQ36 .edgeLabel{background-color:#e8e8e8;text-align:center;}#mermaid-svg-CK1kqmwSSKvRJQ36 .edgeLabel rect{opacity:0.5;background-color:#e8e8e8;fill:#e8e8e8;}#mermaid-svg-CK1kqmwSSKvRJQ36 .cluster rect{fill:#ffffde;stroke:#aaaa33;stroke-width:1px;}#mermaid-svg-CK1kqmwSSKvRJQ36 .cluster text{fill:#333;}#mermaid-svg-CK1kqmwSSKvRJQ36 .cluster span{color:#333;}#mermaid-svg-CK1kqmwSSKvRJQ36 div.mermaidTooltip{position:absolute;text-align:center;max-width:200px;padding:2px;font-family:\"trebuchet ms\",verdana,arial,sans-serif;font-size:12px;background:hsl(80, 100%, 96.2745098039%);border:1px solid #aaaa33;border-radius:2px;pointer-events:none;z-index:100;}#mermaid-svg-CK1kqmwSSKvRJQ36 :root{--mermaid-font-family:\"trebuchet ms\",verdana,arial,sans-serif;}运行中全部特定条件需要查询查询范围默认ps-a参数-f过滤--format输出
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\'}