查找容器挂载目录

介绍

问题: 经常会碰到容器起不来,或者起来后立马退出,一直处在starting状态中;docker logs看不到有用的日志内容;所以需要使用进入到容器内部,检查日志报错;

最后编辑时间:2022-05-25

思路

1.使用inspect查询容器的详细信息;
2.grep “Dir”,docker使用了overlay或者overlay2的文件系统来存储,
  overlay的特性是分层,merged目录只有在容器运行时才会出现(merged目录涵盖了容器内部所有的文件),
  容器启动不了的时候只能进入diff目录查找你想要的文件;
3.使用awk和sed进行格式处理;
4.使用xargs 将整理好的目录路径传给du -sh命令进行统计大小;
5.根据目录的大小来找;

解决

docker inspect 容器名或者id|grep  Dir|awk '{print $2}'|awk -v RS=":" '{print $0}'|sed -e 's/\"//g' -e 's/\,//g'|xargs du -sh|grep -e M -e G


例子:
[root@Clone ~]# docker inspect distracted_keller|grep  Dir|awk '{print $2}'|awk -v RS=":" '{print $0}'|sed -e 's/\"//g' -e 's/\,//g'|xargs du -sh|grep -e M -e G
18M    /var/lib/docker/overlay2/932c04084847f4363a864d42729ead353d32599d7267f6350320a041893b673e/diff
3.5M    /var/lib/docker/overlay2/964f6ec4640b4cf46249e8d6f31b38dced0337b75ac5573588608f471fe1ad78/diff
1.3M    /var/lib/docker/overlay2/442bb4d64343e68e744f000501d3fbb35bc3e34d48193f47befe1bc3e0a98762/diff
du: cannot access ‘/var/lib/docker/overlay2/8bb35910a8bed7747fc11b48f5a156efefce83a37af9a7cbb46aa790e88d0955/merged’: No such file or directory

## 到了这里是不是又有了最后一公里的问题;这个自己想办法解决吧,办法N多,grep find都可以;

你可能感兴趣的:(查找容器挂载目录)