在Windows上修改Docker Desktop存储路径有三种方法:方法一通过设置界面直接修改Disk image location;方法二手动迁移docker-desktop-data WSL2发行版;方法三配置daemon.json指定data-root。
在 windows 上修改 docker desktop 的镜像与容器存储路径,核心是调整 wsl2 虚拟磁盘的存放位置或 docker 的数据根目录。不同方式适用场景略有差异,下面分三类实用方法说明,按推荐顺序排列。
方法一:通过 Docker Desktop 设置界面直接修改(最简单,适用于多数用户)
这是官方支持、无需命令行、风险最低的方式,适合只想把存储位置从 C 盘挪到 D 盘等非系统盘的用户。
- 退出 Docker Desktop(右键系统托盘图标 → Quit Docker Desktop)
- 打开设置:启动 Docker Desktop → 右上角齿轮图标 → Settings → Resources → Advanced
- 找到 Disk image location 选项,当前显示类似
C:UsersXXXAppDataLocalDockerwsl - 点击 Browse,选择新路径(如
D:docker-wsl),确保该文件夹已存在或由 Docker 自动创建 - 点击 Apply & Restart,Docker 会自动重启并迁移数据(首次可能耗时较长,取决于镜像体积)
方法二:手动迁移 docker-desktop-data WSL2 发行版(彻底可控,适合大容量或定制需求)
当界面方式失败、路径无法变更,或你希望完全掌控 WSL2 子系统存放位置时,用此法。它本质是导出/注销/重导入 WSL2 实例。
- 先关闭 Docker Desktop,再运行
wsl --shutdown确保所有 WSL 实例停止 - 执行
wsl -l -v查看是否列出docker-desktop-data(它是实际存镜像和容器数据的发行版) - 导出数据:
wsl --export docker-desktop-data D:ackupdocker-desktop-data.tar - 注销旧实例:
wsl --unregister docker-desktop-data - 创建目标目录(如
D:dockerdata),再导入:wsl --import docker-desktop-data D:dockerdata D:ackupdocker-desktop-data.tar --version 2 - 重启 Docker Desktop,进入 Settings → Resources → Advanced 查看路径是否更新为新目录
方法三:配置 daemon.json 指定 data-root(仅影响 Docker Daemon 数据,不改变 WSL2 磁盘位置)
此方式修改的是 Docker 引擎的数据根目录,但需注意:在 WSL2 后端下,它 不会改变 .vhdx 虚拟磁盘位置,仅影响 WSL2 内部 Docker 的 overlay2 等路径。一般不单独使用,常配合方法二。
- 确保 Docker 已退出,编辑配置文件:
C:Users用户名.dockerdaemon.json - 写入内容(路径需用双反斜杠或正斜杠):
{"data-root": "D:\docker-data"} - 保存后重启 Docker Desktop
- 验证:终端执行
docker info | findstr "Docker Root Dir",输出应为指定路径
无论选哪种方式,操作前建议备份重要镜像(docker save -o xxx.tar 镜像名),新路径所在磁盘需为 NTFS 格式且当前用户有完全控制权限。迁移完成后,旧路径下的 wsldataext4.vhdx 文件可手动删除释放空间(确认新环境运行正常后再删)。


















