欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Docker?磁盤占用分析和清理方法示例小結(jié)

 更新時(shí)間:2025年07月21日 08:54:25   作者:曾左  
本文介紹Docker磁盤占用分析與清理方法,涵蓋鏡像、容器、卷及構(gòu)建緩存的資源排查,提供清理未使用資源的命令及選項(xiàng),如docker system prune和docker image prune,并解釋懸空鏡像的產(chǎn)生原因及處理技巧,感興趣的朋友一起看看吧

本地或測(cè)試環(huán)境使用 Docker 時(shí),常出現(xiàn) Docker 占用磁盤空間大,導(dǎo)致系統(tǒng)磁盤資源不足等問(wèn)題?;诖?,總結(jié)了 Docker 磁盤占用分析及清理方法。

一、分析方法

1. 使用 docker system 分析占用整體分布

[root@linux7 data]# docker system df 
TYPE                TOTAL               ACTIVE              SIZE                RECLAIMABLE
Images              181                 81                  182.2GB             131.9GB (72%)
Containers          349                 23                  565GB               156.7GB (27%)
Local Volumes       91                  37                  4.706GB             2.67MB (0%)
Build Cache         11                  0                   199.7MB             199.7MB
[root@linux7 data]# docker system df -v  # -v 輸出分布明細(xì)

(1)TYPE:表示 Docker 資源類型,包括 Images(鏡像文件)、Containers(容器)、Local Volumes(本地?cái)?shù)據(jù)卷)和 Build Cache(構(gòu)建緩存)。

(2)TOTAL:表示該類型資源的總數(shù)量。

(3)ACTIVE:表示當(dāng)前正在使用的資源數(shù)量。

(4)SIZE:表示該類型資源占用的磁盤空間總量。

(5)RECLAIMABLE:表示未占用可以回收的磁盤空間大小及百分比。

2. 分析各類資源具體占用

(1)查看鏡像占用并其排序

[root@linux7 data]# docker images --format "{{.Repository}}:{{.Tag}}\t{{.Size}}" | sort -k 2 -h -r

(2)查看容器占用并其排序

[root@linux7 data]# docker ps -a --format "{{.ID}}\t{{.Names}}\t{{.Size}}" | sort -k 3 -h -r 

(3)查看卷占用

[root@linux7 data]# docker volume ls # 查看卷占用
[root@linux7 data]# docker volume inspect <VOLUME_NAME>  # 查看具體卷詳情
[root@linux7 data]# du -sh <MOUNT_POINT> #查看卷真實(shí)占用磁盤大小

二、清理方法

1. 清理未運(yùn)行的容器

(1) 列出所有容器

[root@linux7 data]# docker ps
CONTAINER ID   IMAGE          COMMAND       STATUS      NAMES
a1b2c3d4e5f6   nginx:latest   "nginx -g"    Exited      my-nginx
[root@linux7 data]# docker ps -a # -a 輸出所有容器,含已停止

(2) 清理指定容器

[root@linux7 data]# docker rm <CONTAINER_ID>  # 清理已停止的容器
[root@linux7 data]# docker rm -f <CONTAINER_ID>  # 強(qiáng)制清理(運(yùn)行中的容器也會(huì)被停止并清理)

(3) 清理所有已停止的容器

[root@linux7 data]#  docker container prune # 清理所有處于停止?fàn)顟B(tài)的容器
[root@linux7 data]#  docker container prune -f # 強(qiáng)制清理所有處于停止?fàn)顟B(tài)的容器,跳過(guò)確認(rèn)
[root@linux7 data]#  docker container prune --filter "until=24h" # 僅清理 24 小時(shí)前停止的容器

2. 清理未使用的鏡像

(1) 列出所有鏡像

[root@linux7 data]# docker images
REPOSITORY          TAG       IMAGE ID       CREATED        SIZE
nginx               latest    abc123456      2 weeks ago    133MB
ubuntu              20.04     def789012      1 month ago    72.8MB

(2) 清理指定鏡像

[root@linux7 data]# docker rmi <IMAGE_ID>  # 按 ID 清理
[root@linux7 data]# docker rmi -f <IMAGE_ID> # 強(qiáng)制清理(即使被容器引用)
[root@linux7 data]# docker rmi nginx:latest  # 按名稱清理

(3) 清理所有未使用的鏡像

命令格式:docker image prune [OPTIONS],默認(rèn)情況下會(huì)清理所有未被容器引用的懸空鏡像(dangling images)。

常用選項(xiàng):

-a, --all:清理所有未被使用的鏡像,含懸空鏡像。

-f, --force:不提示確認(rèn),直接清理。

--filter:支持條件過(guò)濾需清理的鏡像。

--dry-run:僅顯示將要清理的鏡像,不實(shí)際執(zhí)行清理。

使用示例:

[root@linux7 data]# docker image prune # 清理懸空鏡像
[root@linux7 data]# docker image prune -a # 清理所有未被使用的鏡像,含懸空鏡像
[root@linux7 data]# docker image prune -af # 強(qiáng)制清理不提示確認(rèn)
[root@linux7 data]# docker image prune --filter "until=24h" # 使用過(guò)濾器清理
[root@linux7 data]# docker image prune --dry-run # 僅顯示將要清理的鏡像,不實(shí)際執(zhí)行清理,清理操作不可逆,【建議】先使用`--dry-run`查看將要清理的鏡像

3. 清理未使用的網(wǎng)絡(luò)

(1) 列出所有網(wǎng)絡(luò)

[root@linux7 data]# docker network ls
NETWORK ID          NAME                DRIVER              SCOPE
9e14a4176c29        bridge              bridge              local
65b36b928672        host                host                local
99c1c095900c        none                null                local
[root@linux7 data]# docker network inspect host # 查看

(2) 清理指定網(wǎng)絡(luò)

[root@linux7 data]# docker network rm <NETWORK_ID | NAME> <NETWORK_ID | NAME>  # 清理已停止的網(wǎng)絡(luò)

(3) 清理所有已停止的網(wǎng)絡(luò)

[root@linux7 data]# docker network prune

4. 清理 Docker 所有未使用的資源

docker system prune 是 Docker 提供的系統(tǒng)級(jí)清理命令,主要用于清理不再使用的 Docker 對(duì)象(懸空資源)。

清理范圍:

(1)停止的容器

(2)未被任何容器引用的網(wǎng)絡(luò)

(3)懸空的鏡像(未被標(biāo)記且未被任何容器引用的鏡像層)

(4)懸空的構(gòu)建緩存

參數(shù)詳解:

(1)--all / -a:清理所有未使用的鏡像(而不僅僅是懸空鏡像)

(2)--force / -f:跳過(guò)確認(rèn)提示直接執(zhí)行清理

(3)--volumes:清理未被容器使用的卷,務(wù)必謹(jǐn)慎

(4)--filter:按條件過(guò)濾要?jiǎng)h除的對(duì)象

示例:

[root@linux7 data]# docker system prune # 標(biāo)準(zhǔn)清理
[root@linux7 data]# docker system prune -a -f # 強(qiáng)制清理所有未使用資源
[root@linux7 data]# docker system prune --volumes # 清理未被容器使用的卷,務(wù)必謹(jǐn)慎
[root@linux7 data]# docker system prune --filter "until=48h" # 清理超過(guò) 48 小時(shí)未被使用的資源。

三、相關(guān)知識(shí)點(diǎn)

1. 懸空鏡像(Dangling Images)

(1)定義:指沒有標(biāo)簽且沒有被任何容器引用的鏡像層。

(2)特征:通常顯示為<none>:<none>的鏡像。

(3)查看方法:

[root@linux7 data]# docker images -f "dangling=true"

(4)產(chǎn)生場(chǎng)景:

多階段構(gòu)建時(shí)的中間鏡像:當(dāng)使用 Dockerfile 進(jìn)行多階段構(gòu)建時(shí),每個(gè)FROM語(yǔ)句都會(huì)產(chǎn)生一個(gè)中間鏡像。構(gòu)建完成后,這些中間鏡像會(huì)變成懸空狀態(tài)。

構(gòu)建失敗殘留:構(gòu)建過(guò)程中如果失敗,可能會(huì)留下未完成的鏡像層,這些也會(huì)成為懸空鏡像。

重新構(gòu)建同名鏡像:當(dāng)構(gòu)建一個(gè)與現(xiàn)有鏡像同名但不同內(nèi)容的新鏡像時(shí),舊鏡像會(huì)失去標(biāo)簽變成懸空鏡像。

鏡像標(biāo)簽變更:使用docker tag命令修改鏡像標(biāo)簽后,原鏡像如果沒有其他標(biāo)簽引用,就會(huì)變成懸空鏡像。

使用docker commit創(chuàng)建新鏡像:基于容器創(chuàng)建新鏡像后,原基礎(chǔ)鏡像如果沒有其他引用,可能變成懸空狀態(tài)。

2. 未使用鏡像(Unused Images)

(1)定義:指當(dāng)前沒有被任何容器使用的鏡像(無(wú)論是否有標(biāo)簽),所以所有懸空鏡像都屬于未使用鏡像。

(2)特征:可能有明確的鏡像標(biāo)簽;但沒有任何運(yùn)行或停止的容器基于該鏡像。

到此這篇關(guān)于Docker 磁盤占用分析和清理方法的文章就介紹到這了,更多相關(guān)Docker 磁盤占用內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • 解決docker拉取鏡像報(bào)錯(cuò):error pulling image configuration:(kafka)

    解決docker拉取鏡像報(bào)錯(cuò):error pulling image configurat

    在使用Docker拉取Kafka鏡像時(shí)可能會(huì)遇到"error pulling image configuration"的錯(cuò)誤,這可以通過(guò)編輯Docker配置文件并重啟Docker服務(wù)來(lái)解決,具體步驟包括:1. 編輯Docker配置文件;2. 使用命令systemctl restart docker重啟Docker服務(wù)
    2024-11-11
  • 詳解Docker 容器跨主機(jī)多網(wǎng)段通信解決方案

    詳解Docker 容器跨主機(jī)多網(wǎng)段通信解決方案

    這篇文章主要介紹了Docker 容器跨主機(jī)多網(wǎng)段通信解決方案,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2020-08-08
  • Ubuntu Docker安裝并使用的方法

    Ubuntu Docker安裝并使用的方法

    最近在學(xué)習(xí)docker,本文就從入門開始介紹Ubuntu Docker安裝并使用的方法,具有一定的參考價(jià)值,感興趣的可以了解一下
    2021-09-09
  • docker常用命令及參數(shù)的用法解讀

    docker常用命令及參數(shù)的用法解讀

    這篇文章主要介紹了docker常用命令及參數(shù)的用法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2025-07-07
  • Docker容器使用方法詳解

    Docker容器使用方法詳解

    容器是基于鏡像創(chuàng)建的,容器中的進(jìn)程依賴于鏡像中的文件,那么本篇文章我們就來(lái)深入學(xué)習(xí)容器的基本操作方法,通過(guò)示例來(lái)加深各位看官對(duì)docker容器操作的理解以及記憶,需要的朋友可以參考下
    2022-07-07
  • Docker中mysql鏡像保存與導(dǎo)入的方法詳解

    Docker中mysql鏡像保存與導(dǎo)入的方法詳解

    Docker 的 MySQL 鏡像保存通常有兩種場(chǎng)景:一種是保存鏡像本身的修改(如配置、初始化數(shù)據(jù)),另一種是持久化保存容器運(yùn)行時(shí)產(chǎn)生的數(shù)據(jù)(如數(shù)據(jù)庫(kù)表、用戶數(shù)據(jù)),這篇文章主要介紹了Docker中mysql鏡像保存與導(dǎo)入的方法詳解,需要的朋友可以參考下
    2025-05-05
  • Docker v1.13 新功能介紹

    Docker v1.13 新功能介紹

    本篇文章主要介紹了Docker v1.13 新功能介紹,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2017-02-02
  • Docker ps命令詳解

    Docker ps命令詳解

    Docker ps是用于查看Docker服務(wù)器中容器狀態(tài)(運(yùn)行/暫停/停止),及批量獲取容器基本信息最常用的指令,ps命令具有很多可用的參數(shù),本文給大家介紹Docker ps命令,感興趣的朋友一起看看吧
    2023-11-11
  • Docker容器的網(wǎng)絡(luò)管理和網(wǎng)絡(luò)隔離的實(shí)現(xiàn)

    Docker容器的網(wǎng)絡(luò)管理和網(wǎng)絡(luò)隔離的實(shí)現(xiàn)

    這篇文章主要介紹了Docker容器的網(wǎng)絡(luò)管理和網(wǎng)絡(luò)隔離的實(shí)現(xiàn),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2020-05-05
  • docker中的jenkins之流水線構(gòu)建項(xiàng)目步驟詳解

    docker中的jenkins之流水線構(gòu)建項(xiàng)目步驟詳解

    jenkins有2種流水線分為聲明式流水線與腳本化流水線,腳本化流水線是jenkins舊版本使用的流水線腳本,新版本Jenkins推薦使用聲明式流水線,本文給大家介紹docker中的jenkins之流水線構(gòu)建項(xiàng)目,感興趣的朋友一起看看吧
    2023-08-08

最新評(píng)論