簡體   English   中英

Docker overlay2文件夾吃盤

[英]Docker overlay2 folder eating Disk

我對 docker overlay2 文件夾有疑問。

當我在撰寫本文時輸入 du -sj /var/lib/docker/overlay2 時,它說:

85G overlay2/

而且它一直在成長。 我嘗試使用以下命令修剪系統:

docker system prune -a

但是 output 是:

Total reclaimed space: 0B

我還嘗試將max-filemax-size添加到我的 docker 組合中。 添加這些行后,我重新創建了容器。 但是問題依然存在,是否可以通過任何方式解決,只是停止占用磁盤空間?

編輯:

docker 信息:

服務器:
容器:10
跑步:10
暫停:0
停止:0
圖片:6
服務器版本:19.03.8
存儲驅動程序:overlay2
支持文件系統:
支持 d_type: true
原生疊加差異:true
日志記錄驅動程序:json 文件
Cgroup 驅動程序:cgroupfs
插件:
音量:本地
網絡:網橋主機 ipvlan macvlan null 覆蓋
日志: awslogs fluentd gcplogs gelf journald json-file local \logentries splunk syslog
群:不活躍
運行時:runc
默認運行時:runc
初始化二進制文件:docker-init
容器版本:7ad184331fa3e55e52b890ea95e65ba581ae3429
runc 版本:dc9208a3303feef5b3839f4323d9beb36df0a9dd
初始化版本:fec3683
安全選項:
服裝
秒算
配置文件:默認
Kernel 版本:4.15.0-91-generic
操作系統:Ubuntu 18.04.4 LTS
操作系統類型:linux
架構:x86_64
CPU:32
Memory 總計:62.86GiB
名稱:機器
編號:TRX2:AJZG:LNJF:UCPW:MQQB:2PLR:R7KM:VHEV:KBOG:IBT4:JX4R:WR6V
Docker 根目錄:/var/lib/docker
調試模式:假
注冊表: https://index.docker.io/v1/\標簽:
實驗:錯誤
不安全的注冊表:
127.0.0.0/8
啟用實時恢復:false\

docker 圖像:(出於安全原因,我不會顯示名稱)

TAG IMAGE ID CREATED SIZE
latest 667ac029b200 2 years ago 7.6GB
latest cb9df5aac4ac 2 years ago 12.9GB
latest d445c0adc9a5 3 weeks ago 220MB
latest 227d9f0554d3 2 years ago 1.34GB
latest b80092729008 2 years ago 758MB
latest f32a97de94e1 2 years ago 25.8MB
#!/bin/bash
# Remove exited containers
/usr/bin/docker ps -a -q -f status=exited | xargs --no-run-if-empty docker rm -v

# Remove dangling images
/usr/bin/docker images -f "dangling=true" -q | xargs --no-run-if-empty docker rmi

# Remove unused images
/usr/bin/docker images | awk '/ago/  { print $3}' | xargs --no-run-if-empty docker rmi

# Remove dangling volumes
/usr/bin/docker volume ls -qf dangling=true | xargs --no-run-if-empty docker volume rm

使用 cron 運行。 在我的情況下,每小時

在此處輸入圖像描述

  1. 檢查 docker 卷 ls,它將顯示卷和大小
  2. 任何不需要的清除它們
  3. 如果您使用的是基於 linux 的圖像,您可以使用 - apt-get autoremove,刪除孤立包

您有 10 個容器正在運行,而 2 年前的映像強烈表明您可能正在改變這些容器內的文件系統(寫入日志、臨時文件,甚至可能安裝應用程序)。 修剪不會刪除這些容器、它們的映像、這些容器內的文件系統更改或容器的日志。 您將在overlay2中看到的部分是那些文件系統更改,因此請使用以下內容查看每個容器中已創建/更改了哪些文件:

docker container diff ${container_name_or_id}

例如:

$ docker container diff d7c
C /run
A /run/user
A /run/user/1000
C /tmp
A /tmp/.X11-unix
C /home
A /home/user

您的列表可能會更長,您可以將 go 放入容器中以刪除您不再需要的任何文件(使用docker exec假設容器具有 Z2591C98B70119FE624898B1E424B5E 和其他工具)。

有關清理大型 overlay2 目錄的更多信息,請參閱清理 docker/overlay2 是否安全

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM