返回部落格

清理 Docker 資源 – 映像檔、容器和資料卷

清理 Docker 資源 – 映像檔、容器和資料卷

Docker 是當今企業組織中最受歡迎的產品之一。它使容器中管理應用程式的過程變得非常簡單。由於 Docker 使用容器,它為應用程式提供了可移植性、效能、敏捷性、擴充性和隔離性。容器比虛擬機更具可移植性,且需要更少的資源。在使用 Docker 的過程中,您往往會累積大量未使用的映像檔、資料卷和容器。這些資源會使輸出變得雜亂並消耗大量的磁碟空間。在本教學中,您將學習如何清理 Docker 資源並整理您的伺服器。

全部清除

您可以使用單一指令清理所有 Docker 資源,包括映像檔、已停止的容器、資料卷和網路。您可以選擇以下其中一個選項:

參考:懸空資源是指那些與任何執行中的容器無關的資源。

選項 1:
這將移除:
– 所有已停止的容器
– 所有未被至少一個容器使用的網路
– 所有懸空的映像檔
– 所有懸空的建置快取

選項 2:
這將移除:
– 所有已停止的容器
– 所有未被至少一個容器使用的網路
– 所有未與至少一個容器關聯的映像檔
– 所有建置快取

選項 3:
這將移除:
– 所有已停止的容器
– 所有未被至少一個容器使用的網路
– 所有未被至少一個容器使用的資料卷
– 所有未與至少一個容器關聯的映像檔
– 所有建置快取

docker prune options

移除 Docker 映像檔

要移除特定的映像檔,您需要知道其映像檔 ID。您可以使用 “docker images” 指令來尋找 Docker 容器的映像檔 ID,正如我們在關於 如何在 Ubuntu 上安裝 & 操作 Docker 的教學中所解釋的.

列出映像檔:
移除映像檔:
docker rmi

移除懸空的映像檔:

當您建置 Docker 映像檔時,它通常包含多個映像檔層。懸空的映像檔是指與任何已標記的映像檔都沒有關係的層。懸空的映像檔會消耗磁碟空間,但沒有任何作用。可以使用以下指令列出它們:

您可以使用以下指令移除這些映像檔:

根據特定模式移除映像檔

您可以使用 “grep” 指令輕鬆找到符合特定模式的映像檔,然後使用 “awk” 將其傳遞給 “docker rmi” 指令來移除它們。您可以使用以下指令,並將其中的 “pattern” 替換為您要尋找的模式:

列出:
移除:
移除所有映像檔

您可以使用以下指令列出所有 Docker 映像檔:

一旦您決定將它們全部移除,可以使用此指令將它們全部刪除:

 

移除容器:

既然您已經清除了所有不需要的映像檔,現在是時候刪除一些不需要的容器了。

要列出容器,您可以使用以下指令:

要移除容器,請使用以下指令:

docker rm container
暫時執行容器

如果您只想執行容器一次,可以選擇在容器退出時自動將其刪除。您可以使用以下指令來執行此操作:

移除已退出的容器

您可以使用 “-f” 參數來篩選已退出的容器。使用以下指令列出已退出的容器:

篩選出來後,使用此指令將它們移除:

根據特定模式移除容器

您可以使用 “grep” 指令輕鬆找到符合特定模式的容器,然後使用 “awk” 將其傳遞給 “docker rm” 指令來移除它們。您可以使用以下指令,並替換其中的 “pattern”。

列出:
移除:
停止並移除所有容器

在執行此操作之前,請先列出伺服器上的所有容器進行檢視。只有在您確定要刪除它們時,才執行以下指令:

列出容器以進行檢視:

停止並移除:

移除資料卷

移除特定資料卷

要移除特定的資料卷,您需要知道該資料卷的名稱。若要查詢,您可以列出所有資料卷。

列出:
移除:
docker volume rm
移除懸空資料卷

當您移除容器時,與其連結的資料卷不會自動被移除。這種資料卷被稱為懸空資料卷(dangling volume)。若要定位此類資料卷,請在指令中使用篩選參數:

要移除所有此類懸空資料卷,請使用以下指令:

 

移除容器及其未命名資料卷

如果您在執行容器時建立了匿名或未命名的資料卷,您可以使用單一指令將其與容器一起移除。但是,如果該資料卷是有名稱的,則只會刪除容器。

 

有了這份速查表,您現在應該已經準備好清理伺服器上不需要的 Docker 資源了。

祝您使用愉快!

author

Akshay Nagpal

作者 · CloudSigma

Preslav Dobrev 是 CloudSigma 的創意設計師,專注於透過傳統與創新行銷渠道建立一致的企業形象。他擅長將藝術願景與策略行銷相融合,創造具有影響力的品牌敘事。

留言

目前尚無留言。成為第一個留言的人吧。