首先使用du命令逐层分析docker磁盘的使用情况:

(base) [root@openvino docker]# du -h --max-depth=1 | sort
0 ./containerd
0 ./libnetwork
0 ./netns
0 ./plugins
0 ./swarm
32K .
32K ./runtime-runc

使用 docker system df 命令查询镜像(Images)、容器(Containers)和本地卷(Local Volumes)等空间使用大户的空间占用情况。 示例输出如下:

[root@localhost docker]# docker system df
TYPE TOTAL ACTIVE SIZE RECLAIMABLE
Images 5 2 1.066GB 577.7MB (54%)
Containers 2 2 129.5MB 0B (0%)
Local Volumes 0 0 0B 0B
Build Cache 0 0 0B 0B

进一步,通过 -v参数查看空间占用细节:

[root@localhost docker]# docker system df -v
Images space usage: REPOSITORY TAG IMAGE ID CREATED SIZE SHARED SIZE UNIQUE SIZE CONTAINERS
redis latest ddcca4b8a6f0 5 months ago 105.4MB 69.26MB 36.15MB 1
nginx latest dd34e67e3371 5 months ago 133.2MB 69.26MB 63.92MB 0
mysql latest 5a4e492065c7 5 months ago 513.8MB 69.26MB 444.6MB 0
hello-world latest d1165f221234 10 months ago 13.34kB 0B 13.34kB 0
centos/mysql-57-centos7 latest f83a2938370c 2 years ago 452.1MB 0B 452.1MB 1 Containers space usage: CONTAINER ID IMAGE COMMAND LOCAL VOLUMES SIZE CREATED STATUS NAMES
d4e15edeb4a1 redis "docker-entrypoint.s…" 0 0B 4 months ago Up 5 hours redis
942ff88698b2 centos/mysql-57-centos7 "container-entrypoin…" 0 129MB 4 months ago Up 5 hours mysql Local Volumes space usage: VOLUME NAME LINKS SIZE Build cache usage: 0B CACHE ID CACHE TYPE SIZE CREATED LAST USED USAGE SHARED

空间清理

可以通过 Docker 内置的 CLI 指令 docker system prune来进行自动空间清理。

不同状态的镜像:

  • 已使用镜像(used image): 指所有已被容器(包括已停止的)关联的镜像。即 docker ps -a 看到的所有容器使用的镜像。
[root@localhost docker]# docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
d4e15edeb4a1 redis "docker-entrypoint.s…" 4 months ago Up 5 hours 0.0.0.0:6379->6379/tcp, :::6379->6379/tcp redis
942ff88698b2 centos/mysql-57-centos7 "container-entrypoin…" 4 months ago Up 5 hours 0.0.0.0:33306->3306/tcp, :::33306->3306/tcp mysql
  • 未引用镜像(unreferenced image):没有被分配或使用在容器中的镜像,但它有 Tag 信息。
  • 悬空镜像(dangling image):未配置任何 Tag (也就无法被引用)的镜像,所以悬空。这通常是由于镜像 build 的时候没有指定 -t 参数配置 Tag 导致的。

docker system prune 自动清理说明:

  • 已停止的容器(container);
  • 未被任何容器所使用的卷(volume);
  • 未被任何容器所关联的网络(network);
  • 所有悬空镜像(image);
  • 添加 -a或 --all可以一并清除为引用的镜像以及悬空镜像
  • 添加-f或--force参数可以忽略警告信息

手动删除镜像

docker rmi [image]

docker image rm [image]
  • 可以通过 镜像名或ID 删除;
  • 子命令 -f ,--force:强制删除,即便该镜像已被引用;
  • 子命令-no-prune:不要删除未带标签的父镜像。

Docker磁盘空间分析与清理的更多相关文章

  1. Linux磁盘空间分析及清理(df、du、rm)

    1.df磁盘空间查看 df可以查看一级文件夹大小.使用比例.档案系统及其挂入点. [root@oms ~]# df -Th Filesystem Type Size Used Avail Use% M ...

  2. docker磁盘空间清理办法

    docker磁盘空间清理办法 前段时间遇到docker磁盘空间太少,无法写入数据的问题.起因是因为我在本地(Mac Pro)运行了多个mysql容器,并且导入了一部分线上数据,最后还没导入完毕就已经没 ...

  3. docker磁盘空间不足解决办法

    docker磁盘空间不足解决办法 导入docker镜像时,错误提示:磁盘空间不足. 1.查看docker镜像存放目录空间大小 du -hs /var/lib/docker/ 2.停止docker服务. ...

  4. docker 容器大小查看及清理docker磁盘空间

    本文为博主原创,转载请注明出处: 今天打开服务器下载文件时,发现服务器内存不足,并开始清理服务器内存,排查及清理方法如下: 1. 查看服务器内存大小: df -h            通过 df - ...

  5. 【linux】linux磁盘空间 目录查看清理 和 文件查看清理

    =========================大目录排查============================= 一.首先查看磁盘挂载,磁盘空间使用情况 1.进入根路径 cd / 2.查看磁盘挂 ...

  6. docker 磁盘清理 相关

    用户在使用 Docker 部署业务一段时间后,可能会发现宿主节点的磁盘容量持续增长,甚至将磁盘空间耗尽进而引发宿主机异常,进而对业务造成影响. 本文先对 Docker 的空间分析与清理进行说明,然后对 ...

  7. 解决Linux下pcieport 0000:00:1c.5问题导致的系统根目录/磁盘空间不足

    最近刚换了笔记本,拿到本后在win10基础装上Ubuntu 16.04双系统,有个问题是每次关机都会报一堆pcie问题,并且经常没声音,声音问题通过上一篇文章暂时解决,然后就没在意了,可是几天后出现系 ...

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

    摘要:用了 Docker,好处挺多的,但是有一个不大不小的问题,它会一不小心占用太多磁盘,这就意味着我们必须及时清理. 作为一个有信仰的技术公司,我们Fundebug的后台采用了酷炫的全 Docker ...

  9. 如何清理Docker占用的磁盘空间?(转载)

    本文转载自https://blog.fundebug.com/2018/01/10/how-to-clean-docker-disk/ , 感谢原作者. 摘要:用了Docker,好处挺多的,但是有一个 ...

随机推荐

  1. 初识python 之 爬虫:使用正则表达式爬取“古诗文”网页数据

    通过requests.re(正则表达式) 爬取"古诗文"网页数据. 详细代码如下: #!/user/bin env python # author:Simple-Sir # tim ...

  2. 基于CentOS7.x gitlab环境搭建,卸载,汉化 --汉化篇

    gitlab环境搭建,卸载,汉化--汉化篇 注意gitlab的版本需和汉化版本一致 安装git yum install -y git 下载最新的汉化包 cd git clone https://git ...

  3. websocket 使用 spring 的service层 ,进而调用里面的 dao层 来操作数据库 ,包括redis、mysql等通用

    1.前言 描述一下今天用websocket踩得坑  --->空指针异常! 我想在websocket里面使用service 层的接口,从中获取数据库的一些信息  , 使用 @Autowired 注 ...

  4. Go标准库之html/template

    html/template包实现了数据驱动的模板,用于生成可防止代码注入的安全的HTML内容.它提供了和text/template包相同的接口,Go语言中输出HTML的场景都应使用html/templ ...

  5. Calendar日期往后一天,一月等

    import java.util.Date ;       Date date=new   Date();//取时间 System.out.println(date.toString());     ...

  6. F5 BIG-IP 远程代码执行漏洞环境搭建

    最近F5设备里的远程代码执行漏洞可谓是火爆,漏洞评分10分,所以,我也想搭建下环境复现一下该漏洞 漏洞详情 F5 BIG-IP 是美国F5公司一款集成流量管理.DNS.出入站规则.web应用防火墙.w ...

  7. promise到底怎么理解

    Promise的含义promise是异步编程的一种解决方法.所谓promise,简单说是一个容器,里面保存着某个未来才会结束的事件(通常是一个异步操作)的结果,从语法上说,promise是一个对象,从 ...

  8. k8s中kubeconfig的配置及使用

    1.概述 kubeconfig文件保存了k8s集群的集群.用户.命名空间.认证的信息.kubectl命令使用kubeconfig文件来获取集群的信息,然后和API server进行通讯. 注意:用于配 ...

  9. Javascript实现全选按钮

    Javascript实现全选按钮 效果:有全选选项框和单个选项框,选择全选框,所有的的选择都打上的钩,取消全选钩所有的都去掉了钩,如果取消其中某一个的钩,那么全选的钩也取消,反之全选所有的选项,那么全 ...

  10. 【记录一个问题】go.mod中使用replace后,编译出现神奇的错误:

    biz\child.go:5:2: imported and not used: "xxx.com/start/common/src/polaris" as biz biz\chi ...