機器視覺-機器視覺-嘗試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

浙公網安備 33010602011771號