docker - 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)。例如,如果我想确保每晚都备份数据文件,那么我会去哪里寻找。我今天花了几个小时在谷歌上搜索,但没有找到答案。我什至读到这些数据文件没有存储在文件系统上——当然它们必须存储在文件系统上。
解决方案
Windows 中的 Linux 容器(通常)由单个虚拟化 Linux 容器主机为所有正在使用的容器提供。您可以检查~\Hyper-V\Virtual Hard Disks
.
Windows 中的 Windows 容器使用实例停止时丢弃的临时存储。如果您已将数据保存到 NTFS 绑定挂载或命名卷,则可以按原样从挂载源读取它。
容器的层存储在和目录中并在它们C:\ProgramData\docker
之间拆分。(此路径来源于注册表下)image
windowsfilter
HKLM:SOFTWARE\Microsoft\WindowsNT\CurrentVersion\Virtualization\LayerRootLocations
但是,您将无法将这些层作为卷安装和检查。在容器中看到的系统文件由过滤器驱动程序具体化,该过滤器驱动程序提供包层的虚拟覆盖到容器卷上,每个都通过wcifs.sys
.
推荐阅读
- c - 函数创建链表,在运行结束时将其删除
- sql - 在 oracle SQL 中以周为单位拆分日期范围
- r - R 通过非精确字符键合并(模糊匹配)
- r - 将一列中以冒号分隔的字符串拆分为 R 中的几列
- rabbitmq - 无法配置 MassTransit 发送拓扑相关 ID
- json - 应用程序脚本 JSON.parse() 返回意外结果,我该如何解决?
- java - 找不到添加到我的自定义库的库
- python - 如何使用模运算符在 Python 中打印非序列数
- typescript - 如何让vscode检测路径intellisense中的.native.js和.web.js文件?
- powershell - 如何使 Powershell 提取元数据脚本运行得更快?