查看磁盘的使用状态
df -a
从上图可以看到,主要是docker overlay2 和dev/vda1下面的文件使用率过爆,对应的文件也可以看到。
首先,排查docker overlay2 下面的文件
查看docker 的镜像和容器的占用情况
ps:清理的时候,有些镜像会在使用的情况。所以谨慎删除
既然上面都清理完了,回过头看看docker 对应的文件和原理。方便后续排查问题。
docker存储驱动-overlay2
docker支持多种graphDriver,包括vfs、devicemapper、overlay、overlay2、aufs等等,其中最常用的就是aufs了,但随着linux内核3.18把overlay纳入其中。
docker默认的存储目录是/var/lib/docker
drwx------. 2 root root 24 Mar 28 07:13 builder
drwx------. 4 root root 92 Mar 28 07:13 buildkit
drwx------. 6 root root 4096 Mar 29 10:25 containers
drwx------. 3 root root 22 Mar 28 07:13 image
drwxr-x---. 3 root root 19 Mar 28 07:13 network
drwx------. 17 root root 4096 Mar 30 14:32 overlay2
drwx------. 4 root root 32 Mar 28 07:13 plugins
drwx------. 2 root root 6 Mar 30 14:32 runtimes
drwx------. 2 root root 6 Mar 28 07:13 swarm
drwx------. 2 root root 6 Mar 30 14:32 tmp
drwx------. 2 root root 6 Mar 28 07:13 trust
drwx------. 2 root root 25 Mar 28 07:13 volumes
先启动一个容器,在这里使用nginx作为实验
[root@10 docker]# docker run -d nginx
86b5733e54c7de5ef20cfb5574adedea6cbe11334517309badfbe7d313631310
[root@10 docker]# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
86b5733e54c7 nginx "nginx -g 'daemon of…" 4 seconds ago Up 3 seconds 80/tcp practical_vaughan
打印/var/lib/docker/image
[root@10 image]# ll
total 0
drwx------. 5 root root 81 Mar 28 10:00 overlay2
我们只能看到overlay2这个目,docker会在/var/lib/docker/image
目录下按每个存储驱动的名字创建一个目录,如这里的overlay2
用tree 命令看看overlay2 下面的文件目录:
[root@10 image]# tree -L 2 overlay2/
overlay2/
|-- distribution
| |-- diffid-by-digest
| `-- v2metadata-by-diffid
|-- imagedb
| |-- content
| `-- metadata
|-- layerdb
| |-- mounts
| |-- sha256
| `-- tmp
`-- repositories.json
这里的关键地方是imagedb
和layerdb
目录,看这个目录名字,很明显就是专门用来存储元数据的地方,那为什么区分image和layer呢?因为在docker中,image是由多个layer组合而成的,换句话就是layer是一个共享的层,可能有多个image会指向某个layer。
进到/var/lib/docker/image/overlay2/imagedb/content/sha256 里面看看
oot@10 sha256]# ll
total 20
-rw-------. 1 root root 6025 Mar 28 09:01 2bcb04bdb83f7c5dc30f0edaca1609a716bda1c7d2244d4f5fbbdfef33da366c
-rw-------. 1 root root 1512 Mar 28 10:00 6d1ef012b5674ad8a127ecfa9b5e6f5178d171b90ee462846974177fd9bdd39f
-rw-------. 1 root root 1497 Mar 28 08:51 d8233ab899d419c58cf3634c0df54ff5d8acc28f8173f09c21df4a07229e1205
-rw-------. 1 root root 1686 Mar 28 10:00 eb426204290971fb3c7cfbf25e34308233b75080b6b3735ba5295056d915a998
第一行的26bcb04 就是niginx 的镜像哈希值