前言
在新版本的Docker Desktop中,若windows版本支持的情况下,为了获取更好的性能和更方便的使用体验,docker会与系统的wsl相集成,此时无法在设置中对docker image的安装路径进行管理。而随着docker的使用我们会发现c盘空间越来越吃紧,因此需要对docker的数据进行迁移。迁移方式有两种:
- 即使没有GUI设置,也可以在配置文件直接修改
- 使用本文提到的mklink指令
第一个方案操作复杂,且存在错误修改导致docker无法启动的风险,于是我们来讲第二个方案。
数据迁移
- 关闭docker相关服务:可采取结束进程,停止服务等操作关闭docker,防止后台占用文件无法迁移
- 关闭wsl:在命令界面使用
wsl --shutdown
关闭所有正在运行的wsl发行版本,结束docker的后端实现 - 迁移文件:将
%USER_ROOT%\AppData\Local\Docker
文件剪切至目标地址 - 建立连接:使用
mklink /J "链接地址" "源地址"
建立文件链接,源地址即为实际文件地址
原理说明
使用 mklink /J
可以建立一个目录到目录的链接,此处有别于快捷方式,而是相当于一个指针,指向使用的目标地址(源地址),文件夹内的任何操作都会被直接应用到实际的文件。但是,删除该目录的操作不会应用到实际目录,而是删除这个链接。
快捷方式虽然简单实用,但是有些情况下是不能作为数据目录、程序安装目录、环境配置目录。相较于快捷方式,目录链接在软件层面上与实际目录无异。