Hyper-V + WSL2 + Docker 问题记录

命令行启用和关闭 Hyper-V

# 启用
bcdedit /set hypervisorlaunchtype auto
# 关闭
bcdedit /set hypervisorlaunchtype off

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

管理员运行 CMD 或 PowerShell。

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

需要删除启动项的话:

# 查看启动项
bcdedit /enum
# 删除启动项
bcdedit /delete {xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx}

修改 WLS2 镜像位置

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

退出 Docker Desktop

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

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

启动异常

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

netsh winsock reset

导入 dmp 文件到 oracle 容器

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

参考资料

  • hyper-v 开启与关闭 - CSDN 博客
  • bcdedit | Microsoft Docs

你可能感兴趣的:(docker,wsl,hyper-v)