作者:张首富
时间:2020-07-19
w x:y18163201

我们在之前的文章里面讲过Docker 垃圾回收机制里面简单的介绍了下docker * prune命令,今天我们来详细的解读下最后一个docker system prune指令,解读这个命令之前我们先来了解下docker system df

docker system df

此参数要在 client 和 service 端的版本:1.25 版本以上才能使用

是做什么的?

这个命令是输出 Docker 在宿主机上资源的使用情况。可以查看镜像占用空间大小,容器占用空间大小,本地的volume 和 build 缓存的大小

举例使用

创建模拟环境

# docker pull centos:7.6.1810
# docker pull busybox
# docker pull sellbot:20200617
# docker pull sellbot:20200614
# docker pull sellbot:20200613
# docker images
REPOSITORY                                      TAG                 IMAGE ID            CREATED             SIZE
registry.cn-hangzhou.aliyuncs.com/smb/sellbot   20200716            f363f6d1f3f5        3 days ago          544MB
registry.cn-hangzhou.aliyuncs.com/smb/sellbot   20200714            3b4aa15b779d        4 days ago          544MB
registry.cn-hangzhou.aliyuncs.com/smb/sellbot   20200713            1f7133d6f068        6 days ago          544MB
busybox                                         latest              c7c37e472d31        2 weeks ago         1.22MB
centos                                          7.6.1810            f1cb7c7d58b7        16 months ago       202MB

# docker run -id --name test centos:7.6.1810 /bin/bash -c "dd if=/dev/zero of=/tmp/1.txt bs=10000 count=2000 && sleep 300 "
# docker run -id busybox /bin/sh -c "/bin/sleep 36000"
# docker ps
CONTAINER ID        IMAGE               COMMAND                  CREATED              STATUS              PORTS               NAMES
b2fa31af4348        centos:7.6.1810     "/bin/bash -c 'dd if…"   About a minute ago   Up About a minute                       test
7bbaea0e2ded        busybox             "/bin/sh -c '/bin/sl…"   2 minutes ago        Up 2 minutes                            clever_rubin

然后使用命令查看磁盘的使用情况,

# docker system df
TYPE                TOTAL               ACTIVE              SIZE                RECLAIMABLE
Images              5                   2                   797.9MB             595MB (74%)
Containers          5                   1                   20MB                20MB (100%)
Local Volumes       0                   0                   0B                  0B
Build Cache         0                   0                   0B                  0B

如果什么参数不加这显示数据的摘要信息,来解释下每列的含义:

1, Type: 显示占用磁盘空间的类型

2, Total: 当前类型的总数量,比如在我们这个环境一共有 5 个镜像,

3, ACTIVE: 处于活动中的,当前环境中有两个镜像正在使用,

4, SIZE:当前镜像,容器占用磁盘的大小,

5,RECLAIMABLE:可回收,可以被释放的,百分比就是 RECLAIMABLE/SIZE 的大小。

我们可以查看下每一项的详细信息

# docker system df -v
Images space usage:

REPOSITORY                                      TAG                 IMAGE ID            CREATED             SIZE                SHARED SIZE         UNIQUE SIZE         CONTAINERS
registry.cn-hangzhou.aliyuncs.com/smb/sellbot   20200716            f363f6d1f3f5        3 days ago          543.9MB             518.4MB             25.51MB             0
registry.cn-hangzhou.aliyuncs.com/smb/sellbot   20200714            3b4aa15b779d        4 days ago          543.9MB             518.4MB             25.51MB             0
registry.cn-hangzhou.aliyuncs.com/smb/sellbot   20200713            1f7133d6f068        6 days ago          543.9MB             518.4MB             25.51MB             0
busybox                                         latest              c7c37e472d31        2 weeks ago         1.224MB             0B                  1.224MB             4
centos                                          7.6.1810            f1cb7c7d58b7        16 months ago       201.8MB             0B                  201.8MB             1

Containers space usage:

CONTAINER ID        IMAGE               COMMAND                  LOCAL VOLUMES       SIZE                CREATED             STATUS                      NAMES
b2fa31af4348        centos:7.6.1810     "/bin/bash -c 'dd if…"   0                   20MB                12 minutes ago      Exited (0) 7 minutes ago    test
7bbaea0e2ded        busybox             "/bin/sh -c '/bin/sl…"   0                   0B                  12 minutes ago      Up 12 minutes               clever_rubin
ed33045b3f09        busybox             "/bin/sh -c /bin/sle…"   0                   0B                  13 minutes ago      Created                     zen_turing
fba6d39f9b6a        busybox             "/bin/sh -c /bin/sle…"   0                   0B                  13 minutes ago      Exited (1) 13 minutes ago   pensive_lederberg
6c2e7a0b4e7a        busybox             "sh"                     0                   18B                 14 minutes ago      Exited (0) 14 minutes ago   priceless_mirzakhani

Local Volumes space usage:

VOLUME NAME         LINKS               SIZE

Build cache usage: 0B

CACHE ID            CACHE TYPE          SIZE                CREATED             LAST USED           USAGE               SHARED

我们可以看到当我们添加了-v选项之后就能看到更多的信息了,相信喜欢观察的您一定发现了在 images 这一列有一个有意思的现象,就是 SIZE = SHARED SIZE + UNIQUE SIZE 我们来分开介绍每一个表格里面每一列的含义


Images space usage::