美文网首页docker
查找容器挂载目录

查找容器挂载目录

作者: 上帝是自由的 | 来源:发表于2022-05-30 22:33 被阅读0次

    介绍

    问题: 经常会碰到容器起不来,或者起来后立马退出,一直处在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都可以;
    

    相关文章

      网友评论

        本文标题:查找容器挂载目录

        本文链接:https://www.haomeiwen.com/subject/misaprtx.html