文章目录
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 参考
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/77882.html