目錄
1 docker ps命令概述
1.1 命令定位與作用
1.2 命令基本語法
2 基礎參數詳解
2.1 默認輸出解析
2.2 核心參數解析
2.2.1 -a, --all
2.2.2 -q, --quiet
2.2.3 --no-trunc
3 高級過濾與格式化
3.1 過濾器(--filter)詳解
3.1.1 常用過濾條件
3.1.2 實際應用示例
3.2 格式化輸出(--format)
3.2.1 常用占位符
3.2.2 使用示例
4 狀態信息深度解析
4.1 容器狀態機
4.2 狀態字段詳解
5 實用技巧與組合命令
5.1 查看容器大小
5.2 時間格式控制
5.3 與其他命令組合
5.3.1 批量停止容器
5.3.2 清理所有停止的容器
5.3.3 查看最新創建的容器
6 生產環境建議
6.1 監控建議
6.2 安全建議
6.3 性能優化
7 命令原理深度解析
7.1 Docker客戶端-服務端交互
7.2 數據來源分析
8 總結
1 docker ps命令概述
1.1 命令定位與作用
- docker ps是Docker容器管理中最基礎且最常用的命令之一,它用于列出容器信息
- 作為Docker管理員,80%的容器管理操作都會從docker ps開始,它提供了容器運行狀態的全局視圖

1.2 命令基本語法
docker ps [OPTIONS]
2 基礎參數詳解
2.1 默認輸出解析
- 不帶任何參數執行時,docker ps顯示正在運行的容器:
[root@node1 ~]# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
f0762029c4aa bitnami/kafka:3.6 "/opt/bitnami/script…" 2 months ago Up 3 days (Paused) 0.0.0.0:9092->9092/tcp, :::9092->9092/tcp kafka
d821a448f5b2 bitnami/zookeeper:3.8 "/opt/bitnami/script…" 2 months ago Up 3 days 2888/tcp, 3888/tcp, 0.0.0.0:2181->2181/tcp, :::2181->2181/tcp, 8080/tcp zookeeper
[root@node1 ~]#
- CONTAINER ID:容器唯一標識(前12位)
- IMAGE:容器使用的鏡像
- COMMAND:容器啟動命令
- CREATED:創建時間
- STATUS:運行狀態
- PORTS:端口映射
- NAMES:容器名稱
2.2 核心參數解析
2.2.1 -a, --all
- 作用:顯示所有容器(包括停止的)
- 示例:
docker ps -a
輸出變化:
- 增加Exited狀態的容器
- 顯示完整的生命周期視圖
2.2.2 -q, --quiet
- 作用:僅顯示容器ID
使用場景:
- 批量操作容器時獲取ID列表
- 腳本編程中處理容器ID
- 示例:
docker ps -q
2.2.3 --no-trunc
- 作用:顯示完整信息(不截斷)
- 示例:
docker ps --no-trunc
輸出變化:
- 顯示完整的CONTAINER ID(64字符)
- 顯示完整的COMMAND命令
3 高級過濾與格式化
3.1 過濾器(--filter)詳解
Docker提供了強大的過濾系統,可以基于多種條件篩選容器。
3.1.1 常用過濾條件

3.1.2 實際應用示例
- 查找所有退出的容器:
docker ps -a --filter "status=exited"
- 查找基于ubuntu鏡像的容器:
docker ps --filter "ancestor=ubuntu"
- 查找帶有特定標簽的容器:
docker ps --filter "label=environment=production"
3.2 格式化輸出(--format)
3.2.1 常用占位符
占位符 | 描述 |
.ID | 容器ID |
.Image | 鏡像名稱 |
.Command | 啟動命令 |
.RunningFor | 運行時長 |
.Status | 狀態信息 |
.Ports | 端口映射 |
.Names | 容器名稱 |
.Labels | 所有標簽 |
.Label | 特定標簽 |
3.2.2 使用示例
- 表格形式輸出:
docker ps --format "table {{.ID}}\t{{.Names}}\t{{.Status}}"
JSON格式輸出:
docker ps --format '{{json .}}'
- 自定義簡潔輸出:
docker ps --format "Container {{.ID}} is {{.Status}} ({{.Image}})"
4 狀態信息深度解析
4.1 容器狀態機

4.2 狀態字段詳解
- Up [time]:運行中,顯示持續時間
- Exited ([code]):已退出,顯示退出碼
- Created:已創建未啟動
- Restarting:重啟中
- Paused:已暫停
- Dead:異常終止
5 實用技巧與組合命令
5.1 查看容器大小
docker ps -s
5.2 時間格式控制
- 使用--format配合時間函數:
docker ps --format "table {{.ID}}\t{{.Names}}\t{{.RunningFor}}\t{{.Status}}"
- 自定義時間格式:
docker ps --format "{{.ID}} {{.CreatedAt}}"
5.3 與其他命令組合
5.3.1 批量停止容器
docker stop $(docker ps -aq)
5.3.2 清理所有停止的容器
docker rm $(docker ps -aq -f status=exited)
5.3.3 查看最新創建的容器
docker ps -n 3
6 生產環境建議
6.1 監控建議
- 定期檢查異常狀態容器
docker ps -a --filter "status=exited" --filter "status=dead"
- 監控重啟次數過多的容器
docker ps -a --filter "status=restarting"
6.2 安全建議
- 限制docker ps輸出中的敏感信息
- 使用標簽標記生產環境容器
docker ps --filter "label=environment=production"
- 定期審計容器狀態變化
6.3 性能優化
- 對大數量容器使用過濾條件
- 在腳本中使用-q參數減少輸出處理
- 緩存頻繁使用的查詢結果
7 命令原理深度解析
7.1 Docker客戶端-服務端交互

7.2 數據來源分析
docker ps 數據主要來自:
- 容器元數據:/var/lib/docker/containers/
- 運行時狀態:通過containerd/api獲取
- 網絡配置:從網絡命名空間收集
- 存儲驅動:獲取容器大小信息
8 總結
- 基礎查詢:docker ps默認顯示運行中容器
- 全面視圖:-a參數顯示所有狀態容器
- 高效過濾:--filter實現精準篩選
- 自定義輸出:--format靈活控制顯示格式
通過掌握docker ps及其各種參數組合,可以高效地管理和監控Docker容器,為后續的容器運維工作打下堅實基礎。