列出 Docker 中的容器
- 列出 Docker 中所有正在執行的容器
- 列出 Docker 中正在執行和退出的容器
- 列出 Docker 中特定數量的容器
- 僅列出 Docker 中已退出的容器
- 在 Docker 中列出最近建立的容器
- 在 Docker 中按照 ID 列出容器
- 在 Docker 中列出容器及其大小
本文將探討用於列出在我們系統中建立的容器的各種命令。這意味著我們應該事先為這些命令建立一些容器來返回值。
列出 Docker 中所有正在執行的容器
我們將從列出正在執行的容器開始。為此,我們可以使用 docker ps
命令。
$ docker ps
此命令列出了當前執行的所有容器,可以在下面示例輸出中的 STATUS 列下看到。如此處所示,我們還可以確定容器已啟動並執行的大致時間量。
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
1c955bac1a84 ubuntu "bash" About a minute ago Up About a minute musing_morse
1296f9b9d330 nginx "/docker-entrypoint.…" 2 minutes ago Up 2 minutes 80/tcp distracted_napier
我們還可以使用 docker container ls
命令返回相同的輸出。
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
1c955bac1a84 ubuntu "bash" 14 minutes ago Up 14 minutes musing_morse
1296f9b9d330 nginx "/docker-entrypoint.…" 15 minutes ago Up 14 minutes 80/tcp distracted_napier
除了 STATUS,還返回以下詳細資訊。
- CONTAINER ID,這是容器的唯一識別符號;
- CONTAINER IMAGE,即我們用來構建該容器的映象;
- 負責執行容器的 COMMAND;
- 主機和容器之間的埠對映。
列出 Docker 中正在執行和退出的容器
除了列出正在執行的容器外,我們還可以列出正在執行和退出的容器。我們需要將 -a
標籤附加到我們之前使用的命令中。
預設情況下,這些命令只顯示正在執行的容器;但是,使用此標籤也可以獲得列出已退出容器的命令。
命令:
$ docker ps -a
輸出:
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
38086474cb6c debian "bash" 4 minutes ago Exited (0) 2 minutes ago epic_jackson
1c955bac1a84 ubuntu "bash" 52 minutes ago Exited (0) About a minute ago musing_morse
1296f9b9d330 nginx "/docker-entrypoint.…" 53 minutes ago Up 58 seconds 80/tcp distracted_napier
在上面的狀態列下的輸出中,你可以注意到前兩個容器沒有執行,而最後一個容器正在執行。
列出 Docker 中特定數量的容器
我們還可以在我們的系統中顯示特定數量的容器。假設我們只想顯示前兩個容器。我們可以通過在上面使用的命令旁邊使用 -n
標籤來做到這一點。
這將同時顯示 running 和 exited 但不超過指定的數量。
命令:
$ docker container ls -n 2
輸出:
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
38086474cb6c debian "bash" 31 minutes ago Exited (0) 29 minutes ago epic_jackson
1c955bac1a84 ubuntu "bash" About an hour ago Exited (0) 27 minutes ago musing_morse
同樣,使用 docker ps
命令還將列出我們在下面指定的容器的確切數量。以下是我們如何實現它。
命令:
$ docker ps -a -n 2
輸出:
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
38086474cb6c debian "bash" 33 minutes ago Exited (0) 31 minutes ago epic_jackson
1c955bac1a84 ubuntu "bash" About an hour ago Exited (0) 29 minutes ago musing_morse
僅列出 Docker 中已退出的容器
使用過濾器,我們還可以僅列出當前未執行的容器。使用 -f
標籤來指定我們想要滿足的條件,在這種情況下,我們只希望返回具有退出狀態的容器。
如果我們希望基於其他內容返回容器,我們還可以新增多個過濾器。這是我們如何列出具有退出狀態的容器的方法。
命令:
$ docker container ls --filter "status=exited"
輸出:
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
38086474cb6c debian "bash" 51 minutes ago Exited (0) 49 minutes ago epic_jackson
1c955bac1a84 ubuntu "bash" 2 hours ago Exited (0) 48 minutes ago musing_morse
在 Docker 中列出最近建立的容器
也可以使用 -latest
標籤返回最新的容器。這將返回我們最近建立的當前容器。
命令:
$ docker container ls --latest
輸出:
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
38086474cb6c debian "bash" 55 minutes ago Exited (0) 53 minutes ago epic_jackson
在 Docker 中按照 ID 列出容器
我們還可以根據容器的 ID 列出容器,我們可以使用 -q
來做到這一點,也稱為 quiet 選項,如下所示。
命令:
$ docker container ls -q
輸出:
d780996c499a
f7509cd49142
72c8debe5efa
在 Docker 中列出容器及其大小
我們還可以在容器大小旁邊列出容器。我們可以確定那些佔用最大記憶體大小的人,以及其他細節。
我們可以通過使用 -s
標籤來實現這一點,也稱為尺寸標籤。
命令:
$ docker container ls -s
輸出:
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES SIZE
d780996c499a 4ac4842c584e "/opt/sonarqube/bin/…" 3 minutes ago Up 3 minutes 9000/tcp amazing_benz 73.2kB (virtual 520MB)
f7509cd49142 5285cb69ea55 "docker-entrypoint.s…" 3 minutes ago Up 3 minutes 27017/tcp boring_wilson 0B (virtual 698MB)
72c8debe5efa rabbitmq "docker-entrypoint.s…" 4 minutes ago Up 4 minutes 4369/tcp, 5671-5672/tcp, 15691-15692/tcp, 25672/tcp determined_curran 0B (virtual 221MB)
Isaac Tony is a professional software developer and technical writer fascinated by Tech and productivity. He helps large technical organizations communicate their message clearly through writing.
LinkedIn