我正在学习Docker,这是一个新手问题。
一方面,我想从高层次的观点理解技术基础,所以我有正确的心理模型来推理。另一方面,我想了解访问容器内的数据有哪些选项(使用-v标志进行文件同步?)。
让我们以Git为例。也许,我们可以在Git存储库和Docker镜像/容器/文件系统之间绘制相似之处。
使用Git,文件位于工作目录中:
执行commit
操作后,文件将以内部格式存储在 objects 文件夹中,并且无法从Windows资源管理器中直接访问
checkout
操作才能将文件从Git存储库中导入工作副本文件夹后,才能访问该文件如何使用Docker?让我们再看一个例子。我刚做了以下几件事:
docker run -it hello-world cmd
echo "test" > myfile.txt
exit
现在的问题是:
myfile.txt
在哪里?我可以在主机系统上使用Windows资源管理器导航到它吗?myfile.txt
的容器?对于Git,我可以保存.git
文件夹。 (文章:Docker backup – Easy steps to backup and restore your containers)图像文件的位置
让我感到困惑的一件事是我可以在这里使用主机的Windows资源管理器查看Docker镜像的文件:
C:\ProgramData\Docker\windowsfilter\379664351fc1b563c0dbd5d4c815d9792bd4c89c315a16792f56b6706084ca4c\Files
我希望它们像Git一样隐藏在一些内部格式中。
当然,只有hello.txt
文件可见,因为我们正在查看基本图像而不是容器实例。
泊坞窗文件的位置
接下来,让我们查看容器在主机文件系统中的位置。文件夹名称表明容器存储在此处:
但是,当我打开任何这些文件夹时,即使有其他文件存在,我也无法在任何地方找到myfile.txt
: