前言

在新版本的Docker Desktop中,若windows版本支持的情况下,为了获取更好的性能和更方便的使用体验,docker会与系统的wsl相集成,此时无法在设置中对docker image的安装路径进行管理。而随着docker的使用我们会发现c盘空间越来越吃紧,因此需要对docker的数据进行迁移。迁移方式有两种:

  1. 即使没有GUI设置,也可以在配置文件直接修改
  2. 使用本文提到的mklink指令

第一个方案操作复杂,且存在错误修改导致docker无法启动的风险,于是我们来讲第二个方案。

数据迁移

  1. 关闭docker相关服务:可采取结束进程,停止服务等操作关闭docker,防止后台占用文件无法迁移
  2. 关闭wsl:在命令界面使用 wsl --shutdown 关闭所有正在运行的wsl发行版本,结束docker的后端实现
  3. 迁移文件:将 %USER_ROOT%\AppData\Local\Docker 文件剪切至目标地址
  4. 建立连接:使用 mklink /J "链接地址" "源地址" 建立文件链接,源地址即为实际文件地址

原理说明

使用 mklink /J 可以建立一个目录到目录的链接,此处有别于快捷方式,而是相当于一个指针,指向使用的目标地址(源地址),文件夹内的任何操作都会被直接应用到实际的文件。但是,删除该目录的操作不会应用到实际目录,而是删除这个链接。
快捷方式虽然简单实用,但是有些情况下是不能作为数据目录、程序安装目录、环境配置目录。相较于快捷方式,目录链接在软件层面上与实际目录无异。

Last modification:July 16th, 2021 at 02:19 pm