列出 Docker 中的容器

Isaac Tony 2023年1月30日
  1. 列出 Docker 中所有正在執行的容器
  2. 列出 Docker 中正在執行和退出的容器
  3. 列出 Docker 中特定數量的容器
  4. 僅列出 Docker 中已退出的容器
  5. 在 Docker 中列出最近建立的容器
  6. 在 Docker 中按照 ID 列出容器
  7. 在 Docker 中列出容器及其大小
列出 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
Isaac Tony avatar Isaac Tony avatar

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

相關文章 - Docker Container