Win10家庭版安装Docker for windows遇坑总结

  • 安装前的简单了解
  • 安装步骤
  • 添加Hyper-v
  • 安装Docker for windows
  • 其他问题

因为做毕设需要结合本组学长开发的系统,不得已开始入坑学习docker,遇到的最大瓶颈没想到竟然是安装部分,下面是我安装过程中遇到的问题总结吧。

安装前的简单了解

最早的docker只能运行在linux上,所以以前如果想在win上使用docker只能通过虚拟机的方式。不过,近两年微软和docker达成了合作关系,也开发出了基于windows的docker引擎。
如果去网上查资料的话,大部分都比较老旧,会让你下载安装docker toolbox,但它总体来说不如docker for windows方便,所以此处不考虑toolbox的安装。(PS:toolbox和docker for windows不能很好的共存,同时安装会出现错误。而且即使安装过toolbox后再卸载之后安装docker for win也会出现一些错误,我下面会提到一些)
另外,很重要的一点,docker for win目前只支持win10,其他版本的win系统目前只能使用toolbox.

安装步骤

添加Hyper-v

在任何位置新建文本文件(桌面就行),把下面这段文件复制进去

pushd "%~dp0"
dir /b %SystemRoot%servicingPackages*Hyper-V*.mum >hyper-v.txt
for /f %%i in ('findstr /i . hyper-v.txt 2^>nul') do dism /online /norestart /add-package:"%SystemRoot%servicingPackages%%i"
del hyper-v.txt
Dism /online /enable-feature /featurename:Microsoft-Hyper-V-All /LimitAccess /ALL
pause

然后将文件另存为.cmd文件,再以管理员身份运行。差不多下载安装10分钟左右,会提示是否重启,然后输入y重启系统。

重启后,按如下操作查看Hyper-v是否启用

docker电脑安装闪退 win10安装docker后死机_java


docker电脑安装闪退 win10安装docker后死机_容器_02


docker电脑安装闪退 win10安装docker后死机_容器_03


docker电脑安装闪退 win10安装docker后死机_java_04


docker电脑安装闪退 win10安装docker后死机_docker_05


若上面Hyper-V前打勾了说明已成功安装Hyper-V。

PS:安装了Hyper-v之后,virtualbox和vmware之类的虚拟机就无法使用,具体解决方法自行百度

安装Docker for windows

因为docker for win目前只提供给windows专业版用户和企业版用户,因此我们需要伪装成专业版绕过安装检测。

由于Docker Desktop会在安装的时候检测系统版本,直接安装会显示安装失败。所以需要改下注册表绕过安装检测。

打开注册表,定位到HKEY_LOCAL_MACHINEsoftwareMicrosoftWindows NTCurrentVersion,点击current version,在右侧找到EditionId,右键点击EditionId 选择“修改“,在弹出的对话框中将第二项”数值数据“的内容改为Professional,然后点击确定

docker电脑安装闪退 win10安装docker后死机_windows_06


因为该注册表项在下次重启之后会自动还原,所以不必担心会对系统造成影响,而docker目前只在安装过程中检查该项,因此对未来docker的使用也不会有太大影响。

安装成功以后,会多出这样下图的图标:

docker电脑安装闪退 win10安装docker后死机_java_07


此时,可以打开powershell,输入以下一些命令来验证是否有其他问题

docker version
docker ps
docker run hello-world

docker电脑安装闪退 win10安装docker后死机_docker_08


正常的话应该结果如上图所示。如果出现问题,很有可能是同时存在toolbox或toolbox的环境变量卸载残留。

其他问题

如果电脑里还同时有toolbox存在,建议卸载。具体卸载方式自行百度,卸载前需先删除其上的所有docker-machine,再卸载toolbox。卸载完了之后运行docker命令若还出现问题,请查看用户环境变量中是否有4个以DOCKER开头的变量,删除之,在Powershell中执行如下命令:docker-machine env -u

docker电脑安装闪退 win10安装docker后死机_docker_09


结果的最后一行会提示怎样设置环境,复制,然后执行,如下如所示:

复制第二红框 & 符号及后面的内容,复制到下面然后运行。

然后以管理员身份运行CMD或者PowerShell,重新尝试docker命令.

另外,如果想要关闭Hyper-v来使用vmware之类的虚拟机的话,需要在之前勾选Hyper-v处取消勾选,并以管理员方式打开powershell输入

bcdedit /set hypervisorlaunchtype off

之后重启即可正常使用其他虚拟软件。
重新开启hyper-v需要重新勾选之前取消的Hyper-v选项,然后以管理员方式打开powershell输入

bcdedit /set hypervisorlaunchtype auto