docker容器内的数据存放在哪里

  参考资料:

  https://cloud.tencent.com/developer/article/1644756

  感谢这篇文章的作者无私地将知识post出来!希望有时间的朋友去参考资料处阅读全文。

  我们知道在docker的体系架构下,有容器、镜像的概念。镜像偏静态,容器是镜像的实例化,偏动态。如果我们想让容器和宿主机共享一个文件夹,那么可以使用-v参数作一个volume映射。但是,一个普遍的认知是,如果容器坏掉(start不了)那么容器里面的东西就会完全丢失掉。但是仔细一想,在容器的每次stop,start里,都保持了文件系统的一致性,也就说docker容器内除了挂载volumes之外,一定是在宿主机上保留了一份文件的。那么在容器没有办法打开的情况下,如何从宿主机去找到容器内的文件并取出来呢?

  就拿我遇到的具体问题来说吧,因为修改了容器内的一个配置文件导致容器没有办法start。你可以依以下步骤寻找容器内的文件。

  1. docker inspect

  通过 docker inspect + 容器名/ID 来查看容器的信息,我们需要找到的字段是:GraphDriver

  我们需要关注这里的UpperDir,使用ls命令看看这个文件夹里有什么吧,你会有惊喜的哦~

  2. 找自己需要的文件吧~

   这不就是容器进去后的根目录嘛~找自己需要文件即可。

posted @ 2021-11-17 20:21  思念殇千寻  阅读(1658)  评论(0编辑  收藏  举报