我刚刚在Windows主机文件系统中找到的Docker容器中创建的文件在哪里?

时间:2017-10-24 12:18:46

标签: windows docker

我正在学习Docker,这是一个新手问题。

一方面,我想从高层次的观点理解技术基础,所以我有正确的心理模型来推理。另一方面,我想了解访问容器内的数据有哪些选项(使用-v标志进行文件同步?)。

Git场景

让我们以Git为例。也许,我们可以在Git存储库和Docker镜像/容器/文件系统之间绘制相似之处。

  • 使用Git,文件位于工作目录中:

    Git working copy

  • 执行commit操作后,文件将以内部格式存储在 objects 文件夹中,并且无法从Windows资源管理器中直接访问

    Git objects folder

  • 只有在我执行checkout操作才能将文件从Git存储库中导入工作副本文件夹后,才能访问该文件

Docker场景

如何使用Docker?让我们再看一个例子。我刚做了以下几件事:

  1. docker run -it hello-world cmd
  2. echo "test" > myfile.txt
  3. exit
  4. Docker example

    问题

    现在的问题是:

    1. 主机系统上存储的myfile.txt在哪里?我可以在主机系统上使用Windows资源管理器导航到它吗?
    2. 我需要备份什么才能保存包含myfile.txt的容器?对于Git,我可以保存.git文件夹。 (文章:Docker backup – Easy steps to backup and restore your containers
    3. 到目前为止我所知道的

      图像文件的位置

      让我感到困惑的一件事是我可以在这里使用主机的Windows资源管理器查看Docker镜像的文件:

      • C:\ProgramData\Docker\windowsfilter\379664351fc1b563c0dbd5d4c815d9792bd4c89c315a16792f56b6706084ca4c\Files

        Docker image with hello.txt file

      我希望它们像Git一样隐藏在一些内部格式中。

      当然,只有hello.txt文件可见,因为我们正在查看基本图像而不是容器实例。

      泊坞窗文件的位置

      接下来,让我们查看容器在主机文件系统中的位置。文件夹名称表明容器存储在此处:

      • C:\ProgramData\Docker\containers

        Docker container folder

      但是,当我打开任何这些文件夹时,即使有其他文件存在,我也无法在任何地方找到myfile.txt

      Docker container subfolder

0 个答案:

没有答案