将图像从Hyper-V移植到WSL2

时间:2020-07-13 15:08:56

标签: docker windows-subsystem-for-linux

我最近安装了Windows 10 2004,可以访问WSL2。为此,Docker桌面为您提供了启用WSL2支持的选项,以便将其容器/卷从Hyper-V中存储切换为WSL2。我启用了此功能,但是它没有从Hyper-V移植到我现有的任何容器或卷上。相反,它只是重新开始。

我想知道是否可以将现有容器/卷从Hyper-V移至WSL2,这样我就不会丢失所有卷数据,而不必重建所有容器?

1 个答案:

答案 0 :(得分:6)

要将现有卷从Hyper-V上的Docker(即,WSL2之前的版本)移植到基于WSL2的Docker:

  1. 确保已恢复为Hyper-V;也就是说,请确保在Docker桌面设置->常规中您已经取消选中 Use the WSL 2 based engine

从提升的Powershell终端执行以下操作以备份卷:

docker volume ls (find volume name you want to copy: some_volume)
docker run --rm -v some_volume:/volume -v c:\where-to-backup:/backup alpine tar -cjf /backup/backup.tar.bz2 -C /volume ./
  1. 现在,检查Docker Desktop中的Use the WSL 2 based engine设置并还原该卷:
docker run --rm -v some_volume:/volume -v c:\where-to-backup:/backup alpine tar -C /volume/ -xjf /backup/backup.tar.bz2