HOWTO · Docker

列出 Docker 中的容器

本教程演示瞭如何列出我們在系統中建立的 docker 容器。

本頁內容

使用 Docker CLI 列出容器,再依需求選擇選項,例如只看執行中的容器、也包含已停止的容器、限制結果數量,或只顯示特定欄位。這些命令會查詢目前內容所選取的 Docker daemon。以下範例展示的是命令語法;實際結果取決於該 daemon 上有哪些容器,因此不提供固定輸出。

列出 Docker 中所有正在執行的容器

執行 docker ps 可列出目前正在執行的容器。等效命令是 docker container ls:

docker ps

預設表格會列出容器 ID、映像、啟動命令、建立時間、狀態、已發布或已公開的連接埠,以及名稱。STATUS 欄會顯示容器已持續執行多久。連接埠項目描述連接埠對應或公開的連接埠;單憑這些資訊無法判斷服務是否能從你的電腦連線。

如果偏好使用命令群組形式,可以執行 docker container ls。它會傳回與 docker ps 相同的預設容器集合和欄位。

列出 Docker 中正在執行和已退出的容器

加入 -a(或 --all),即可同時列出已停止和正在執行的容器:

docker ps -a

已停止的容器仍會列在結果中,狀態可能顯示為 Exited (0),括號中的數字是結束代碼。執行中的容器狀態則以 Up 開頭。這個選項只會改變納入結果的狀態,不會啟動已停止的容器。如果 daemon 上沒有任何容器,表格只會顯示標題列。

列出 Docker 中指定數量的容器

搭配數量使用 -n,可列出最近建立的容器,最多不超過指定數量,且不受容器狀態限制。例如,docker container ls -n 2 最多會傳回兩個容器;使用這個選項時,不必加上 -a 才能納入已停止的容器。指定數量是上限,因此若容器不足,列出的資料列也會較少。若只要限制已退出的容器數量,可將數量與 --filter "status=exited" 搭配,例如 docker ps -n 2 --filter "status=exited"。

只列出 Docker 中已退出的容器

依狀態篩選,即可找出記錄狀態為已退出的已停止容器:

docker container ls -a --filter "status=exited"

-a 會先將非執行中的容器納入候選集合,接著狀態篩選條件會選出狀態為已退出的容器。此篩選條件不會包含其他已停止狀態。Docker 篩選條件可以組合使用;請確認每個條件都符合你要查找的結果。

列出 Docker 中最近建立的容器

使用 --latest(或 -l)可顯示最近建立的單一容器:

docker container ls --latest

如果你需要最新建立的容器項目,這個選項就很實用,也會納入已停止的容器。它不會列出多個最近建立的容器;若要指定數量,請使用 -n。如果要明確從所有狀態中選出最新建立的容器,可執行 docker ps -a --latest。

列出 Docker 中的容器 ID

加入 -q(或 --quiet)即可只輸出容器 ID:

docker container ls -q

這種精簡格式適合將列出的 ID 傳給其他命令,或存入 shell 變數。預設仍只會列出正在執行的容器;加入 -a 才會納入已停止的容器。安靜模式的輸出不含名稱、狀態及其他表格欄位;若要檢視這些詳細資訊,請使用一般列出方式。

列出 Docker 容器及其大小

加入 -s(或 --size)即可在清單中顯示大小資訊:

docker container ls -s

SIZE 欄會顯示容器的可寫入層大小及虛擬大小。可寫入層的數值代表在該容器中所做的變更;虛擬大小也會計入容器使用的映像層。這些數值描述的是儲存空間,不是目前的記憶體用量。若要查看 RAM 用量,請使用監控命令或工具。和預設清單一樣,這個命令只會顯示正在執行的容器;加入 -a 才會納入已停止的容器。