首页
学习
活动
专区
圈层
工具
发布
社区首页 >专栏 >【简单快速】windows中docker数据如何从C盘迁移到其他盘

【简单快速】windows中docker数据如何从C盘迁移到其他盘

作者头像
watermelo37
发布2025-12-16 17:13:50
发布2025-12-16 17:13:50
570
举报
文章被收录于专栏:前端专精前端专精

【简单快速】windows中docker数据如何从C盘迁移到其他盘

我们都知道安装软件要尽可能安装在C盘以外的位置,但是有些软件总喜欢把数据默认存储在C盘中,甚至会出现数据比软件占空间更大的情况,比如QQ,微信等。对于开发者来说,还有一个软件,它本体不大,同样是默认将数据存储在C盘,数据动辄十几个GB甚至上百个GB,稍不注意就会撑爆C盘,这就是——Docker。

那么如何将Docker从C盘迁移到其他盘呢?

一、迁移实践步骤

1、确定空间大小和移动目标

一般docker数据会默认存在 C:\Users\Guang\AppData\Local\Docker\wsl 这个目录下,Users在文件夹里面可能显示为“用户”,并将 Guang 替换成你自己的电脑用户名,AppData文件夹是隐藏的,如果看不见先显示隐藏文件夹。

如果找不到也可以下个 everthing 软件去找,或者下个 treesize ,这个庞然大物总是藏不住的:TreeSize:免费的磁盘清理与管理神器,解决C盘爆满的燃眉之急

可以先检查一下要迁移的文件总大小,确定要迁移的盘可用内存大于要迁移的内容,最好是两倍(因为要先打包后拆包)。

然后打开cmd,输入命令列出已注册的 WSL 发行版信息:

代码语言:javascript
复制
wsl --list -v

如果你安装了docker,你的主要数据都会存在 docker-desktop-data 里面,当然建议你将所有内容都迁移出C盘,一步到位。

2、确定所有 wsl 发行版实例已关闭

如上图,state这一列,如果要迁移的不都是 stopped ,就需要手动关闭,比如先退出所有docker desktop等依赖docker的软件,再使用如下命令来确保关闭:

代码语言:javascript
复制
wsl --shutdown

操作之后再输入wsl --list -v命令,列出已注册的 WSL 发行版信息检查state是否都变成stopped。

3、新建一个文件夹并导出tar到该文件夹

在你想迁移的盘内新建一个文件夹,比如我的是D:\docker(下面的base就是指这个路径)。然后使用如下命令:

代码语言:javascript
复制
wsl --export docker-desktop-data D:\docker\docker-desktop-data.tar

// docker-desktop-data就是docker数据存放的位置
// 这里我将所有的wsl发行版实例都导出来了,所以还有如下命令
wsl --export docker-desktop D:\docker\docker-desktop.tar
wsl --export Ubuntu-22.04 D:\docker\Ubuntu-22.04.tar

命令的格式如下,wsl实例名就是wsl --list -v命令执行后的name一列中的元素,base路径就是你创建的新文件夹:

wsl --export wsl实例名 base路径+wsl实例名.tar

执行成功长这样:

如果卡顿请稍等,如果实在卡死,就按Ctrl + C 切出,去目标文件夹删除导出了一半的 tar 文件,再重新导出这个 wsl 实例的tar包。

4、注销(删除)原发行版

确定执行成功,就可以释放C盘中的内存了,请注意,这一步执行完,C盘中的原文件就都删除了。

代码语言:javascript
复制
wsl --unregister docker-desktop-data
// 同理,只删除你刚刚导出成功的 WSL 实例
wsl --unregister docker-desktop
wsl --unregister Ubuntu-22.04
5、从 tar 文件导入到新位置

同理,你导出了哪些 WSL 实例,注销了哪些 WSL 实例,这里就要导入哪些 WSL 实例,命令格式为:

wsl --import 实例名 目标文件夹 tar包所在位置 --version 2(按照wsl --list -v中的version来)

我执行的具体命令为:

代码语言:javascript
复制
# 1. 导入 docker-desktop(Docker 系统进程)
wsl --import docker-desktop D:\docker\docker-desktop D:\docker\docker-desktop.tar --version 2

# 2. 导入 docker-desktop-data(Docker 镜像/容器/卷等数据,关键!)
wsl --import docker-desktop-data D:\docker\docker-desktop-data D:\docker\docker-desktop-data.tar --version 2

# 3. 导入 Ubuntu 22.04(自用 Linux 环境)
wsl --import Ubuntu-22.04 D:\docker\ubuntu-22.04 D:\docker\Ubuntu-22.04.tar --version 2

这里不要将这些实例全部注册到同一个文件夹下,要加一层子文件夹,比如我这里的目标文件夹分别是D:\docker\docker-desktop、D:\docker\docker-desktop-data、D:\docker\ubuntu-22.04,不然可能会报错。

6、启动检查,删除tar包

这里就已经迁移成功了,再次启动docker,发现数据从D盘加载,C盘空间释放完毕,没问题就可以把tar包给删除掉。

二、docker-desktop 和 docker-desktop-data 分别是什么?

docker-desktop 负责存储 Docker Engine 、 CLI工具、Docker配置等,不存储用户的具体数据,所以一般体积较小。

docker-desktop-data 存储了所有的 Docker 镜像,所有容器的可写层,所有的 Volume 数据卷,构建的缓存等,一般体积较大。

所以不建议将 docker-desktop-data 放到C盘,会随着镜像和容器的增加大幅占用C盘的空间。但是docker不管安装在哪个盘,总是默认会将数据放到C盘下,所以需要手动处理一下。

三、结语

Docker 作为开发者利器,本应提升效率,却常因默认将海量数据存入 C 盘而“反噬”系统性能。将 docker-desktop-data 等关键数据迁移至其他磁盘,还能在不丢失任何镜像、容器或卷的前提下,彻底释放 C 盘压力。整个过程虽需几步命令,但清晰、安全、可逆。掌握这一技巧,从此告别“C 盘告急”,让开发环境既高效又整洁。

只有锻炼思维才能可持续地解决问题,只有思维才是真正值得学习和分享的核心要素。如果这篇博客能给您带来一点帮助,麻烦您点个赞支持一下,还可以收藏起来以备不时之需,有疑问和错误欢迎在评论区指出~

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2025-12-15,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 【简单快速】windows中docker数据如何从C盘迁移到其他盘
    • 一、迁移实践步骤
      • 1、确定空间大小和移动目标
      • 2、确定所有 wsl 发行版实例已关闭
      • 3、新建一个文件夹并导出tar到该文件夹
      • 4、注销(删除)原发行版
      • 5、从 tar 文件导入到新位置
      • 6、启动检查,删除tar包
    • 二、docker-desktop 和 docker-desktop-data 分别是什么?
    • 三、结语
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档