Windows主机中Docker Windows容器的存储位置及迁移咨询
Windows容器数据存储位置与迁移方案
一、容器内的存储位置
容器拥有独立的文件系统,你可以直接通过容器内的路径访问数据,比如你提到的C:\Folder,就是容器内部的原生路径,可通过docker exec命令进入容器后操作,或直接用容器命令访问。
二、主机端的存储路径
当切换到Windows容器模式时,Docker会将容器数据存储在虚拟硬盘(VHD)文件中,默认路径为:
C:\ProgramData\Docker\windowsfilter
如果你在Docker Desktop中自定义了数据存储目录,容器的VHD文件会存放在该自定义目录下的windowsfilter子文件夹内,可通过「Resources > Advanced」查看自定义的数据根目录。
每个容器对应独立的VHD文件,但直接操作这些底层文件风险较高,不推荐作为常规操作方式。
三、容器数据迁移的推荐方法
若要迁移容器A的C:\Folder及所有内容到另一台主机,更安全可靠的方式是使用Docker原生命令:
- 导出容器文件系统为压缩包
在源主机执行:
docker export <容器A的ID或名称> -o containerA_data.tar
该命令会将容器A的完整文件系统打包为tar文件,包含目标文件夹及所有内容。
2. 传输压缩包到目标主机
通过U盘、网络传输等方式将containerA_data.tar复制到目标主机。
3. 导入压缩包创建新容器
在目标主机执行:
docker import containerA_data.tar new_container_image docker run -d --name containerA_new new_container_image
即可生成与原容器A数据一致的新容器。
如果仅需迁移单个文件夹C:\Folder,可使用docker cp命令分步操作:
# 源主机:将容器内C:\Folder复制到主机本地 docker cp <容器A的ID或名称>:C:\Folder C:\local_folder # 传输C:\local_folder到目标主机后,复制到新容器 docker cp C:\local_folder <新容器ID或名称>:C:\Folder
四、直接访问主机VHD文件的注意事项
若一定要直接操作主机上的VHD文件,需注意:
- 必须先停止目标容器,否则VHD处于挂载状态无法读取或修改;
- 可通过系统自带的磁盘管理工具(
diskmgmt.msc)挂载VHD文件,挂载后即可像访问本地磁盘一样查看容器内的文件。
内容的提问来源于stack exchange,提问作者Lucas Paixão
相关产品推荐
相关产品推荐

