Docker清理磁盘空间

本文涉及的产品
日志服务 SLS,月写入数据量 50GB 1个月
简介: 在日常运维当中,Docker会产生一些运行时的临时文件,我们需要定时的清理掉他们,不然将会对磁盘造成极大的压力。

Docker清理磁盘空间

在日常运维当中,Docker会产生一些运行时的临时文件,我们需要定时的清理掉他们,不然将会对磁盘造成极大的压力。

探查命令

查看整个Docker系统的磁盘占用情况:

docker system df
AI 代码解读

查看每一个Docker容器和镜像的磁盘占用情况:

docker system df -v
AI 代码解读

查看系统整体的磁盘占用情况:

df -h
AI 代码解读

查看当前文件夹下所有子文件夹的磁盘占用情况:

du -ah --max-depth=1

# 按照文件大小从大到小排序
du -ah --max-depth=1 .|sort -hr
AI 代码解读

查看当前文件夹以及所有子文件夹的磁盘占用汇总:

du -sh *

# 按照文件大小从大到小排序
du -sh *|sort -nr
AI 代码解读

Docker命令常规清除

清除掉Docker的:停止的容器、无用镜像、缓存、挂载数据 (这条命令需要谨慎,因为暂时停止的容器也会被干掉)

sudo docker system prune -a
AI 代码解读

清除掉无用的镜像:

sudo docker image prune -f
AI 代码解读

清除掉无用的容器:

docker container prune - f
AI 代码解读

清除掉无用的数据卷:

docker volume prune - f
AI 代码解读

清除掉无用的网络:

docker network prune - f
AI 代码解读

清除掉Build的缓存:

sudo docker builder prune -f
AI 代码解读

清除掉/var/lib/docker/containers下的日志文件

占据磁盘空间的主要是以下文件:

/var/lib/docker/containers/<container id>/<container id>-json.log
AI 代码解读

这个应该是容器的日志(非容器内部运行日志)。可以使用以下脚本进行清除:

#!/bin/bash
echo "======== start clean docker containers logs ========"
logs=$(find /var/lib/docker/containers/ -name *-json.log)
for log in $logs
        do
                echo "clean logs : $log"
                cat /dev/null > $log
        done
echo "======== end clean docker containers logs ========"
AI 代码解读

清除掉/var/lib/docker/overlay2/下的日志文件

#!/bin/bash
echo "======== start clean docker overlays logs ========"
logs=$(find /var/lib/docker/overlay2/ -name *.log)
for log in $logs
        do
                echo "clean logs : $log"
                cat /dev/null > $log
        done
echo "======== end clean docker overlays logs ========"
AI 代码解读

这个文件夹下面的文件是容器实质内容物的存放地。所以,这下面的增量文件也应该是容器内程序的运行时日志等。

集大成者清理脚本

#!/bin/bash

echo "======== start clean docker ========"
sudo docker image prune -f
sudo docker builder prune -f
echo "======== end clean docker ========"

echo "======== start clean docker containers logs ========"
logs=$(find /var/lib/docker/containers/ -name *-json.log)
for log in $logs
        do
                echo "clean logs : $log"
                cat /dev/null > $log
        done
echo "======== end clean docker containers logs ========"

echo "======== start clean docker overlays logs ========"
logs=$(find /var/lib/docker/overlay2/ -name *.log)
for log in $logs
        do
                echo "clean logs : $log"
                cat /dev/null > $log
        done
echo "======== end clean docker overlays logs ========"

# restart all docker containers.
echo "======== start restart all docker containers ========"
sudo docker restart $(docker ps -a -q)
echo "======== end restart all docker containers ========"

# restart all not-docker services.
echo "======== start restart all not-docker services ========"
sudo supervisorctl restart all
echo "======== end restart all not-docker services ========"
AI 代码解读

参考资料

相关实践学习
日志服务之使用Nginx模式采集日志
本文介绍如何通过日志服务控制台创建Nginx模式的Logtail配置快速采集Nginx日志并进行多维度分析。
目录
打赏
0
0
0
0
97
分享
相关文章
centos系统清理docker日志文件
通过以上方法,可以有效清理和管理CentOS系统中的Docker日志文件,防止日志文件占用过多磁盘空间。选择合适的方法取决于具体的应用场景和需求,可以结合手动清理、logrotate和调整日志驱动等多种方式,确保系统的高效运行。
637 2
容器化运维:Docker Desktop 占用磁盘空间过大?教你轻松解决!
Windows Docker Desktop 使用过程中,因镜像、容器数据及构建缓存的累积,可能导致磁盘空间占用过高。通过删除无用镜像与容器、压缩磁盘以及清理构建缓存等方法,可有效释放空间。具体步骤包括关闭WSL、使用`diskpart`工具压缩虚拟磁盘、执行`docker buildx prune -f`清理缓存等。这些操作能显著减少磁盘占用,提升系统性能。
2129 4
如何清理 docker 磁盘空间+修改 Gitea 服务器的 Webhook 设置+前端一些好学好用的代码规范-git hook+husky + commitlint
如何清理 docker 磁盘空间+修改 Gitea 服务器的 Webhook 设置+前端一些好学好用的代码规范-git hook+husky + commitlint
128 5
在Docker中,如何清理批量后台停止的容器?
在Docker中,如何清理批量后台停止的容器?
在Docker中,如何批量清理临时镜像文件?
在Docker中,如何批量清理临时镜像文件?
在Docker中,如何清理后台停止的容器?
在Docker中,如何清理后台停止的容器?
|
12月前
|
docker 容器大小查看及清理docker磁盘空间
docker 容器大小查看及清理docker磁盘空间
1514 0
|
12月前
|
docker 容器大小查看及清理docker磁盘空间
docker 容器大小查看及清理docker磁盘空间
953 0
Docker网关冲突导致容器启动网络异常解决方案
当执行`docker-compose up`命令时,服务器网络可能因Docker创建新网桥导致IP段冲突而中断。原因是Docker默认的docker0网卡(172.17.0.1/16)与宿主机网络地址段重叠,引发路由异常。解决方法为修改docker0地址段,通过配置`/etc/docker/daemon.json`调整为非冲突段(如192.168.200.1/24),并重启服务。同时,在`docker-compose.yml`中指定网络模式为`bridge`,最后通过检查docker0地址、网络接口列表及测试容器启动验证修复效果。
AI助理

你好,我是AI助理

可以解答问题、推荐解决方案等