跳转至

在Windows(WSL)中如何迁移Docker

在Windows 10中Docker是默认安装到WSL中的,而安装到WSL中的任意分发版都是默认放在C盘中的。这样会让我们的C盘资源极度紧张,而且也限制了Docker的镜像数量。

从运维角度来说,我们清楚系统盘的重要性,原则上是将应用数据和文档都避开C盘,这样一来能增加C盘的稳定性(减少IO操作,降低磁盘故障风险),还能保证在重装系统后不会导致数据和文档的丢失。因此将Docker迁移出C盘就显得至关重要。

迁移步骤

1. 确认Docker是否安装到WSL

查看Docker桌面的“设置》Resources》ADVANCED” ,如果如下图所示则证明是Docker是安装在WSL中:

查看Docker是否安装在WSL中
查看Docker是否安装在WSL中

2. 以管理员身份运行PowerShell

以管理员身份运行Powershell
以管理员身份运行Powershell

3. 执行迁移命令

假设我有一个临时目录“D:\tmp”用来存放临时文件,同时想将Docker迁移到“D:\Program Files\docker\”目录下:

  1. 查看Docker安装到WSL的分发版,执行命令:wsl --list --all

    • 从上述命令中我们可以看到Docker安装了两个分发版:docker-desktop-data和docker-desktop
  2. 导出Docker到临时目录“D:\tmp”下,执行如下命令:

    1. wsl --export docker-desktop D:\\tmp\\wsl-docker-desktop.tar
    2. wsl --export docker-desktop-data D:\tmp\wsl-docker-desktop-data.tar
  3. 退出原先的Docker分发版,执行如下命令:

    1. wsl --unregister docker-desktop
    2. wsl --unregister docker-desktop-data
  4. 重新导入Docker并修改到“D:\Program Files\docker\”目录下,执行如下命令:

    1. wsl --import docker-desktop 'D:\Program Files\docker\docker-desktop' D:\tmp\wsl-docker-desktop.tar --version 2
    2. wsl --import docker-desktop-data 'D:\Program Files\docker\docker-desktop-data' D:\tmp\wsl-docker-desktop-data.tar --version 2

4. 验证迁移结果

  1. 打开Docker桌面,看是否能够正常启动,数据是否丢失

  2. 查看迁移后的目录是否有内容:

    查看迁移目录
    查看迁移目录

    • 可以看到,这时候在“D:\Program Files\docker\”目录下已经有数据了,感兴趣的也可以自己点进去看看。

评论