首页 > 解决方案 > 将图像从 Hyper-V 移植到 WSL2

问题描述

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

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

标签: dockerwindows-subsystem-for-linux

解决方案


要将现有卷从 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. 现在,检查Use the WSL 2 based engineDocker Desktop 中的设置并恢复卷:
docker run --rm -v some_volume:/volume -v c:\where-to-backup:/backup alpine tar -C /volume/ -xjf /backup/backup.tar.bz2

推荐阅读