Docker磁盘空间使用分析与清理的方法

本文介绍了Docker磁盘空间使用分析与清理的方法,分享给大家,具体如下:

用了一段时间Docker后,会发现它占用了不少硬盘空间。还好Docker 1.13引入了解决方法,它提供了简单的命令System来查看/清理Docker使用的磁盘空间。

前情提要

#MyVersion
[root@dockercon ~]# docker version
Client:
 Version:  17.12.0-ce
 API version:  1.35
 Go version:  go1.9.2
 Git commit:  c97c6d6
 Built: Wed Dec 27 20:10:14 2017
 OS/Arch:  linux/amd64
Server:
 Engine:
 Version: 17.12.0-ce
 API version: 1.35 (minimum version 1.12)
 Go version:  go1.9.2
 Git commit:  c97c6d6
 Built:  Wed Dec 27 20:12:46 2017
 OS/Arch: linux/amd64
 Experimental: false

Docker 的内置 CLI 指令docker system df,可用于查询镜像(Images)、容器(Containers)和本地卷(Local Volumes)等空间使用大户的空间占用情况。

[root@dockercon ~]# docker images
REPOSITORY          TAG         IMAGE ID      CREATED       SIZE
kalilinux/kali-linux-docker  latest       c927a54ec8a4    8 days ago     1.88GB
nginx             latest       3f8a4339aadd    9 days ago     108MB
busybox            latest       6ad733544a63    2 months ago    1.13MB
[root@dockercon ~]# docker system df
TYPE        TOTAL        ACTIVE       SIZE        RECLAIMABLE
Images       3          0          1.994GB       1.994GB (100%)
Containers     0          0          0B         0B
Local Volumes    0          0          0B         0B
Build Cache                         0B         0B

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

[root@dockercon ~]# docker system df -v
#镜像空间使用情况
Images space usage:

REPOSITORY          TAG         IMAGE ID      CREATED ago     SIZE        SHARED SIZE     UNIQUE SiZE     CONTAINERS
kalilinux/kali-linux-docker  latest       c927a54ec8a4    8 days ago ago   1.884GB       0B         1.884GB       0
nginx             latest       3f8a4339aadd    9 days ago ago   108.5MB       0B         108.5MB       0
busybox            latest       6ad733544a63    2 months ago ago  1.129MB       0B         1.129MB       0

#容器空间使用情况
Containers space usage:

CONTAINER ID    IMAGE        COMMAND       LOCAL VOLUMES    SIZE        CREATED ago     STATUS       NAMES

#本地卷使用情况
Local Volumes space usage:

VOLUME NAME     LINKS        SIZE

Build cache usage: 0B

空间清理

不同状态 已使用镜像(used image) 未引用镜像(unreferenced image) 悬空镜像(dangling image)
镜像含义 指所有已被容器(包括已停止的)关联的镜像。 没有被分配或使用在容器中的镜像 未配置任何 Tag (也就无法被引用)的镜像

Docker内置自动清理:

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

[root@dockercon ~]# docker system prune --help

Usage: docker system prune [OPTIONS]

Remove unused data

Options:
 -a, --all       Remove all unused images not just dangling ones
   --filter filter  Provide filter values (e.g. 'label=<key>=<value>')
 -f, --force      Do not prompt for confirmation
   --volumes     Prune volumes

docker system prune 自动清理说明:

该指令默认会清除所有如下资源:

  1. 已停止的容器(container)
  2. 未被任何容器所使用的卷(volume)
  3. 未被任何容器所关联的网络(network)
  4. 所有悬空镜像(image)。

该指令默认只会清除悬空镜像,未被使用的镜像不会被删除。添加-a 或 --all参数后,可以一并清除所有未使用的镜像和悬空镜像。

可以添加-f 或 --force参数用以忽略相关告警确认信息。

[root@dockercon ~]# docker system prune --help

Usage: docker system prune [OPTIONS]

Remove unused data

Options:
 -a, --all       Remove all unused images not just dangling ones
   --filter filter  Provide filter values (e.g. 'label=<key>=<value>')
 -f, --force      Do not prompt for confirmation
   --volumes     Prune volumes
[root@dockercon ~]# docker system prune --all
WARNING! This will remove:
    - all stopped containers
    - all networks not used by at least one container
    - all images without at least one container associated to them
    - all build cache
Are you sure you want to continue? [y/N] y
Deleted Containers:
f095899e7343e160d5b32d0688a6561a1a7f6af91c42ffe966649240b58ca23f

Deleted Images:
untagged: busybox:latest
untagged: busybox@sha256:e3789c406237e25d6139035a17981be5f1ccdae9c392d1623a02d31621a12bcc
deleted: sha256:6ad733544a6317992a6fac4eb19fe1df577d4dec7529efec28a5bd0edad0fd30
deleted: sha256:0271b8eebde3fa9a6126b1f2335e170f902731ab4942f9f1914e77016540c7bb
untagged: kalilinux/kali-linux-docker:latest
untagged: kalilinux/kali-linux-docker@sha256:28ff9e4bf40f7399e0570394a2d3d388a7b60c748be1b0a180c14c87afad1968
deleted: sha256:c927a54ec8a46164d7046b2a6dc09b2fce52b3066317d50cf73d14fa9778ca48
deleted: sha256:244c1920ef0442167cdbd095e5d29813cb5be0b70cc116faf8d7e50074f6c446
deleted: sha256:7748477cf079d6b0c13925ca90a5a1c7e93b8b508853f0cdff506c18caee14bd
deleted: sha256:dd9acc2ebbb7901b407d4270d4fd065d9bee10d11f2df13a256d892cc6e892f9
deleted: sha256:46c7843e50429fcafe2d3b6c676ac1a25e00851420ba2b1d52c69307f68ab3e5
deleted: sha256:f0944ddbb9bb11fb68f7edbde8e849233f7562d8087248c944e8c2fc7fe9fc0b
deleted: sha256:146e723c1713625c00cc736d74c9f6a16bd24464c42b33a8a234ec6e4c8b61ef
deleted: sha256:bca8a24862472a44c7ab1e3bdf2d5e4008e35d6c50b94f2547d3d595d86abef1
deleted: sha256:749be9d8a5ebb09cbc58d50c4b7244a10accdedc2a01c1d65d07d25322caacad
deleted: sha256:2d9e7ebb987a4cfb3142ce1612640248085d05b264012cb0885b3062105dfcb4
deleted: sha256:0655dca90e7c9c62d48128343ce89e016ae9f9df75c9dd6ad66c281e04e2b431
deleted: sha256:e78aa5d90040550584961eaccec1d047b755e97148fe753186e221c5ac40e330
deleted: sha256:598719dc4ba2de8d1be6564ca1f43846497608188cd20476712f7449755fea21
deleted: sha256:b084b4800972b561c21d804fab08c1fff0b9a9bcbf95a5394c0d4292c145c6d0
deleted: sha256:2e1b87f8f95e635c8ff4cbde28be38df39e8f3614576e09d7fb69c20421d1727
deleted: sha256:4a4a13e39112faa3b7ef0cb307bbf926fd1e46f3fbb9bc803cb9f4ab2f7694b0
untagged: alpine:latest
untagged: alpine@sha256:ccba511b1d6b5f1d83825a94f9d5b05528db456d9cf14a1ea1db892c939cda64
untagged: alpine-io:latest
deleted: sha256:3a043b0342a4907a1dfc95e2ea5e4df6a8e92d29dfe5d5910282bdfff27045d4
deleted: sha256:ddfb1d0e7629fd459b04f6efa89109ea0f7458aec76760e31888464d3074ae56
deleted: sha256:b6a7ea2197b744efab03320eda59d036ac3458ab7a0c5ada355faff0dd936af0
deleted: sha256:c96ab19b9ede349cb84e510a76a93d2b155aad54416f1591d7128cdeef228efc
deleted: sha256:43e7d32baaf31ab6bd4210ff3df54d1dec57cc761eab88c5eaef2973d6bed770
deleted: sha256:11a9226e2c0aeaa12408501b274575c8ee471a785b332af3c776e23dfd2eb629
deleted: sha256:bd9f490e64a2ceccdeb936f43047c0757635b4bc88159ba5b191285ef41f535c
deleted: sha256:e21c333399e0aeedfd70e8827c9fba3f8e9b170ef8a48a29945eb7702bf6aa5f
deleted: sha256:04a094fe844e055828cb2d64ead6bd3eb4257e7c7b5d1e2af0da89fa20472cf4
untagged: nginx:latest
untagged: nginx@sha256:cf8d5726fc897486a4f628d3b93483e3f391a76ea4897de0500ef1f9abcd69a1
deleted: sha256:3f8a4339aadda5897b744682f5f774dc69991a81af8d715d37a616bb4c99edf5
deleted: sha256:bb528503f6f01b70cd8de94372e1e3196fad3b28da2f69b105e95934263b0487
deleted: sha256:410204d28a96d436e31842a740ad0c827f845d22e06f3b1ff19c3b22706c3ed4
deleted: sha256:2ec5c0a4cb57c0af7c16ceda0b0a87a54f01f027ed33836a5669ca266cafe97a

Total reclaimed space: 5.219GB

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持我们。

您可能感兴趣的文章:

  • Docker占满磁盘空间的问题解决办法
(0)

相关推荐

  • Docker占满磁盘空间的问题解决办法

    通过命令可以观察到/var/lib/Docker目录很大,我的主机只有20G,这个目录占了18G:原因是devicemapper的空间设的太大,通过docker info打印的Data Space Total参数可以看到,默认是107.4G. 思路如下: 备份当前容器.镜像: 删除/var/lib/docker目录: 使用dd命令重设大小: 恢复容器.镜像: 工具: 需要额外空间保存备份文件,可以挂载一个u盘或者云盘. docker save 可以导出镜像 tar文件: docker expor

  • Docker磁盘空间使用分析与清理的方法

    本文介绍了Docker磁盘空间使用分析与清理的方法,分享给大家,具体如下: 用了一段时间Docker后,会发现它占用了不少硬盘空间.还好Docker 1.13引入了解决方法,它提供了简单的命令System来查看/清理Docker使用的磁盘空间. 前情提要 #MyVersion [root@dockercon ~]# docker version Client: Version: 17.12.0-ce API version: 1.35 Go version: go1.9.2 Git commit

  • Docker Overlay2磁盘空间占用过大清理的方法实现

    目录 1.第一种情况 2.第二种情况 3.最后,可通过安装portainer [Docker的图形化管理工具] 在日常线上环境中,我们通常会来做利用Docker来做容器化管理,通过运行容器来执行任务等. 但是,随着业务量的不断增大,容器的不断启动,往往会出现磁盘空间不足, 1.第一种情况 是因为docker中部署的系统中日志内容的不断扩大. 这种情况下,我们可手动,或定时任务清理. 对于/var/lib/docker/overlay2 空间占用,存在很多误导的方法是去迁移路径等..其实磁盘空间的

  • docker磁盘空间清理的解决办法

    前段时间遇到docker磁盘空间太少,无法写入数据的问题.起因是因为我在本地(Mac Pro)运行了多个mysql容器,并且导入了一部分线上数据,最后还没导入完毕就已经没有可用空间了. 我最开始给docker分配的磁盘空间是80GB,然后当出现无法写入的时候已经是只剩余0.6GB了. 可以使用下面的命令来查看docker容器和镜像磁盘占用情况: docker system df 可以看到类似如下的输出,包括镜像(Images).容器(Containers).数据卷(Local Volumes).

  • 解决docker磁盘空间不足问题

    docker所在服务器,运行了一段时间后,发现服务器磁盘目录快不够用了.通过du -h --max-depth=1 / 逐级目录排查,发现/var/lib/docker目录文件过大.通过以下方法,解决该问题. 转移数据修改docker默认存储位置 有多种方式修改docker默认存储位置. 最好是在docker安装完后,第一时间修改docker默认存储位置为其他大目录或者磁盘中.规避迁移数据过程中造成的风险. - 停止docker服务 systemctl stop docker - 创建新的doc

  • Docker容器导致磁盘空间不足无法访问的解决方法

    目录 问题: 1.进入运行的容器目录 2.查看容器的配置信息 3.删除日志文件 4.正常进入容器 问题: 客户反馈说系统操作,出现问题,查询数据报错,我第一想到的是Redis是不是挂了导致一些存在里面的数据查询失败,后面查看服务是正常的,于是想进入容器项目排查日志,结果进入容器异常错误 1.进入运行的容器目录 输入命令进入容器目录 docker exec -it 容器id bash 提示错误信息: failed to create runc console socket: mkdir /tmp/

  • 关于Linux服务器磁盘空间占满问题的解决方法

    下面我们一起来看一篇关于Linux服务器磁盘占满问题解决(/dev/sda3 满了),希望碰到此类问题的人能带来帮助. 今天下班某电商技术部leader发现个问题,说他们服务器硬盘满了.把日志文件都删掉了,可硬盘空间依旧满.于是df -h查看了下各个挂载点的状况(如下图). /dev/sda3占用了100%,那么我们du -s -h ./*看下目录的占用情况(如下图). 在工作中,我们也许会遇到这样的问题,发现某个磁盘空间快满了,于是,找到一些无用的大文件将其删除后,发现磁盘空间还是没有释放掉,

  • 如何清理 Docker 占用的磁盘空间的方法

    Docker 很占用空间,每当我们运行容器.拉取镜像.部署应用.构建自己的镜像时,我们的磁盘空间会被大量占用. 如果你也被这个问题所困扰,咱们就一起看一下 Docker 是如何使用磁盘空间的,以及如何回收. docker 占用的空间可以通过下面的命令查看: $ docker system df TYPE 列出了docker 使用磁盘的 4 种类型: Images:所有镜像占用的空间,包括拉取下来的镜像,和本地构建的. Containers:运行的容器占用的空间,表示每个容器的读写层的空间. Lo

  • 关于docker清理Overlay2占用磁盘空间的问题(亲测有效)

    使用Docker过程中,长时间运行服务容器,导致不能进行上传文件等操作,通过命令df -h 发现overlay占用较高.通过命令docker system prune -a 清理无用镜像.缓存.挂载数据,也没有什么改变. 如果你也被这个问题所困扰,咱们就一起看一下 Docker 是如何使用磁盘空间的,以及如何回收. docker 占用的空间可以通过下面的命令查看: $ docker system df prune指令默认会清除所有如下资源: 已停止的容器(container) 未被任何容器所使用

  • Docker容器日志查看与清理的方法(亲测有效)

    1. 问题 docker容器日志导致主机磁盘空间满了.docker logs -f container_name噼里啪啦一大堆,很占用空间,不用的日志可以清理掉了. 2. 解决方法 2.1 找出Docker容器日志 在linux上,容器日志一般存放在/var/lib/docker/containers/container_id/下面, 以json.log结尾的文件(业务日志)很大,查看各个日志文件大小的脚本docker_log_size.sh,内容如下: #!/bin/sh echo "====

  • 解决db2事务日志已满及日志磁盘空间已满问题办法详解

    事务日志满指当前事务无法写入到活动日志中(主日志文件和辅助日志文件已全部用完或者没有足够当前事务写入的空间) 日志磁盘空间已满指辅助日志文件还未使用完,磁盘空间已经满了. db2数据库事务日志文件分为主日志文件和辅助日志文件,主日志文件已分配空间,辅助日志文件使用时再分配. 查看事务日志配置(mid为数据库名称): db2 get db cfg for mid 运行结果: 日志文件大小(4KB)                         (LOGFILSIZ) = 1024 主日志文件的数

随机推荐