如何清理docker产生的垃圾文件

无意中感觉磁盘空间不够用,于是使用df -a命令查看,结果令人大吃一惊,全是docker干的好事,在/var/lib/docker/aufs里生成了一堆垃圾:

davidhopper@davidhopper-ThinkPad-P50s:~$ df -a
文件系统     1K-块   已用  可用 已用% 挂载点
sysfs         0    0    0   - /sys
proc         0    0    0   - /proc
udev      8112832    0 8112832  0% /dev
devpts        0    0    0   - /dev/pts
tmpfs      1627828   9580 1618248  1% /run
/dev/sda6   84293120 77948404 2039772  98% /
securityfs      0    0    0   - /sys/kernel/security
tmpfs      8139124  18040 8121084  1% /dev/shm
tmpfs       5120    4  5116  1% /run/lock
tmpfs      8139124    0 8139124  0% /sys/fs/cgroup
cgroup        0    0    0   - /sys/fs/cgroup/systemd
pstore        0    0    0   - /sys/fs/pstore
efivarfs       0    0    0   - /sys/firmware/efi/efivars
cgroup        0    0    0   - /sys/fs/cgroup/net_cls,net_prio
cgroup        0    0    0   - /sys/fs/cgroup/perf_event
cgroup        0    0    0   - /sys/fs/cgroup/cpu,cpuacct
cgroup        0    0    0   - /sys/fs/cgroup/pids
cgroup        0    0    0   - /sys/fs/cgroup/devices
cgroup        0    0    0   - /sys/fs/cgroup/cpuset
cgroup        0    0    0   - /sys/fs/cgroup/rdma
cgroup        0    0    0   - /sys/fs/cgroup/blkio
cgroup        0    0    0   - /sys/fs/cgroup/hugetlb
cgroup        0    0    0   - /sys/fs/cgroup/freezer
cgroup        0    0    0   - /sys/fs/cgroup/memory
systemd-1       -    -    -   - /proc/sys/fs/binfmt_misc
debugfs        0    0    0   - /sys/kernel/debug
mqueue        0    0    0   - /dev/mqueue
hugetlbfs       0    0    0   - /dev/hugepages
fusectl        0    0    0   - /sys/fs/fuse/connections
configfs       0    0    0   - /sys/kernel/config
/dev/sda1    262144  33084 229060  13% /boot/efi
binfmt_misc      0    0    0   - /proc/sys/fs/binfmt_misc
tmpfs      1627828    56 1627772  1% /run/user/1000
gvfsd-fuse      0    0    0   - /run/user/1000/gvfs
/dev/sda6   84293120 77948404 2039772  98% /var/lib/docker/aufs

首先使用最简单的方法,清理当前未运行的所有Docker容器:

docker system prune

运行结果如下:

davidhopper@davidhopper-ThinkPad-P50s:~/code/apollo$ docker system prune
WARNING! This will remove:
  - all stopped containers
  - all volumes not used by at least one container
  - all networks not used by at least one container
  - all dangling images
Are you sure you want to continue? [y/N] y
Deleted Volumes:
333739e346364a7d515cdfc585f5231dd7f74a9e71431d152f6efc4da3bcb303
419184335b3c6130cb47b98c672e9666479ef0ff27cd2d20e173b55800507052
94165565a1f9d0553d18de62f86264596747f1b38c651b5e4f68391607e8453d
08d67461fa141609d0905f1209526131ce60864d1bf27650511a6bcc88197107
3aeb8f32513a1813f6b50726a233f16b20bb896b5cf3e51197c86e2cc10be374
3af830103bdedc7f035be9d2bdbd1104733c274f3ce629784cdf9daee8ac070e
78e7ab8000386d61050034a64eee041a2743b60c466598286f276534529db551
155c34c18faf8d234412a999b28d1d6de8517b68eac5dc47e58964a0efb24a06
200d23a03f40cb1b8af8e5368805370d45195448fbad0944bcb9730f2140d462
51b2e0825e25de4c42475245a83b2119ce45e75da811ad6df1525f7ff2888a36
559532c3877cf5641e21c15fca6d923266b6548a4aef834667b0c66ca78cde38
a05cf184006b1301eb91e2ebcb9cca6d5868265f56bdac0aefd5228979fd8c74
c21d336b8205ea12e27414c3a00eef6a329222ea7552b825d3889ef042783820
3e573f8d84fd7923415b46a90017ff5cfeb2bd2931e4ec54c45c4bd62664042d
3ee39b3a5e49b605d4069e99c4c1d01db6a210d28cbdc350672b33accd2b0f3b
a0fe3e6d80b6fb4dc6ca2159789e512912fb4ffccd0df1183bafc55c4e804563
3e062023110a4c13e7915da03ffaad3dbaa558c590a6b2274c2fb09ad54abd6c
69276b6274956a28abfe50fdf459a0042ecba6978e379e035399c9272c930b57
de1a0669765d765699b47999c59ed74f93fc0545fe8d280cefdd2cf9e2b31379
33766d8c693b826d9da48d419c15b90fcfbac26eb9939749aef94218a31a767b
45a2047d0581ad07ebd0164e69897f5ae99144a4f0422b72f184281ae47e0b4d
7191a9c6cea03c4aa1aac1c742228c46e3d7e2577645a037d62600be7249a649
7b45e555bca1d941af284743396753199f7bea33e7bf3f3362f385ec074b4450
08cb6f6b2c1d83796e9bcdd6eb6d2930ba80f98721ed1215d9bd6c75148a2608
0a786b212dc4e76225ae3e90dfd92c6eba5a4f60f465d86e62990fe22311ba1c
2a50f3203d93d60e115ec3b3ba643b3213f98d3c793730332de0178a9f7b5c45
3b50fae52487f178325d0347f75eb2502195daf5e39ba156a37752d3d62cd915
9067fa92cee1da6d1044ce51d616dc0cad67ac31e16f4f208ba840599dcb0b21
cb07e29eabcbb62bbcbe13443267a96599747ca52b685a71b7233cf94d876d38
67c55c6079ff257be64a59ee83d08c463591aebd5496dd1f134c33205d9f5c12
0a994bec4d112f6b012b7be4f5b7ad25c557c01f4392cf02546eceb697913240
90d85444a338c247414adc209e42a46c89d30cc9c1c52d29c0d63a5e35b5d70c
ec2bb3abb42e7450005e9c9b30305a5763e44dc03a70f313062d57ef8062b10a
09d99b0fd826d7463c1816228953c0492107916283de2b1ccb7fa8e22c2de324
1ad2def94eaa92707b9cf3b7ef288b57c64cff0094103f776657aaeacae8c939
92f633c27c6796091311e83617d4fb3b1526689b5b6ada33f58214ffa80c1f5e
053bacc4b3bf55149f918368238ffe50c1ed777558092b7b883b2cda2b7a0313
15118045d54acb0e63c0ebd4460a1a1666b3c930b95d351a1b831419eb3f2226
2852c53d5b177522c67ffd9d916d66328ede26275c27a80745812b1c28b8d47f
abe49f612dc9e8250f464772c726850415a051562ffcd922dc796a71bb94d061
6927af521e03ec75a09dbfe0a86bbf69928773841c538a2fc094bc4368bd3138
6d97a92956067706ba5d8ac9d01e99294d8ca28e4182a81c0662f77faf8e372b
8496afb1946e3f5863a23c8394f4065293e26dbc2555bf474d0328f56a613331
829e41a7d593b75633868c72bb81123d32f2a14b656f1409c57da6bc984fa233
9205da799d47bc613bf7b1955ea78712f16b4edf2a79b450f55ffb6111dee609
923a72e6bde7fb13fae29995611f9d28b0bdd4cf6a53250c45006edbe795d120
e31e6d693398b033843b0ad9cfceec09b9e1b47f7a9f4b2bec275e5e6a23fa3b
0163e1b3e1d90e20410e33b5d95eec75b55819c1117fdd57c655c31ed589f524
479c0acef02c7b1ddcb5863198868f71b6b2f3275146de73f9c884a9f50dd32e
7a231567bbc73d11621d34cdacc45061cfe060e78210782e18fec100578fe56a

Total reclaimed space: 26.96GB

如果空间释放得还够多,就想办法删除/var/lib/docker/aufs文件夹,最朴素的想法是直接删除:

sudo rm -rf /var/lib/docker/aufs

结果令人失望,提示信息如下:

davidhopper@davidhopper-ThinkPad-P50s:~$ sudo rm -rf /var/lib/docker/aufs
[sudo] davidhopper 的密码:
rm: 无法删除'/var/lib/docker/aufs': 设备或资源忙

用命令cat /proc/mounts | grep "docker"查找设备加载情况,果然有aufs:

davidhopper@davidhopper-ThinkPad-P50s:~$ cat /proc/mounts | grep "docker"
/dev/sda6 /var/lib/docker/aufs ext4 rw,relatime,errors=remount-ro,data=ordered 0 0

没办法,逼我用绝招,先缷载设备,再删除之:

sudo umount /var/lib/docker/aufs
sudo rm -rf /var/lib/docker/aufs

再次使用df -a命令查看,结果令人神清气爽:

davidhopper@davidhopper-ThinkPad-P50s:~$ df -a
文件系统     1K-块   已用   可用 已用% 挂载点
sysfs         0    0    0   - /sys
proc         0    0    0   - /proc
udev      8112832    0 8112832  0% /dev
devpts        0    0    0   - /dev/pts
tmpfs      1627828   9584 1618244  1% /run
/dev/sda6   84293120 65296764 14691412  82% /
securityfs      0    0    0   - /sys/kernel/security
tmpfs      8139124  18256 8120868  1% /dev/shm
tmpfs       5120    4   5116  1% /run/lock
tmpfs      8139124    0 8139124  0% /sys/fs/cgroup
cgroup        0    0    0   - /sys/fs/cgroup/systemd
pstore        0    0    0   - /sys/fs/pstore
efivarfs       0    0    0   - /sys/firmware/efi/efivars
cgroup        0    0    0   - /sys/fs/cgroup/net_cls,net_prio
cgroup        0    0    0   - /sys/fs/cgroup/perf_event
cgroup        0    0    0   - /sys/fs/cgroup/cpu,cpuacct
cgroup        0    0    0   - /sys/fs/cgroup/pids
cgroup        0    0    0   - /sys/fs/cgroup/devices
cgroup        0    0    0   - /sys/fs/cgroup/cpuset
cgroup        0    0    0   - /sys/fs/cgroup/rdma
cgroup        0    0    0   - /sys/fs/cgroup/blkio
cgroup        0    0    0   - /sys/fs/cgroup/hugetlb
cgroup        0    0    0   - /sys/fs/cgroup/freezer
cgroup        0    0    0   - /sys/fs/cgroup/memory
systemd-1       -    -    -   - /proc/sys/fs/binfmt_misc
debugfs        0    0    0   - /sys/kernel/debug
mqueue        0    0    0   - /dev/mqueue
hugetlbfs       0    0    0   - /dev/hugepages
fusectl        0    0    0   - /sys/fs/fuse/connections
configfs       0    0    0   - /sys/kernel/config
/dev/sda1    262144  33084  229060  13% /boot/efi
binfmt_misc      0    0    0   - /proc/sys/fs/binfmt_misc
tmpfs      1627828    52 1627776  1% /run/user/1000
gvfsd-fuse      0    0    0   - /run/user/1000/gvfs

为了让docker以后不再占用更多空间,我们指定docker目录的最大空间,命令如下:

mkdir -p /var/lib/docker/devicemapper/devicemapper
dd if=/dev/zero of=/var/lib/docker/devicemapper/devicemapper/data bs=1M count=0 seek=1024

建立的文件最大尺寸为 1MB * 1024 = 10 GB

注意:

如果删除垃圾文件后,导致Docker无法使用,则可使用如下方法将相关文件全部删除,然后重新安装Docker。删除相关文件的方法如下:

1.查找Docker缓存文件位置

sudo find / -name "docker"

在我机器上结果如下:

/sys/fs/cgroup/memory/docker
/sys/fs/cgroup/blkio/docker
/sys/fs/cgroup/hugetlb/docker
/sys/fs/cgroup/pids/docker
/sys/fs/cgroup/cpuset/docker
/sys/fs/cgroup/perf_event/docker
/sys/fs/cgroup/devices/docker
/sys/fs/cgroup/net_cls,net_prio/docker
/sys/fs/cgroup/freezer/docker
/sys/fs/cgroup/cpu,cpuacct/docker
/sys/fs/cgroup/systemd/docker
/etc/default/docker
/etc/docker
/etc/init.d/docker
/var/lib/docker
/run/docker
find: `/run/user/1000/gvfs': 权限不够
/usr/lib/docker
/usr/share/code/resources/app/extensions/docker
/usr/share/bash-completion/completions/docker
/usr/bin/docker
/home/davidhopper/Qt5.10.0/5.10.0/Src/qtwebengine/src/3rdparty/chromium/third_party/protobuf/jenkins/docker
/home/davidhopper/.cache/bazel/_bazel_davidhopper/install/5b1e8be5d1d6766f635a7db5967707e9/_embedded_binaries/embedded_tools/tools/build_defs/docker
/home/davidhopper/.vscode/extensions/njpwerner.autodocstring-0.2.0/.vscode-test/Visual Studio Code.app/Contents/Resources/app/extensions/docker
/home/davidhopper/code/apollo/docker
/home/davidhopper/code/protobuf-master/jenkins/docker
/home/davidhopper/code/apollo1215/apollo/docker

2.删除Docker缓存

代码如下:

sudo rm -rf /home/davidhopper/.cache/bazel/_bazel_davidhopper/install/5b1e8be5d1d6766f635a7db5967707e9/_embedded_binaries/embedded_tools/tools/build_defs/docker

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

(0)

相关推荐

  • 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 资源的方法

    如果经常使用 docker,你会发现 docker 占用的资源膨胀很快,其中最明显也最容易被察觉的应该是对磁盘空间的占用.本文将介绍如何快速的清理 docker 占用的系统资源,具体点说就是删除那些无用的 镜像.容器.网络和数据卷. 查看 docker 占用的资源 在进行资源清理之前我们有必要搞清楚 docker 都占用了哪些系统的资源.这需要综合使用不同的命令来完成. docker container ls:默认只列出正在运行的容器,-a 选项会列出包括停止的所有容器. docker imag

  • Docker 清理命令集锦

    杀死所有正在运行的容器 复制代码 代码如下: docker kill $(docker ps -a -q) 删除所有已经停止的容器 复制代码 代码如下: docker rm $(docker ps -a -q) 删除所有未打 dangling 标签的镜像 复制代码 代码如下: docker rmi $(docker images -q -f dangling=true) 删除所有镜像 复制代码 代码如下: docker rmi $(docker images -q) 为这些命令创建别名 复制代码

  • 如何清理docker产生的垃圾文件

    无意中感觉磁盘空间不够用,于是使用df -a命令查看,结果令人大吃一惊,全是docker干的好事,在/var/lib/docker/aufs里生成了一堆垃圾: davidhopper@davidhopper-ThinkPad-P50s:~$ df -a 文件系统 1K-块 已用 可用 已用% 挂载点 sysfs 0 0 0 - /sys proc 0 0 0 - /proc udev 8112832 0 8112832 0% /dev devpts 0 0 0 - /dev/pts tmpfs

  • 清理Windows服务器的垃圾文件的批处理

    复制代码 代码如下: @echo off echo 正在清理系统垃圾文件,请稍等...... del /f /s /q %systemdrive%\*.tmp del /f /s /q %systemdrive%\*._mp del /f /s /q %systemdrive%\*.log del /f /s /q %systemdrive%\*.gid del /f /s /q %systemdrive%\*.chk del /f /s /q %systemdrive%\*.old del /

  • Xcode清理缓存和垃圾文件的教程

    一.清理Xcode中的垃圾文件 1.前往Xcode所在的文件目录:~/Library/Developer/Xcode. 如下图: 2.进入目录后,可以看到Xcode文件中包含了如下几个文件夹: (1) Archives 存放的是Xcode打包时生成的文件,这里面的文件可以全部删掉. (2) DerivedData 存放的是build生成的项目索引.build输出以及日志,这里的文件可以全部删除. (3) iOS DeviceSupport 存放的是模拟器,对于你不需要的一些模拟器你可以删掉.即使

  • 超简单超强悍的清理C盘垃圾文件方法

    此法可以安全清理C盘,让你多出近1G空间! 很多朋友说夸张了,只能减少几十M而已,其实那是因为你的系统本来都比较干净,如果你系统使用了一段时间,安装了一定的软件,升级过,长期浏览网页图片,一定时间后你再清理试试看能不能达到1G以上,不夸张,只是针对用的人而言~ 不想把他做成.bat文件上传,让大家自己写,会觉得更安全,放心,安全觉得可以保障的. 教大家自己写个程序,这个程序是自动清理电脑里的垃圾而不会破坏系统,比很多软件都好哦. 新建一个记事本并输入以下的内容:  复制代码 代码如下: @ech

  • 手把手教你清理系统垃圾文件

    1.软件安装过程中产生的临时文件 许多软件在安装时,首先要把自身的安装文件解压缩到一个临时目录(一般为 Windows文件夹下的Temp目录),如WinZip等工具,然后再进行安装.如果软件设计有疏忽或者系统有问题,当安装结束后,这些临时文件就会变得并不"临时",成为硬盘里的一堆垃圾,很多时候它们以*.tmp的面孔出现,如图1. 在软件的运行过程中通常也会产生一些临时交换文件,比如一些程序工作时产生的形如*.old.*.bak这样的备份文件,杀毒软件或系统软件检查硬盘时生成的备份文件等

  • 磁盘垃圾文件清理器python代码实现

    本文假设某些特定类型的文件和大小为0的文件为垃圾文件,可以自由扩展代码的列表,也就是垃圾文件的类型. from os.path import isdir, join, splitext from os import remove, listdir, chmod, stat import sys #指定要删除的文件类型 filetypes = ['.tmp', '.log', '.obj', '.txt'] def delCertainFiles(directory): for filename

  • Python实现自动清理电脑垃圾文件详解

    经常存在在我们的电脑中的垃圾文件主要是指系统在运行过程中产生的tmp临时文件.日志文件.临时备份文件等.垃圾清理器的作用其实也是对这些文件进行清理,不会影响到我们使用产生的数据文件.如果是手动删除的话要一个一个的找出来去删除就比较麻烦了,用python写一个脚本直接启动就大功告成了. 在这个脚本的实现过程中使用到的内置库就是os库,没有通过其他的三方插件进行实现.所以也不用下载其他的python模块,直接调用内置库就OK了. import os 因为我们使用界面化的处理,这里导入一下pyqt5的

  • 一分钟清除系统中所有垃圾文件

    Windows在安装和使用过程中都会产生相当多的垃圾文件,包括临时文件(如:*.tmp.*._mp)日志文件(*.log).临时帮助文件(*.gid).磁盘检查文件(*.chk).临时备份文件(如:*.old.*.bak)以及其他临时文件.特别是如果一段时间不清理IE的临时文件夹"Temporary Internet Files",其中的缓存文件有时会占用上百MB的磁盘空间.这些垃圾文件不仅仅浪费了宝贵的磁盘空间,严重时还会使系统运行慢如蜗牛.这点相信你肯定忍受不了吧!所以应及时清理系

  • 30秒清除你的电脑系统中的垃圾文件

    轻松流畅上网自然是每个人的好心愿,但你是否注意到你的电脑系统磁盘的可用空间正在一天天在减少呢?你的电脑速度是不是越来越慢了呢?没错!在Windows在安装和使用过程中都会产生相当多的垃圾文件,包括临时文件(如:*.tmp.*._mp)日志文件(*.log).临时帮助文件(*.gid).磁盘检查文件(*.chk).临时备份文件(如:*.old.*.bak)以及其他临时文件.特别是如果一段时间不清理IE的临时文件夹"Temporary Internet Files",其中的缓存文件有时会占

  • Python删除windows垃圾文件的方法

    本文实例讲述了Python删除windows垃圾文件的方法.分享给大家供大家参考.具体如下: #coding:utf-8 import os #from glob import glob if os.name == 'nt': if 'HOMEPATH' in os.environ: home = os.environ['HOMEDRIVE'] + os.environ['HOMEPATH'] else: home = os.environ['HOMEPATH'] workpath = os.p

随机推荐