admin 管理员组文章数量: 887021
背景:项目使用go来开发项目,需要docker。但是我的windows是家庭版,不仅没有hyper-v,而且安装完docker后只能使用wsl2(虽然说wsl2性能传说比较好,但是我的c盘容量实在台下,所以wsl更加适合我,能够自定义镜像存储位置)
先安装docker
第一步:先确定windows虚拟化是否开启。任务管理器-性能-CPU如图位置
第二步:开启hyper-v服务
因为我的windows版本是家庭版的原因,所以这个功能默认是没有的,我需要自己手动去增加这个功能。创建一个hyper-v.bat文件,复制一下代码进去,用管理员身份打开
等待安装完成,输入Y自动重启电脑即可。
完成安装后,就可以使用了,点击确定即可。
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
第三步:
将系统伪装成专业版
创建一个change.bat文件,复制一下代码进去,用管理员身份打开
REG ADD "HKEY_LOCAL_MACHINE\software\Microsoft\Windows NT\CurrentVersion" /v EditionId /T REG_EXPAND_SZ /d Professional /F
pause
第四步:
到了这一步,如果直接安装docker,会报错Containers Windows Feature is not available
意思是容器窗口功能不可用
新建一个containers.bat,内容如下:
pushd "%~dp0"
dir /b %SystemRoot%\servicing\Packages\*containers*.mum >containers.txt
for /f %%i in ('findstr /i . containers.txt 2^>nul') do dism /online /norestart /add-package:"%SystemRoot%\servicing\Packages\%%i"
del containers.txt
Dism /online /enable-feature /featurename:Containers -All /LimitAccess /ALL
第五步:
这个后就可以直接安装docker for windows了,自己在官网下载。这个版本是基于wsl安装,所以家庭版也可以在advance里面修改镜像存储目录。
迁移docker
因为docker比较强势,默认只能安装在c盘,无奈我的c盘又太小,度娘了一圈,将一个行之有效的方法贴上来。
第一步:关闭服务,右键结束进程
windows管理工具-hyper-v管理器
第二步:移动文件并且修改路径
将 C:\Program Files\Docker 和 C:\ProgramData\DockerDesktop 剪切到你想放的磁盘下,我的是D:\go,
旧版本的 docker的根镜像存放目录会在C:\Users\Public\Documents\Hyper-V\Virtual Hard Disks
删除源文件夹C:\Users\Public\Documents\Hyper-V\Virtual Hard Disks
接着分别创建符号链接,省出C盘的空间不说,配置文件什么的都不用动
cmd /c mklink /D "C:\Program Files\Docker" "D:\go\Docker"
cmd /c mklink /D C:\ProgramData\DockerDesktop D:\go\DockerDesktop
cmd /c mklink "C:\Users\Public\Documents\Hyper-V\Virtual Hard Disks" D:\go\DockerDesktop\vm-data\hyper-v
迁移完成,打开小鲸鱼如果出现问题
Net stop com.docker.service
Net start com.docker.service
卸载
如果是创建符号链接法迁移路径的话,卸载的时候,在正常删除的同时。需要手动删除我们创建的三个符号链接。否则我的情况会出现下一次正常安装docker后,想卸载的时候会一直卡在"removing vm and image"。
如果docker一直卸载不掉,有强制卸载法如下:
1.创建delete.ps1文件,写入以下代码
$ErrorActionPreference = "SilentlyContinue"
kill -force -processname 'Docker for Windows', com.docker.db, vpnkit, com.docker.proxy, com.docker.9pdb, moby-diag-dl, dockerd
try {
./MobyLinux.ps1 -Destroy
} Catch {}
$service = Get-WmiObject -Class Win32_Service -Filter "Name='com.docker.service'"
if ($service) { $service.StopService() }
if ($service) { $service.Delete() }
Start-Sleep -s 5
Remove-Item -Recurse -Force "~/AppData/Local/Docker"
Remove-Item -Recurse -Force "~/AppData/Roaming/Docker"
if (Test-Path "C:\ProgramData\Docker") { takeown.exe /F "C:\ProgramData\Docker" /R /A /D Y }
if (Test-Path "C:\ProgramData\Docker") { icacls "C:\ProgramData\Docker\" /T /C /grant Administrators:F }
Remove-Item -Recurse -Force "C:\ProgramData\Docker"
Remove-Item -Recurse -Force "C:\Program Files\Docker"
Remove-Item -Recurse -Force "C:\ProgramData\Microsoft\Windows\Start Menu\Programs\Docker"
Remove-Item -Force "C:\Users\Public\Desktop\Docker for Windows.lnk"
Get-ChildItem HKLM:\software\microsoft\windows\currentversion\uninstall | % {Get-ItemProperty $_.PSPath} | ? { $_.DisplayName -eq "Docker" } | Remove-Item -Recurse -Force
Get-ChildItem HKLM:\software\classes\installer\products | % {Get-ItemProperty $_.pspath} | ? { $_.ProductName -eq "Docker" } | Remove-Item -Recurse -Force
Get-Item 'HKLM:\software\Docker Inc.' | Remove-Item -Recurse -Force
Get-ItemProperty HKCU:\software\microsoft\windows\currentversion\Run -name "Docker for Windows" | Remove-Item -Recurse -Force
#Get-ItemProperty HKCU:\software\microsoft\windows\currentversion\UFH\SHC | ForEach-Object {Get-ItemProperty $_.PSPath} | Where-Object { $_.ToString().Contains("Docker for Windows.exe") } | Remove-Item -Recurse -Force $_.PSPath
#Get-ItemProperty HKCU:\software\microsoft\windows\currentversion\UFH\SHC | Where-Object { $(Get-ItemPropertyValue $_) -Contains "Docker" }
以管理员身份打开powershell:
cd 文件路径
.\delete.ps1
再用360清理一下垃圾,就完全卸载干净了。
本文标签: 家庭版 攻略 Windows docker WSL
版权声明:本文标题:windows家庭版wsl下docker安装踩坑以及迁移出C盘攻略 内容由网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:http://www.freenas.com.cn/jishu/1726411315h955832.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论