Win10家庭版安装使用Docker

0x00 前言

  • 为什么要在Windows平台下使用Docker呢,主要是在配置一些基础运行环境时比较费劲。
  • 比如想使用Redis,MySQL,MongoDB等的开发环境时,自己要本机手动安装这些服务组件。
  • 安装配置也比较费时,所以便想要使用Docker容器来快捷地启用某些服务,停用服务。
  • 相对于安装到本机,使用容器的方式,能更好的隔离组件运行环境,也避免对本机造成的影响。

0x01 Win10家庭版的局限性

  • Win10版本总共分为家庭版、专业版、企业版、教育版四个版本,不同版本之间针对的用户不一样,大致如下:
1. 家庭版(Home):仅包含基础功能,在所有版本中功能最少,适合普通用户。

2. 专业版(Pro):包含大量高级功能,适合高端用户群体使用。

3. 业版(Enterprise):针对企业用户推出的版本,提供批量授权。

4. 教育版(Education):以企业版为基础,面向学校教师和学生的版本。
  • 因为很多笔记本电脑预装的Win10家庭版,所以当我们使用一些功能时会遇到不少问题,

  • 自己在安装最近推出的Windows Terminal和安装Docker时便遇到了Windows版本的问题。

  • 但系统又不能向软件一样快速升级,所以在这里简述下Win10家庭版如何安装Docker。

下载Docker的Windows版的安装包

  • 直接前往Docker官网选择下载即可,需要自己有Docker账户。
  • 同时Docker还提供了了Windows下安装Docker的步骤和注意的事项,其中就包括了要求版本为Win10专业版或者企业版,教育版,参考链接
System Requirements:

Windows 10 64bit: Pro, Enterprise or Education (Build 15063 or later).
Virtualization is enabled in BIOS. Typically, virtualization is enabled by default. This is different from having Hyper-V enabled. For more detail see Virtualization must be enabled in Troubleshooting.
CPU SLAT-capable feature.
At least 4GB of RAM.
  • 因为服务器在国外的原因,下载速度会比较慢,因此可以选择国内的社区提供的百度云的下载链接,速度会快很多。

  • 下载好后,如果不是Win10家庭版的话直接安装即可,Win10家庭版少许有点麻烦,但也不复杂,参考下面的方法。

0x03 启用Windows的Hyper-V功能

  • Hyper-V 是微软的一款虚拟化产品,类似与我们常用的Vmware和Vbox,可以方便的创建使用虚拟机。
  • 但自己也没用过,也不知道好不好用,应该不好用吧,反正自己没用尝试过,想要了解的话可以看一下相关介绍
  • 下面说一下怎么启用,Win10家庭版默认不启用,在启用与关闭Windows功能界面也找不到它。
  • 需要执行一些命令要安装启用它,首先查看一下系统有没有开启虚拟化,通过systeminfo查看
# 打开CMD,输入systeminfo回车
C:\Users\SKYNE>systeminfo
        ''''' 省略一大堆'''''
                  [04]: Hyper-V Virtual Ethernet Adapter
                      连接名:      vEthernet (Default Switch)
                      启用 DHCP:   否
                      IP 地址
                        [01]: 192.168.95.97
                        [02]: fe80::d45f:3c33:e746:e078
                  [05]: Hyper-V Virtual Ethernet Adapter
                      连接名:      vEthernet (DockerNAT)
                      启用 DHCP:   否
                      IP 地址
                        [01]: 10.0.75.1
Hyper-V 要求:     已检测到虚拟机监控程序。将不显示 Hyper-V 所需的功能。
C:\Users\SKYNE>

  • 我已经启用了 Hyper-V,没启用的话会显示Hyper-V 要求的一些东西。
  • 新建一个hyper_v.cmd空白文件,输入一下命令:
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

  • 在该文件上鼠标右键选择以管理员身份运行,稍等片刻,该脚本会下载并安装一些东西,最后让你确认是否重启系统,输入Y重启系统即可。

  • 然后在控制面板的程序,启用或者关闭Windows功能中便可以看到Hyper-V了,此时应该已经打上对勾启用了。

0x04 安装Docker

  • 双击Docker的安装包,稍等片刻便可以看到提示说:安装失败,要求的操作系统版本为什么什么,

  • 此时可以通过修改注册表的方式,临时修改系统的版本的为专业版,从而跳过版本验证,对于Docker的使用没有影响。

  • 可以利用Windows左下角的搜索功能快速找到注册表编辑器,进入并找到HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion,找到EditionId,

  • 双击EditionId,修改其值为Professional,保存退出。参考下图:

  • 如果闲太麻烦,也可以直接使用脚本命令来快速改写,粘贴下面的命令到CMD终端中,记得以管理员身份运行CMD。

REG ADD "HKEY_LOCAL_MACHINE\software\Microsoft\Windows NT\CurrentVersion" /v EditionId /T REG_EXPAND_SZ /d Professional /F
  • 修改完成后,直接安装Docker安装包即可,但要记得不勾选windows容器,默认是不勾选的,勾选的话在使用windows容器时会检查系统版本,一般也不用用到windows容器。

  • 不出意外的话应该就可以安装完成了,你双击启动Docker,不会弹出什么窗口,但可以在桌面右下角看到它。这就代表Docker已经启动了,你可以在终端使用docker了。

0x05 遇到的问题及解决

  1. 启动Docker后输入查看版本信息正常,但输入其他命令报错:
C:\Users\SKYNE>docker -v
Docker version 18.06.1-ce, build e68fc7a
C:\Users\SKYNE>docker ps
error during connect: Get http://%2F%2F.%2Fpipe%2Fdocker_engine/v1.39/containers/json: open //./pipe/docker_engine: The system cannot find the file specified. In the default daemon configuration on Windows, the docker client must be run elevated to connect. This error may also indicate that the docker daemon is not running.
  • 不清楚该错误的内在原因,该问题在github有个issue,可以参考一下解决方法:

  • issue上大致说明了两种解决方法,参考如下:

cd "C:\Program Files\Docker\Docker"
./DockerCli.exe -SwitchDaemon 
# 使用CMD时去掉 ./ 使用Powershell时使用上述命令
  • 另外在我的使用过程中我发现,使用CMD终端时会报这种错误,而使用GitBash或者Powershell时则一切正常,
  • 虽然不是太懂内在的原因是什么,但还是建议大家不要使用CMD,使用其他终端代替。

  • 另一种方法参考issue,具体可以自行尝试即可,附上链接

  1. 更换Docker国内的镜像源
  • 这个很简单,运行Docker后,在桌面的右下角有Docker图标,右键选择settings,打开设置,选择Daemon,更换镜像源保存即可。
  • 下面是可供选择的镜像源
Docker中国区官方镜像
https://registry.docker-cn.com

网易
http://hub-mirror.c.163.com

ustc 
https://docker.mirrors.ustc.edu.cn

中国科技大学
https://docker.mirrors.ustc.edu.cn
  1. 首次忘记登录Docker
  • 首次使用Docker下载镜像时会验证用户,使用docker login命令登录即可:
C:\Users\SKYNE>docker login
Authenticating with existing credentials...
Stored credentials invalid or expired
Login with your Docker ID to push and pull images from Docker Hub. If you don't have a Docker ID, head over to https://hub.docker.com to create one.                                                                                            
Username (1163046964@qq.com): skyne0                                                                                    Password:
Login Succeeded
  • 自此便可以愉快的在Win10下玩耍容器了。

 上一篇
利用CDN内容分发网络加速Github的个人博客 利用CDN内容分发网络加速Github的个人博客
0x01 简述背景 在自己大三时,腾讯云搞活动,学生资格可以每月一元购买1C1G的50G存储的云主机,当时自己就买了一台,用到了现在。 当时感觉从事IT的好像都写博客,自己不是太喜欢写东西,但还是感觉有点意思,便跟着网上的教程,利用Word
2019-07-24
下一篇 
Zabbix接入蓝鲸故障自愈实现告警触发自愈动作 Zabbix接入蓝鲸故障自愈实现告警触发自愈动作
0x01 蓝鲸和故障自愈等简介 腾讯蓝鲸的介绍可以前往官方文档中心,或者这篇文章 故障自愈是一款实现服务器故障自动处理的解决方案,提升企业服务可用性和降低故障处理的人力投入。通过自动化处理来节省人力投入,通过预定的恢复流程让恢复过程更可靠,
2019-07-16