docker文件迁移到其他磁盘解决c盘空间不足的问题

本文介绍如何将Win10上DockerToolbox的镜像与容器从C盘迁移至其他磁盘,通过创建NTFS符号链接,释放C盘空间,详细步骤包括关闭虚拟box服务、剪切.docker文件夹及使用mklink命令。

win10上的docker toolbox默认会把docker的镜像与容器都放在c盘
在这里插入图片描述
在这里插入图片描述
随着拉取的镜像越来越多,空间占用越来越多。
其中最大的是disk.vmdk这种类型的文件,下图中已经占用了7G的空间
在这里插入图片描述
把它迁移到其他磁盘的办法:

  1. 剪切到整个C:\Users\zongxing.docker文件夹到某磁盘,比如:F:\softbak\dockerfiles.docker
  2. 把virtualbox相关的进服务先关闭,进程也关掉(也可以先剪切文件,等系统提示,有进程占用资源,会提示哪个进程占用的)
  3. 在dos下执行以下命令:
mklink  /j .docker F:\softbak\dockerfiles\.docker

命令介绍
NTFS 符号链接又称“符号链接”,是 NTFS 文件系统中指向文件系统中的另一个对象的一类对象,被指向的对象叫做“目标”。
mklink 是 Windows 下用于创建符号链接的工具。
使用方式:
MKLINK [[/D] | [/H] | [/J]] 链接名称 目标
说明:
/D 创建目录符号链接而不是文件符号链接(默认为文件符号链接)
/H 创建硬链接而不是符号链接
/J 创建目录连接点
链接名称 指定新的符号链接名称
目标 指定新链接引用的路径(绝对路径或者相对路径均可)


再次启动Docker,成功
在这里插入图片描述
c盘空间成功释放出7个G左右的空间。
在这里插入图片描述
打开我的电脑,可以看到c盘中的.docker文件夹已经有一个箭头(快捷方式)的引用标识了。
在这里插入图片描述

<think>根据用户需求,用户希望将Docker软件从C迁移到D。结合引用[1]和引用[2]的信息,主要方法是通过创建符号链接(mklink)将CDocker相关目录映射到D。同时引用[2]特别强调不要通过Docker设置修改位置,而是使用wsl命令迁移。 步骤总结如下: 1. 停止Docker和WSL相关服务 2. 备份数据(重要) 3. 在D创建目标文件夹结构 4. 迁移现有数据(如果已安装) 5. 删除原C目录(迁移后) 6. 创建符号链接 7. 重启Docker 具体步骤: 1. **停止相关服务**: - 退出Docker Desktop - 在PowerShell(管理员)执行:`wsl --shutdown` 2. **备份数据**:复制整个`C:\Users\<用户名>\AppData\Local\Docker`目录到安全位置。 3. **在D创建文件夹**(示例路径为`D:\Docker`): ``` D:\Docker ├─Local │ ├─Docker │ └─wsl ├─Roaming │ └─Docker └─Docker # 用于映射C:\Program Files\Docker ``` 4. **迁移现有数据**(若已安装): - 将`C:\Program Files\Docker`内容复制到`D:\Docker\Docker` - 将`C:\Users\<用户名>\AppData\Local\Docker`复制到`D:\Docker\Local\Docker` - 将`C:\Users\<用户名>\AppData\Local\wsl`复制到`D:\Docker\Local\wsl` - 将`C:\Users\<用户名>\AppData\Roaming\Docker`复制到`D:\Docker\Roaming\Docker` 5. **删除原目录**(确保数据复制无误后): 手动删除上述C的四个文件夹。 6. **创建符号链接**(管理员权限打开cmd): ```cmd mklink /J "C:\Program Files\Docker" "D:\Docker\Docker" mklink /J "C:\Users\<用户名>\AppData\Local\Docker" "D:\Docker\Local\Docker" mklink /J "C:\Users\<用户名>\AppData\Local\wsl" "D:\Docker\Local\wsl" mklink /J "C:\Users\<用户名>\AppData\Roaming\Docker" "D:\Docker\Roaming\Docker" ``` 7. **重启电脑并启动Docker**。 注意事项: - 符号链接创建后,所有读写操作实际发生在D - 若迁移Docker无法启动,检查wsl状态:`wsl -l -v` - 引用[2]提到镜像存储在wsl目录,需确保`wsl`目录迁移完整[^2] 相关问题: 1. 如何验证Docker迁移后是否正常工作? 2. 迁移后如何清理C残留文件? 3. 除了符号链接,还有其他迁移Docker的方法吗? </think>### 将Docker从C迁移到D的完整步骤 #### 核心原理 通过**符号链接(mklink)** 将CDocker目录映射到D,实现存储空间的转移。关键操作包括: 1. 创建D目录结构 2. 迁移现有数据 3. 删除原C目录 4. 建立符号链接 #### 详细步骤(Windows系统) 1. **停止Docker服务**: - 退出Docker Desktop - 管理员权限打开PowerShell运行: ```powershell wsl --shutdown ``` 2. **创建D目录结构**: ```bash D:\Docker ├─Docker # 映射 C:\Program Files\Docker ├─Local │ ├─Docker # 映射 C:\Users\<用户名>\AppData\Local\Docker │ └─wsl # 映射 C:\Users\<用户名>\AppData\Local\wsl └─Roaming └─Docker # 映射 C:\Users\<用户名>\AppData\Roaming\Docker ``` 3. **迁移现有数据**(若已安装): - 复制 `C:\Program Files\Docker` → `D:\Docker\Docker` - 复制 `C:\Users\<用户名>\AppData\Local\Docker` → `D:\Docker\Local\Docker` - 复制 `C:\Users\<用户名>\AppData\Local\wsl` → `D:\Docker\Local\wsl`(包含镜像和容器数据[^2]) - 复制 `C:\Users\<用户名>\AppData\Roaming\Docker` → `D:\Docker\Roaming\Docker` 4. **删除原C目录**(确保数据复制无误后): - 手动删除上述4个C目录 5. **创建符号链接**(管理员权限运行CMD): ```cmd mklink /J "C:\Program Files\Docker" "D:\Docker\Docker" mklink /J "C:\Users\<用户名>\AppData\Local\Docker" "D:\Docker\Local\Docker" mklink /J "C:\Users\<用户名>\AppData\Local\wsl" "D:\Docker\Local\wsl" mklink /J "C:\Users\<用户名>\AppData\Roaming\Docker" "D:\Docker\Roaming\Docker" ``` 6. **重启服务**: - 重新启动Docker Desktop - 检查存储位置:运行 `docker info` 查看 `Docker Root Dir` #### ⚠️ 重要注意事项 1. **必须通过符号链接迁移**:直接在Docker设置中修改路径可能导致WSL子系统崩溃[^2] 2. **用户名替换**:上述命令中的 `<用户名>` 需替换为实际用户名(如Administrator) 3. **权限要求**:所有操作需在**管理员权限**下执行 4. **数据安全**:建议操作前备份 `wsl` 目录(包含所有镜像和容器数据) #### 验证迁移成功 1. 在D查看文件更新日期是否变化 2. 运行测试容器: ```bash docker run hello-world ``` 3. 检查C目录属性:应显示为"链接"而非普通文件夹 --- ### 相关问题 1. 迁移Docker无法启动该如何排查? 2. 如何将WSL子系统整体迁移到其他磁盘? 3. 符号链接(mklink)和快捷方式有什么区别? 4. 除了Docker,哪些Windows软件需要通过符号链接迁移
评论 2
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值