机器视觉-机器视觉-尝试Windows下使用Docker 容器进行AMD ROCm加速(1)
老版docker desktop windows 底层使用virtual box 虚拟机技术实现容器化, 新版版本底层换成了wsl2架构, desktop 会自动创建2个带docker前缀的wsl, 以此实现容器化, 分别是:
- docker-desktop: 用来运行 docker engine, 占用空间为 100MB
- docker-desktop-data, 用于存储docker 镜像, 所以占用空间会非常大.
这两个wls默认位置 %LOCALAPPDATA%/Docker/wsl,
docker 环境准备:
- docker 官网下载 docker desktop 的 windows版本, 并安装.
- 安装后, 启动 Docker Desktop 应用程序完成剩余的安装任务. 如果报 unable to detect a Hypervisor 错误, 使用管理员权限执行下面批处理文件, 会安装Hyper-V相关组件, 并重启电脑, 重启后启用或关闭Windows功能就能看到Hyper-V已被安装.
pushd "%~dp0"
dir /b %SystemRoot%\servicing\Packages\*Hyper-V*.mum >hyper-v.txt
for /f %%i in ('findstr /i . hyper-v.txt 2^>nul') do dism /online /norestart /add-package:"%SystemRoot%\servicing\Packages\%%i"
del hyper-v.txt
Dism /online /enable-feature /featurename:Microsoft-Hyper-V-All /LimitAccess /ALL
- 可选步骤: 启动 Docker Desktop 应用程序如果仍然无法启动docker engine, 使用管理员权限执行下面批处理文件, 并重启电脑. 然后继续启动 Docker Desktop 应用程序完成剩余的安装任务
bcdedit /set hypervisorlaunchtype auto
- 可选步骤, 如果docker Desktop报 docker Desktop - WSL distro terminated abruptly 错误, 执行下面命令, 检查linux subsystem的状态
wsl --list -v
其中 Ubuntu 为 Windows 自带的 wsl, 以docker-作为前缀的两个为docker desktop 创建 wsl .
如果docker的两个wsl都处于stopped, 可将它们注销掉, 命令为:
wsl --unregister subsystemname
-
注销掉docker wsl之后, 重新启动 Docker Desktop 应用程序一般就OK
-
调整 docker-desktop-data 虚拟磁盘到D盘.
Docker Desktop 应用程序运行正常后, 考虑到 docker-desktop-data 对应的虚拟磁盘文件 vhdx 文件占用空间会非常大, 可考虑将它移到D盘, 命令如下:
wsl --shutdown
wsl --export docker-desktop-data d:\my_workspace\docker-desktop\docker-desktop-data.tar
# unregister 后, 原来C盘 对应的 vhdx 文件将自动删除
wsl --unregister docker-desktop-data
# import命令的第一路径为将来新的工作目录
wsl --import docker-desktop-data d:\my_workspace\docker-desktop\data d:\my_workspace\docker-desktop\docker-desktop-data.tar --version 2
强行关闭 WSL 服务
有时 wsl 会占用太多的CPU, 一般情况下直接kill wsl将不会成功, 变通的方法是: 在Windows的服务中找到 LxssManager 这个服务,右键,重启服务即可,注意此时WSL将会关闭!
参考
https://blog.csdn.net/weixin_47190898/article/details/131060441
https://blog.csdn.net/m0_73697178/article/details/134930402