一键清理Mac 下Docker 的日志

一键清理Mac 下Docker 的日志

在本地开发时候,docker 的容器很多,日志慢慢也膨胀起来,有时候达到了几十G 了,占用了大量系统空间,适时候需要清理下它。

Docker守护进程在单独的VM中运行,为了清除日志,进入虚拟机:

docker run -it --rm --privileged --pid=host alpine:edge nsenter -t 1 -m -u -n -i sh

docker 容器目录在/var/lib/docker/containers内,进入容器目录:

cd /var/lib/docker/containers

所有容器对应该目录下一个目录,命名为该容器ID,如:

/var/lib/docker/containers/fadc174600630783ef69e966cd0bbad1dd499b9336f7c553beff13571fcf2866

日志文件在上述目录下,命名结尾为“-json.log”,格式为“容器ID-json.log”(如果没有做过配置修改)。
看看所有容器日志文件总大小:

ls -l | awk '{print $9}' | xargs ls -l | grep "json.log" | awk '{sum += $5} END {print sum}'

4774698799

也可以按照大小排序查看各个容器的日志情况:

ls -l | awk '{print $9}' | xargs ls -l | grep "json.log" | sort -r

-rw-r----- 1 root root 4556243003 Nov 10 01:03 6c0b165af1a2679ab0ebf145ba83121d0b580541dfcb4163b6b70f679629b48d-json.log
-rw-r----- 1 root root 49105439 Nov 10 01:03 f4a1245d8807dd79b4c067dab2b5eeac4fafec950f3f9d3b9bafea3fc57fed2b-json.log
-rw-r----- 1 root root 49098793 Nov 10 01:03 c13052e063dce651441247021ba336aa4eb57363a00cdd4c17d804079895f91c-json.log
-rw-r----- 1 root root 35020613 Nov 10 01:03 bed2df406eaa6c10821cfa99061a7c4f7de97d4cff53826789aa7ce7e6c00060-json.log
-rw-r----- 1 root root 31432745 Nov 9 11:51 1381ca702e0b3a6fe93289619b3620981902fd4964154a89cb3c35d111887dcd-json.log
.
.
.
-rw-r----- 1 root root 0 Oct 21 14:05 a10e181d526488a66cf046101516c79e2204519808e2189809f130d882523f7e-json.log
-rw-r----- 1 root root 0 Oct 21 14:05 48aa7d62f253dc071a69af79a0c7d79fd51d9c81e51f16272544100ceb5d780d-json.log
-rw-r----- 1 root root 0 Oct 21 14:05 178ff03e6275eb51a4a98eb986ca384e01d885ae415b8153b5abb27063bb4461-json.log

整理清理脚本执行:

ls -l | awk '{if ($9) print "cat /dev/null > /var/lib/docker/containers/" $9 "/" $9 "-json.log"}' | sh

之后再看看日志大小,可以看到日志已经清除了

ls -l | awk '{print $9}' | xargs ls -l | grep "json.log" | awk '{sum += $5} END {print sum}'
585


一键清理docker 容器内日志的脚本为,在虚拟机内的 /var/lib/docker/containers 下执行脚本:

ls -l | awk ‘{if ($9) print “cat /dev/null > /var/lib/docker/containers/” $9 “/” $9 “-json.log”}’ | sh

(全文完)

(欢迎转载本站文章,但请注明作者和出处 云域 – Yuccn

发表评论

您的电子邮箱地址不会被公开。 必填项已用*标注