最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

docker垃圾清理方式

 更新時(shí)間:2025年03月06日 09:13:59   作者:R-sz  
文章主要介紹了如何刪除Docker鏡像和容器、清理Docker磁盤空間以及配置Docker日志大小,通過這些方法可以有效地管理Docker資源,避免磁盤空間不足的問題

一.docker鏡像與容器刪除

docker images    #查看所以鏡像
docker ps      #查看正在運(yùn)行的容器
docker ps -a   #查看所有容器(無論是否在運(yùn)行)  
docker ps -a -q   #加上-q只顯示id

docker stop 容器名或id   #停止容器
docker rm 容器名或id    #刪除容器
docker rm -f 容器名或id    #強(qiáng)制刪除容器
docker rmi 鏡像名加上標(biāo)簽或id   #刪除鏡像
docker rmi -f 鏡像名加上標(biāo)簽或id  #強(qiáng)制刪除鏡像
docker rmi $(docker images | grep "<none>" )  
#使用grep匹配刪除所有為none的容器
docker rmi $(docker images -q)
# 要?jiǎng)h除全部image

二.docker磁盤空間清理

1.使用docker system清理

docker system df命令查看docker占用的磁盤空間,類似linux的df命令

TYPE            TOTAL     ACTIVE    SIZE      RECLAIMABLE
Images          18        6         2.508GB   1.892GB (75%)
Containers      19        2         275.8MB   275.8MB (99%)
Local Volumes   95        3         140.9kB   140.9kB (100%)
Build Cache     0         0         0B        0B

可以看到,Docker鏡像占用了2.5GB磁盤,Docker容器占用了275.8MB磁盤,Docker數(shù)據(jù)卷占用了一點(diǎn)磁盤。

  • docker system prune命令可以用于清理磁盤,刪除關(guān)閉的容器、無用的數(shù)據(jù)卷和網(wǎng)絡(luò),以及dangling鏡像(即無tag的鏡像)。
  • docker system prune -a命令清理得更加徹底,可以將沒有容器使用Docker鏡像都刪掉。這個(gè)很危險(xiǎn),一般不用

2. 手動(dòng)清理Docker鏡像/容器/數(shù)據(jù)卷

對(duì)于舊版的Docker(版本1.13之前),是沒有docker system命令的

對(duì)于docker而言,一點(diǎn)點(diǎn)的容器鏡像空間是沒有多少的,日志是大頭

所以刪除日志才是王道(刪之前要考慮清楚哦)

在linux上,Docker的所有相關(guān)文件,包括鏡像、容器等一般都保存在/var/lib/docker/目錄中:

使用du命令查看占用

du -hs /var/lib/docker/
3.4G    /var/lib/docker/

剛建立不是很多,但是還是有點(diǎn)大的

使用du命令繼續(xù)查看,可以定位到真正占用這么多磁盤的目錄

3.4G    /var/lib/docker/overlay2

發(fā)現(xiàn)是overlay2占用的,overlay2 是 Docker 默認(rèn)的存儲(chǔ)驅(qū)動(dòng)之一,主要用于管理容器的文件系統(tǒng)層(Layer)

它存儲(chǔ)的是 鏡像層和容器層的數(shù)據(jù),這個(gè)一般不直接清理,通過刪除容器和鏡像清理

但是上次在云服務(wù)器上有個(gè)服務(wù)宕機(jī)了,一查發(fā)現(xiàn)是空間不夠?qū)е聰?shù)據(jù)庫連不上,趕緊釋放了一些資源

后面發(fā)現(xiàn)是/var/lib/docker/containers占了200多G

發(fā)現(xiàn)是一個(gè)比賽平臺(tái)的日志占用了190多G這就對(duì)了,每天請(qǐng)求這么多,日志不多才怪

使用truncate命令,可以將容器的日志文件“清零”:

truncate -s 0 /var/lib/docker/containers/容器id/*-json.log

當(dāng)然,這個(gè)命令只是臨時(shí)有作用,日志文件遲早又會(huì)漲回來。要從根本上解決問題,需要限制容器的日志文件大小。這個(gè)可以通過配置日志的max-size來實(shí)現(xiàn),可以通過容器的docker-compose配置文件我是gzctf平臺(tái),為 gzctf 和 db 服務(wù)添加 logging 配置:

 logging:
      driver: "json-file"
      options:
        max-size: "10g"
        max-file: "3"

重啟容器之后,其日志文件的大小就被限制在30GB,分三個(gè)文件,再也不用擔(dān)心了!

在重啟docker,刷新磁盤狀態(tài)

三、Docker目錄/var/lib/docker/containers文件太大

Docker在不重建容器的情況下,日志文件默認(rèn)會(huì)一直追加,時(shí)間一長(zhǎng)會(huì)逐漸占滿服務(wù)器的硬盤的空間,內(nèi)存消耗也會(huì)一直增加,我們要加以控制

1. 查出占用磁盤較大的文件

Docker 的日志文件存在 /var/lib/docker/containers 目錄中,通過下面的命令可以將日志文件夾根據(jù)升序的方式羅列出來。

sudo du -d1 -h /var/lib/docker/containers | sort -h

2. 清理單個(gè)文件

感覺哪個(gè)容器的日志太大就清理哪個(gè)

sudo sh -c "cat /dev/null > 文件的決定地址"

這只是臨時(shí)解決的方式,最好是創(chuàng)建容器時(shí)就控制日志的大小.

啟動(dòng)容器時(shí),我們可以通過參數(shù)來控制日志的文件個(gè)數(shù)和單個(gè)文件的大小

# max-size 最大數(shù)值
# max-file 最大日志數(shù)
$ docker run -it --log-opt max-size=10g --log-opt max-file=3 redis
#在dockerfile目錄內(nèi)

一兩個(gè)容器還好,但是如果有很多容器需要管理,這樣就很不方便了,最好還是可以統(tǒng)一管理

3. 全局配置

創(chuàng)建或修改文件 /etc/docker/daemon.json,并增加以下配置

{
    "log-driver":"json-file",
    "log-opts":{
        "max-size" :"50m","max-file":"1"
    }
}

這個(gè)配置是用于 Docker 日志驅(qū)動(dòng)及日志選項(xiàng)的設(shè)置,主要功能是控制 Docker 容器日志文件的生成方式和大小限制,下面詳細(xì)解釋各部分含義:

整體作用:

此配置一般會(huì)放在 /etc/docker/daemon.json 文件里,屬于 Docker 守護(hù)進(jìn)程的全局配置,對(duì)新創(chuàng)建的容器生效。其目的是規(guī)范容器日志的存儲(chǔ)格式、大小以及文件數(shù)量,防止日志文件過度占用磁盤空間。

具體配置項(xiàng)解釋:

1. "log-driver":"json-file"

  • log-driver 指的是 Docker 采用的日志驅(qū)動(dòng)類型。日志驅(qū)動(dòng)決定了容器日志的存儲(chǔ)和輸出方式。
  • json-file 表示使用 JSON 文件作為日志存儲(chǔ)格式。當(dāng)容器產(chǎn)生日志時(shí),日志內(nèi)容會(huì)以 JSON 格式記錄到文件中,每個(gè)日志條目是一個(gè) JSON 對(duì)象,包含時(shí)間戳、日志級(jí)別、日志消息等信息。這種格式便于機(jī)器解析和處理日志數(shù)據(jù)。

2. "log-opts"

  • log-opts 是日志驅(qū)動(dòng)的具體選項(xiàng),用來進(jìn)一步配置日志的存儲(chǔ)和管理規(guī)則。

3. "max-size" :"50m"

  • max-size 定義了單個(gè)日志文件的最大大小。這里設(shè)置為 "50m",即 50MB。
  • 當(dāng)單個(gè)日志文件達(dá)到 50MB 時(shí),Docker 會(huì)自動(dòng)創(chuàng)建一個(gè)新的日志文件繼續(xù)記錄日志,以此避免單個(gè)日志文件過大。

4. "max-file":"1"

  • max-file 規(guī)定了日志文件的最大數(shù)量。這里設(shè)置為 "1",意味著最多只保留 1 個(gè)日志文件。
  • 當(dāng)新的日志文件創(chuàng)建后,舊的日志文件會(huì)被自動(dòng)刪除,以保證日志文件數(shù)量不超過設(shè)定值。結(jié)合 max-size 為 50MB 和 max-file 為 1 的設(shè)置,容器日志文件占用的磁盤空間最大不會(huì)超過 50MB。

示例總結(jié):

該配置使得 Docker 容器的日志以 JSON 文件格式存儲(chǔ),每個(gè)日志文件最大為 50MB,并且最多只保留 1 個(gè)日志文件。這樣做能有效控制容器日志占用的磁盤空間,防止因日志文件不斷增長(zhǎng)而耗盡磁盤資源。不過要注意,此配置對(duì)已經(jīng)存在的容器不會(huì)生效,只有新創(chuàng)建的容器才會(huì)遵循這些規(guī)則。

隨后重啟 Docker 服務(wù)

sudo systemctl daemon-reload
sudo systemctl restart docker

不過已存在的容器不會(huì)生效,需要重建才可以!

還有

{
    "builder": {
    "gc": {
      "defaultKeepStorage": "20GB",
      "enabled": true
    }
  },
    "registry-mirrors": [
        "https://docker.hpcloud.cloud",
    "https://docker.m.daocloud.io",
     "https://docker.unsee.tech",
    "https://docker.1panel.live",
    "http://mirrors.ustc.edu.cn",
    "https://docker.chenby.cn",
    "http://mirror.azure.cn",
    "https://dockerpull.org",
    "https://dockerhub.icu",
    "https://hub.rat.dev"
    ],
    "log-driver":"json-file",
    "log-opts":{
        "max-size" :"20m","max-file":"3"
    }
}

這段配置是 Docker 構(gòu)建器(Builder)的垃圾回收(Garbage Collection,GC)相關(guān)配置,通常在 Docker 的配置文件(如 daemon.json)中使用,下面為你詳細(xì)解釋各部分的含義。

整體功能概述:

此配置主要用于控制 Docker 構(gòu)建過程中產(chǎn)生的臨時(shí)文件和中間層的垃圾回收機(jī)制,目的是有效管理磁盤空間,避免構(gòu)建過程中產(chǎn)生的大量臨時(shí)數(shù)據(jù)占用過多磁盤。

具體配置項(xiàng)解釋:

1."builder"

  • 這是一個(gè)頂級(jí)配置項(xiàng),用于對(duì) Docker 構(gòu)建器的各項(xiàng)參數(shù)進(jìn)行設(shè)置。
  • 構(gòu)建器負(fù)責(zé)執(zhí)行 Docker 鏡像的構(gòu)建任務(wù),此配置塊中的內(nèi)容會(huì)影響構(gòu)建器在構(gòu)建過程中的行為。

2."gc"

  • 這是 builder 下的子配置項(xiàng),代表垃圾回收(Garbage Collection)相關(guān)的設(shè)置。
  • 垃圾回收機(jī)制會(huì)定期清理構(gòu)建過程中不再需要的臨時(shí)文件和中間層,釋放磁盤空間。

3."defaultKeepStorage": "20GB"

  • defaultKeepStorage 定義了在執(zhí)行垃圾回收操作后,構(gòu)建器默認(rèn)保留的磁盤空間大小。
  • 這里設(shè)置為 "20GB",意味著在進(jìn)行垃圾回收時(shí),構(gòu)建器會(huì)嘗試清理不再使用的臨時(shí)數(shù)據(jù),直到構(gòu)建過程所占用的磁盤空間不超過 20GB。也就是說,即使有大量可清理的中間層和臨時(shí)文件,構(gòu)建器也會(huì)保留至少 20GB 的磁盤空間用于后續(xù)的構(gòu)建操作。

4."enabled": true

  • enabled 是一個(gè)布爾值,用于開啟或關(guān)閉構(gòu)建器的垃圾回收功能。
  • 設(shè)置為 true 表示啟用垃圾回收機(jī)制,構(gòu)建器會(huì)定期檢查并清理不再使用的臨時(shí)數(shù)據(jù);若設(shè)置為 false,則垃圾回收機(jī)制將被禁用,構(gòu)建過程中產(chǎn)生的臨時(shí)數(shù)據(jù)不會(huì)被自動(dòng)清理,這可能會(huì)導(dǎo)致磁盤空間被大量占用。

總結(jié)

這段配置開啟了 Docker 構(gòu)建器的垃圾回收功能,并規(guī)定在垃圾回收后至少保留 20GB 的磁盤空間用于構(gòu)建操作。通過合理配置垃圾回收機(jī)制,可以有效管理磁盤空間,確保 Docker 構(gòu)建過程的穩(wěn)定性和高效性。

以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • docker search 報(bào)錯(cuò)但 pull 正常的問題解析

    docker search 報(bào)錯(cuò)但 pull 正常的問題解析

    用戶在Windows 11 WSL2 Ubuntu 20.04中使用docker search報(bào)錯(cuò),但docker pull正常,建議通過docker pull直接獲取鏡像,如搜索mysql時(shí)指向特定地址,本文給大家介紹docker search 報(bào)錯(cuò)但 pull 正常的問題解析,感興趣的朋友一起看看吧
    2025-07-07
  • Docker啟動(dòng)容器后自動(dòng)關(guān)閉問題解決

    Docker啟動(dòng)容器后自動(dòng)關(guān)閉問題解決

    在使用Docker創(chuàng)建并啟動(dòng)mysql容器時(shí),發(fā)現(xiàn)mysql容器并沒有啟動(dòng)而是自動(dòng)關(guān)閉了,本文主要介紹了Docker啟動(dòng)容器后自動(dòng)關(guān)閉問題解決,具有一定的參考價(jià)值,感興趣的可以了解一下
    2024-07-07
  • IDEA集成docker實(shí)現(xiàn)遠(yuǎn)程部署的步驟

    IDEA集成docker實(shí)現(xiàn)遠(yuǎn)程部署的步驟

    本文主要介紹了IDEA集成docker實(shí)現(xiàn)遠(yuǎn)程部署的步驟,文中通過示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2021-09-09
  • Docker容器間通信與外網(wǎng)通信的操作

    Docker容器間通信與外網(wǎng)通信的操作

    這篇文章主要介紹了Docker容器間通信與外網(wǎng)通信的操作,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧
    2021-03-03
  • 基于Docker部署GitLab環(huán)境搭建的方法步驟

    基于Docker部署GitLab環(huán)境搭建的方法步驟

    這篇文章主要介紹了基于Docker部署GitLab環(huán)境搭建的方法步驟,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-10-10
  • docker-compose?up?-d遇到的問題及解決

    docker-compose?up?-d遇到的問題及解決

    這篇文章主要介紹了docker-compose?up?-d遇到的問題及解決方案,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-03-03
  • 關(guān)于docker清理Overlay2占用磁盤空間的問題(親測(cè)有效)

    關(guān)于docker清理Overlay2占用磁盤空間的問題(親測(cè)有效)

    使用Docker過程中,長(zhǎng)時(shí)間運(yùn)行服務(wù)容器,導(dǎo)致不能進(jìn)行上傳文件等操作,今天通過本文給大家詳細(xì)介紹下docker清理Overlay2占用磁盤空間的相關(guān)知識(shí),感興趣的朋友一起看看吧
    2022-03-03
  • 使用docker compose一鍵部署多個(gè)服務(wù)的方法

    使用docker compose一鍵部署多個(gè)服務(wù)的方法

    docker compose 是 docker 官方的開源項(xiàng)目,用來實(shí)現(xiàn)對(duì) docker 容器集群的快速編排,通過docker-compose可以一鍵創(chuàng)建和刪除多個(gè)容器 ,本文給大家介紹的非常詳細(xì),感興趣的朋友一起看看吧
    2024-01-01
  • Docker啟動(dòng)PostgreSQL時(shí)創(chuàng)建多個(gè)數(shù)據(jù)庫的解決方案

    Docker啟動(dòng)PostgreSQL時(shí)創(chuàng)建多個(gè)數(shù)據(jù)庫的解決方案

    這篇文章主要介紹了Docker啟動(dòng)PostgreSQL時(shí)創(chuàng)建多個(gè)數(shù)據(jù)庫的解決方案,重點(diǎn)給大家介紹如何把shell/sql腳本放入/docker-entrypoint-initdb.d/目錄中,讓容器啟動(dòng)的時(shí)候自動(dòng)執(zhí)行創(chuàng)建
    2021-06-06
  • 使用OpenSSL生成Kubernetes證書的介紹

    使用OpenSSL生成Kubernetes證書的介紹

    今天小編就為大家分享一篇關(guān)于使用OpenSSL生成Kubernetes證書的介紹,小編覺得內(nèi)容挺不錯(cuò)的,現(xiàn)在分享給大家,具有很好的參考價(jià)值,需要的朋友一起跟隨小編來看看吧
    2019-01-01

最新評(píng)論

通城县| 永安市| 禹城市| 盐边县| 张家口市| 海晏县| 沙雅县| 镇江市| 大连市| 通州市| 南汇区| 龙川县| 化隆| 灌云县| 永德县| 酒泉市| 台州市| 固阳县| 政和县| 潍坊市| 应城市| 伊金霍洛旗| 平顶山市| 绿春县| 吉水县| 宜城市| 汝南县| 崇明县| 德庆县| 宁远县| 内丘县| 姜堰市| 汽车| 达尔| 蒙自县| 蕲春县| 沅江市| 恩施市| 宝鸡市| 宁晋县| 崇仁县|