首先使用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. 高可用k8s集群搭建

    虚拟机选择 Win10 Hyper-V 总体架构 三个master,三个node master的组件 etcd kube-apiserver kube-controller-manager kube- ...

  2. nano 编辑器快速入门

    # 打开或新建一个文件 $ nano tmp.txt # 常用组合按键 ^G:获取帮助 ^X:退出,如果文件有改定会提示是否保存 ^O:保存文件内容 ^R:读取其他文件的内容,放入到当前文件中 ^W: ...

  3. VirtualBox虚拟机安装win8/10

    你可能会遇到过,需要win8来做一些操作,不过自己的本机是win7,难道要重装系统吗?操作好了后,想用回win7怎么办?这个时候,如果旁边有人的系统刚好符合你对系统的要求,那可以借用,如果使用时间太长 ...

  4. VMware_win10能ping通虚拟机ip,虚拟机ping不通win10ip的解决方法

    一.虚拟机设置为桥接模式 二.修改虚拟机linux的ip 查看win10的ip和网关 使用ifconfig查看网卡名,并在 /etc/sysconfig/network-scripts/目录修改对应的 ...

  5. Java基础复习到此结束,统一把源码放到GitHub仓库了,响应开源精神

    这是地址 https://github.com/cen-xi/java-baisc-

  6. mysql之突破secure_file_priv写webshell

    在某些情况下,当我们进入了一个网站的phpMyAdmin时,想通过select into outfile来写shell,但是通常都会报错. 这是因为在mysql 5.6.34版本以后 secure_f ...

  7. 微服务架构 | 3.3 Apache Zookeeper 注册中心

    @ 目录 前言 1. Zookeeper 基础知识 1.1 Zookeeper 是什么 1.2 Zookeeper 的数据结构 1.3 Watcher 机制 1.4 常见应用场景分析 1.5 Zook ...

  8. 《剑指offer》面试题04. 二维数组中的查找

    问题描述 在一个 n * m 的二维数组中,每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序.请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数. 示例: ...

  9. 【reverse】逆向3 寻找地址

    [reverse]逆向3 寻找地址 寻址公式一:[立即数] 读取内存的值: mov eax,dword prt ds:[0x13FFC4] 将内存编号为0x13FFC4.0x13FFC5.0x13FF ...

  10. 【解决了一个小问题】golang protocol buffers 3中去掉json标签中的omitempty

    参考了这篇帖子:golang protobuf从生成的json标记中删除omitempty标记 由于是在windows上开发,因此写了一个python脚本来解决: remove_tag.py impo ...