记录:清理Docker Desktop磁盘空间的过程

导读:本篇文章讲解 记录:清理Docker Desktop磁盘空间的过程,希望对大家有帮助,欢迎收藏,转发!站点地址:www.bmabk.com

1. Docker Desktop磁盘空间不足

1.1 缘由

安装在Docker Desktop上的SonarQube在扫描时候报错,错误信息为:Unrecoverable indexation failures: 1 errors among 1 requests

在这里插入图片描述

1.2 Docker Desktop空间使用情况

如图所示:分配的304GB已使用了294.6GB

在这里插入图片描述

1.3 备份

这台电脑主要用于日常项目开发CI/CD使用,用到的服务主要有:Gitlab、Gitlab Runner、Gitlab Monitor、SonarQube。最关键的是:Gitlab,所以我会对它进行备份。

可参考:备份安装在Docker Desktop上的Gitlab

1.4 清理

1.4.1 删掉Docker中没用的镜像

Docker中用到了两个版本的Node.js,旧的那个已经没用了,我就删掉了。

1.4.2 查看Docker的磁盘使用情况

docker system df命令,类似于Linux上的df命令,用于查看Docker的磁盘使用情况:
在这里插入图片描述
从结果可知,Local Volumes占用了46%的空间,Images占用了27%的空间。上一步骤中,我已经清理了没用的镜像了,所以这次关注于Local Volumes中。

1.4.3 docker system prune命令

docker system prune命令可以用于清理磁盘,删除关闭的容器、无用的数据卷和网络,以及dangling镜像(即无tag的镜像)。这个命令会把你暂时关闭的容器,以及暂时没有用到的Docker镜像都删掉了。所以在删除之前,我首先看了关闭的容器是否是我真的不需要的之后再执行。

Total reclaimed space: 0B,效果不佳
在这里插入图片描述

1.4.4 du -hs命令

首先看/var/lib/docker目录的使用情况

# du -hs /var/lib/docker/

274G    /var/lib/docker/

结果基本和我们上面截图看到的磁盘使用情况相符,接着往下查看各个子目录的情况。

1.4.5 du -h –max-depth=1 /var/lib/docker/命令

命令解释

du -h --max-depth=1 * 	//可以查看当前目录下各文件、文件夹的大小。
du -h --max-depth=0 *  	//可以只显示直接子目录文件及文件夹大小统计值。
du –sh 					//查看指定目录的总大小。

使用情况

# du -h --max-depth=1 /var/lib/docker/

72K     /var/lib/docker/buildkit
214G    /var/lib/docker/containers
16M     /var/lib/docker/image
20K     /var/lib/docker/plugins
152K    /var/lib/docker/network
4.0K    /var/lib/docker/runtimes
4.0K    /var/lib/docker/trust
45G     /var/lib/docker/volumes
4.0K    /var/lib/docker/tmp
20K     /var/lib/docker/builder
880K    /var/lib/docker/containerd
16G     /var/lib/docker/overlay2
4.0K    /var/lib/docker/swarm

结果可知:/var/lib/docker/containers占有了大部分的空间:214G

1.4.6 查看占有大量内存的container

再次使用du -h --max-depth=1命令,看看到底是哪一个container占有了大部分的空间

du -h --max-depth=1 /var/lib/docker/containers/

结果
在这里插入图片描述
10f6f04a5820990cf3c9c44a22b36a8dcc76d320d16258cba43ff87f3659bd83这个ID占有了大量的空间,且和Gitlab Container的ID一致。
在这里插入图片描述

1.4.7 du -ah –max-depth=1命令

查看占有大量内存的具体文件,进到10f6f04a5820990cf3c9c44a22b36a8dcc76d320d16258cba43ff87f3659bd83这个文件夹当中,执行命令

du -ah –max-depth=1

4.0K    ./resolv.conf
4.0K    ./hostname
4.0K    ./checkpoints
4.0K    ./hosts
9.4M    ./mounts
32K     ./config.v2.json
4.0K    ./resolv.conf.hash
4.0K    ./hostconfig.json
214G    ./10f6f04a5820990cf3c9c44a22b36a8dcc76d320d16258cba43ff87f3659bd83-json.log
214G    .

结果可知:以xxx-json.log结尾的这个占有了最大的资源。

1.4.8 清理Docker容器

这里需要用cat /dev/null >进行清空,而不是rm:

cat /dev/null > /var/lib/docker/containers/10f6f04a5820990cf3c9c44a22b36a8dcc76d320d16258cba43ff87f3659bd83/10f6f04a5820990cf3c9c44a22b36a8dcc7
6d320d16258cba43ff87f3659bd83-json.log

验证结果:

du -ah –max-depth=1

4.0K    ./resolv.conf
4.0K    ./hostname
4.0K    ./checkpoints
4.0K    ./hosts
9.4M    ./mounts
32K     ./config.v2.json
4.0K    ./resolv.conf.hash
4.0K    ./hostconfig.json
264K    ./10f6f04a5820990cf3c9c44a22b36a8dcc76d320d16258cba43ff87f3659bd83-json.log
9.7M    .

之后已经从214G -> 264K

1.4.9 限制日志大小

通过往docker-compose中添加max-size来限制Gitlab日志的大小,具体是否可行,待验证。
在这里插入图片描述

1.5 参考

如何清理Docker占用的磁盘空间

Docker限制容器日志大小

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/77882.html

(0)
小半的头像小半

相关推荐

极客之音——专业性很强的中文编程技术网站,欢迎收藏到浏览器,订阅我们!