列出无用的卷
1 |
docker volume ls -qf dangling=true |
清理无用的卷,容器,镜像
1 2 3 4 5 6 7 8 9 10 11 12 13 |
docker volume rm $(docker volume ls -qf dangling=true) docker rmi $(docker images | grep '^<none>' | awk '{print $3}') docker images --no-trunc | grep '<none>' | awk '{ print $3 }' \ | xargs docker rmi docker system prune docker volume prune docker rm $(docker ps -q) docker rmi $(docker images -q) |
docker system df命令,类似于Linux上的df命令,用于查看Docker的磁盘使用情况:
1 |
docker system df |
docker system prune命令可以用于清理磁盘,删除关闭的容器、无用的数据卷和网络,以及dangling镜像(即无tag的镜像)。
1 |
docker system prune |
执行以下命令会彻底清除所有容器。
1 |
docker system prune -a -f |
1 |
执行docker system prune -a这条代码后,docker中未启动的imges都会被清除 |
或者
1 2 3 4 |
docker rm -f $(docker ps -qa) rm -rf /var/lib/etcd /var/lib/cni /var/run/calico rm -rf /etc/kubernetes/ssl /etc/kubernetes/.tmp/ rm -rf /opt/cni |
或者
1 |
docker rm -f `docker ps -aq && rm -rf /var/lib/etcd /var/lib/cni /var/run/calico /etc/kubernetes/ssl /etc/kubernetes/.tmp/ /opt/cni` |
查看所有挂载点
1 |
docker volume ls |
查看批量的卷标
1 2 3 |
$ docker volume ls | grep mysql local vagrant_mysql |
查看具体的volume对应的真实地址
1 2 3 4 5 6 7 8 9 10 11 12 |
$ docker volume inspect vagrant_mysql [ { "Name": "vagrant_mysql", "Driver": "local", "Mountpoint": "/var/lib/docker/volumes/vagrant_mysql/_data" } ] |
2、docker容器层存储目录解析
- 带init的目录(这个目录是只读的)
- 没有带init的容器目录,容器的读写目录,容器中写入时候会把文件拷贝进来(读操作直接在每层操作,不需拷贝)
1 2 |
演示: 比如我进入容器,在home下写一个hello.txt的文件,于是宿主机该目录下的diff目录中多了一个 home目录,下边多了一个hello.txt文件。 |
2.1、镜像层存储目录
1 |
对应一个以CacheID命名的目录 |
2.2、 overlay2下有如下目录

2.3、查找属于那个容器
1 |
docker ps -q | xargs docker inspect --format '{{.State.Pid}}, {{.Id}}, {{.Name}}, {{.GraphDriver.Data.WorkDir}}' | grep "08b19b890cc0348eabca15b585820d91bd59d88e3fdd5c2f589fe5e69ecb5cfa" |
1 2 3 4 |
3262, 6bf1cc99809501fe6c5133bbadd1a973b938425fd87a5ff98e3f4ab7d570589a, /das-db, /var/lib/docker/overlay2/08b19b890cc0348eabca15b585820d91bd59d88e3fdd5c2f589fe5e69ecb5cfa/work #说明: 如上可见,该存储对应 的容器名为 das-db |
2.4、查看指定容器的存储目录
1 |
docker ps -q | xargs docker inspect --format '{{.State.Pid}}, {{.Id}}, {{.Name}}, {{.GraphDriver.Data.WorkDir}}' | grep gateway |
1 2 3 4 |
134626, bf6c6433bd2ed870daad08fd667ece93db2f8c5e05da786d0ca9838a2bcf72d4, /k8s_filebeat_gateway-854ff898c5-t7j49_crust-framework_d6e24bdc-8632-4691-b2ef-c112efdb6784_0, /data/docker/overlay2/72df0bfe3f322eeff69f43394e9bde50a786103f278c00a1dd8bde457889e077/work 134565, d278f3488213a2396dda0a781dc5ea5d512ea11675ee30a0521817ad8a5a4b1e, /k8s_gateway_gateway-854ff898c5-t7j49_crust-framework_d6e24bdc-8632-4691-b2ef-c112efdb6784_0, /data/docker/overlay2/9e31372295296a2d83bd725214063f60114499582be4027e13c78b241e1cf16c/work 134439, a16364fc28a7c67e35d1d2c0c73fdc18b5705dfe1b21d3c79a0a99618594a88a, /k8s_POD_gateway-854ff898c5-t7j49_crust-framework_d6e24bdc-8632-4691-b2ef-c112efdb6784_0, /data/docker/overlay2/0e362acb07459c9fd97f5b1bbe2431a33daf19e091da78c8abed459985fdff69/work 28798, 1ce006e2a0ac90d7dc838d52d9b5865bc76e75a40f79bd4839ef818e46730197, /k8s_gateway_etcd-75d4485689-j4g2z_streaming_373adf06-d4b8-4aa7-a161-ba8424a0eefe_0, /data/docker/overlay2/80385eb061acce97c369fe1577775e8230ce7108cf0ac01dce0346e1622fad94/work |
说明:如上可见,查看 gataway 这个pod的目录,得到四条信息:
- 第一条是该pod里 filebeat的容器信息
- 第二条是该pod里gateway的容器,我们要找的是这个
- 第三条是该pod里pause的容器
- 第四条是k8s系统的,和该pod无关。
1 |
综上:我们要找的目录是/data/docker/overlay2/9e31372295296a2d83bd725214063f60114499582be4027e13c78b241e1cf16c |
2.5、CacheID目录结构

- diff 目录,文件目录,各层的目录都会放在下边
- link 文件,写明该存储对应的镜像层
- lower 文件,指名该镜像层对应的底层镜像层
- work 目录,文件系统的工作基础目录,挂载后内容会被清空,且在使用过程中其内容用户不可见
- merged 是在容器运行时才会出现的存储情况集合
1 |
查看diff文件夹和merged文件夹,就能发现多了个文件,其实这两个文件就是同一个,因为diff(可读写层)是挂载到merged目录中的。可以直接手动在diff文件中新建一个文件,再去merged中查看验证一下 |
注意:overlay2 不支持NFS挂载
将/var/lib/docker 目录移动到NFS挂载的目录之后,docker启动不起来
错误日志如下:
1 2 3 4 5 |
[root@crust-m02 data]# journalctl -xe …… 7月 06 11:49:50 crust-m02 dockerd[10652]: time="2021-07-06T11:49:50.475328532+08:00" level=error msg="'overlay2' is not supported over nfs" storage-driver=overlay2 7月 06 11:49:50 crust-m02 dockerd[10652]: time="2021-07-06T11:49:50.475349891+08:00" level=error msg="[graphdriver] prior storage driver overlay2 failed: backing file sys …… |
- 本文固定链接: https://www.yoyoask.com/?p=4069
- 转载请注明: shooter 于 SHOOTER 发表