×

操作系统

docker根据overlay2的目录名找到对应的容器

穆琪 穆琪 发表于2023-06-06 浏览57 评论0

背景

在工作中,有一段旧代码在容器中使用了临时文件库tmpfile,并设置为不自动删除,所以临时文件一直堆积在/tmp目录下。

而容器中的tmp目录是不会清理的,终于有一天,整个var目录满了。

查到overlay2目录下的某个目录占用比较大,就需要根据目录名找到对应的容器

操作语句

docker ps -q | xargs docker inspect --format '{{.State.Pid}}, {{.Id}}, {{.Name}}, {{.GraphDriver.Data.WorkDir}}' | grep '目录名'

操作系统

grep 打印出前后n行的内容

穆琪 穆琪 发表于2023-04-28 浏览60 评论0

1.背景

在开发排查问题的过程中,需要grep错误日志,为了更好的分析,需要把grep到的错误日志的前后n行打印出了,此处以10行为例。

2.步骤

可以使用 grep 命令结合 Context Control 选项来打印出匹配行的前后行内容,其中 -C 选项用于指定要打印的上下文行数,例如:

操作系统

监控删除docker日志

穆琪 穆琪 发表于2023-04-28 浏览50 评论0

1.背景

docker容器在启动一段时间后应用服务会产生日志,当没有映射出来的时候,这些日志就会持续占用var下的目录空间,此时就需要清理这些日志。

2.脚本

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 ========"