首页 > 解决方案 > Windows PC 上实际存储卷的位置是什么?

问题描述

请从 docker compose 文件中查看以下代码:

sql.data:
    image: microsoft/mssql-server-linux:2017-latest
    volumes:
      - mssql-server-linux-data:/var/opt/mssql/data

代码完全按预期工作,即数据比应用程序寿命更长,即它是持久的。

这些数据究竟存储在我的 Windows PC 上的什么位置(Docker for Windows - Linux Containers)。例如,如果我想确保每晚都备份数据文件,那么我会去哪里寻找。我今天花了几个小时在谷歌上搜索,但没有找到答案。我什至读到这些数据文件没有存储在文件系统上——当然它们必须存储在文件系统上。

标签: docker

解决方案


Windows 中的 Linux 容器(通常)由单个虚拟化 Linux 容器主机为所有正在使用的容器提供。您可以检查~\Hyper-V\Virtual Hard Disks.


Windows 中的 Windows 容器使用实例停止时丢弃的临时存储。如果您已将数据保存到 NTFS 绑定挂载或命名卷,则可以按原样从挂载源读取它。

容器的存储在和目录中并在它们C:\ProgramData\docker之间拆分。(此路径来源于注册表下)imagewindowsfilterHKLM:SOFTWARE\Microsoft\WindowsNT\CurrentVersion\Virtualization\LayerRootLocations

但是,您将无法将这些层作为卷安装和检查。在容器中看到的系统文件由过滤器驱动程序具体化,该过滤器驱动程序提供包层的虚拟覆盖到容器卷上,每个都通过wcifs.sys.


推荐阅读