Hyper-V + WSL2 + Docker 问题记录

x33g5p2x  于2021-11-22 转载在 Docker  
字(1.4k)|赞(0)|评价(0)|浏览(526)

命令行启用和关闭 Hyper-V

  1. # 启用
  2. bcdedit /set hypervisorlaunchtype auto
  3. # 关闭
  4. bcdedit /set hypervisorlaunchtype off

开机时选择是否启用 Hyper-V

管理员运行 CMD 或 PowerShell。

  1. # 创建当前启动项(系统)的副本
  2. bcdedit /copy {current} /d "Windows 10 No Hyper-V"
  3. 已将该项成功复制到 {xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx}。
  4. # 设置启动项的选项值
  5. bcdedit /set {xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx} hypervisorlaunchtype off

需要删除启动项的话:

  1. # 查看启动项
  2. bcdedit /enum
  3. # 删除启动项
  4. bcdedit /delete {xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx}

修改 WLS2 镜像位置

docker-desktop 是发行版,存储在 %LOCALAPPDATA%/Docker/wsl/distro,docker-desktop-data 是数据,存储在 %LOCALAPPDATA%/Docker/wsl/data

退出 Docker Desktop

  1. # 查看已安装的子系统
  2. wsl -l -v --all
  3. NAME STATE VERSION
  4. * docker-desktop Running 2
  5. docker-desktop-data Running 2
  6. # 关闭 WLS
  7. wsl --shutdown
  8. # 将子系统导出到指定位置
  9. wsl --export docker-desktop C:\Users\duanluan\Desktop\docker-desktop.tar
  10. wsl --export docker-desktop-data C:\Users\duanluan\Desktop\docker-desktop-data.tar
  11. # 注销子系统
  12. wsl --unregister docker-desktop
  13. wsl --unregister docker-desktop-data
  14. # 将之前导出的子系统导入到新目录,当然得先创建新目录的文件夹
  15. wsl --import docker-desktop D:\Caches\Docker\wsl\distro C:\Users\duanluan\Desktop\docker-desktop.tar --version 2
  16. wsl --import docker-desktop-data D:\Caches\Docker\wsl\data C:\Users\duanluan\Desktop\docker-desktop-data.tar --version 2

启动 Docker Desktop 并删除之前导出的 tar 文件。

启动异常

Failed to set version to docker-desktop: exit code: -1

  1. netsh winsock reset

导入 dmp 文件到 oracle 容器

  1. # 复制文件至容器
  2. docker cp C:\Users\duanluan\Desktop\xxx.dmp 52eabab26311:/home
  3. # 进入容器
  4. docker exec -it 52eabab26311 /bin/bash
  5. # 导入
  6. imp 用户名/密码 file=/home/xxx.dmp full=y ignore=y

参考资料

相关文章