首页 > 其他分享 >docker 没用镜像造成磁盘满问题

docker 没用镜像造成磁盘满问题

时间:2022-10-02 19:02:56浏览次数:53  
标签:Mar -- 28 ------. 磁盘 镜像 docker root

查看磁盘的使用状态

df -a

docker 没用镜像造成磁盘满问题_docker

从上图可以看到,主要是docker overlay2 和dev/vda1下面的文件使用率过爆,对应的文件也可以看到。

首先,排查docker overlay2 下面的文件

docker 没用镜像造成磁盘满问题_docker_02

查看docker 的镜像和容器的占用情况

docker 没用镜像造成磁盘满问题_f5_03

ps:清理的时候,有些镜像会在使用的情况。所以谨慎删除

docker 没用镜像造成磁盘满问题_docker_04


既然上面都清理完了,回过头看看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 的镜像哈希值


标签:Mar,--,28,------.,磁盘,镜像,docker,root
From: https://blog.51cto.com/u_15202388/5729339

相关文章

  • Docker服务搭建个人音乐播放器Koel
    Koel简介Koel是一种简单的基于Web的个人音频流服务,用客户端的Vue和服务器端的Laravel编写。针对Web开发人员,Koel采用了一些更现代的Web技术来完成其工作搭建步骤doc......
  • docker挂载nginx出错
    1.报错如下2.错误原因报错原因很奇怪,在dockerhub官网上查询了一下发现以下有用的信息:官网这段话的大概意思就是,要给nginx挂载卷,要先有一个配置文件才能挂载,具体做法......
  • Docker之修改默认存储路径
    背景:Docker默认安装的情况下,会使用/var/lib/docker/目录作为存储目录,用以存放拉取的镜像和创建的容器等。不过由于此目录一般都位于系统盘,遇到系统盘比较小,而镜像和容器......
  • docker实战教程(十):本地镜像发布到私有库
    背景官方dockerhub地址:​​https://hub.docker.com​​,中国大陆访问太慢了且准备被阿里云取代的趋势,不太主流dockerhub、阿里云这样的公共镜像仓库可能不太方便,涉及机密的......
  • docker实战教程(九):本地镜像发布到阿里云
    流程构建镜像的两种方式:commit、dockerfilebuild推送到远程的两种方式:阿里云、私有库步骤选择控制台,进入容器镜像服务,创建个人版实例创建命名空间创建镜像仓库进入管理界......
  • docker实战教程(八):commit命令
    dockercommitdockercommit提交容器副本使之成为一个新的镜像dockercommit-m="提交的描述信息"-a="作者"容器ID要创建的目标镜像名:[标签名]演示ubuntu安装vim从hub......
  • docker实战教程(十一):容器数据卷
    --privileged=truedocker挂载主机目录访问,如果出现cannotopendirectory:Permissiondenied解决办法:在挂载目录后多加一个--privileged=true参数即可如果是centos7安全模块......
  • Docker下,五分钟极速体验机器学习
    欢迎访问我的GitHub这里分类和汇总了欣宸的全部原创(含配套源码):https://github.com/zq2599/blog_demos看标题是否很激动,对机器学习很感兴趣,但是搭建环境和运行demo总......
  • docker启动rabbitmq
    运行dockersystemctlstartdocker查看进程ps-ef|grepdocker#运行rabbitdockerrun-d--hostnamemy-rabbit--namerabbit-p15672:15672-p5672:5672r......
  • docker常用命令
    启动dockersystemctlstartdockerps-ef|grepdocker启动mysqldockerrun--namemysql-v$PWD/conf:/etc/mysql/conf.d-v$PWD/logs:/logs-v$PWD/data:/var/li......