记录安装过程,文字略显沙雕✧٩(ˊωˋ*)و✧
来自Docker官方文档:
支持的平台
Docker Engine可 通过Docker Desktop 在各种Linux平台, macOS和Windows 10上以静态二进制安装的形式使用。
我想在我的windows上安装docker,所以我选择了Windows版Docker桌面 。
来自Docker官方文档:
Windows的Docker桌面是Microsoft Windows的Docker 的社区版本。您可以从Docker Hub下载适用于Windows的Docker桌面。
该页面包含有关在Windows 10 Pro,Enterprise和Education上安装Docker Desktop的信息。如果要查找有关在Windows 10 Home上安装Docker桌面的信息,请参阅在Windows Home上安装Docker桌面。
不幸的是,我的是 Windows Home 版,所以我又去了 在Windows Home上安装Docker桌面 。
来自Docker官方文档:
先不急着下载安装,咱先看看要求:
来自Docker官方文档:
系统要求
Windows 10 Home机器必须满足以下要求才能安装Docker Desktop:
- 安装Windows 10版本2004或更高版本。
- 在Windows上启用WSL 2功能。有关详细说明,请参阅 Microsoft文档。
- 要在Windows 10 Home上成功运行WSL 2,需要满足以下硬件先决条件:
- 具有二级地址转换(SLAT)的 64位处理器
- 4GB系统内存
- 必须在BIOS设置中启用BIOS级硬件虚拟化支持。有关更多信息,请参见 虚拟化。
- 下载并安装Linux内核更新程序包。
注意
Docker基于Microsoft对Windows 10操作系统的支持生命周期在Windows上支持Docker桌面。有关更多信息,请参见 Windows生命周期概况。
首先看看我的windows版本:
参考: Windows Linux子系统Windows 10安装指南 - 更新到WSL 2
通过选择Windows徽标键+ R来检查Windows版本,键入winver,然后选择“ 确定”。(或在Windows命令提示符中输入命令
ver
)。
其实选择Windows徽标键+ R,输入CMD,打开Windows命令提示符,就可以看到版本了。
很不幸,我的版本不符合。。。
ennnnn,我的版本竟然不是最新的,毕竟windows自动更新我可是没有关掉的啊,不科学啊,微软这么好了?于是我去搜了一下:
来自Windows 10版本2004和Windows Server版本2004 :
截至2020年7月22日的当前状态
Windows 10版本2004适用于运行Windows 10版本1903和1909的设备的用户,他们通过Windows Update手动寻求“检查更新”。现在,我们正在开始新的阶段。使用到目前为止我们已经完成的基于机器学习(基于ML)的培训,我们正在增加选择要自动更新到即将终止服务的Windows 10版本2004的设备的数量。我们将继续在所有阶段训练机器学习,以智能地推出Windows 10的新版本并提供流畅的更新体验。建议的维修状态为“半年频道”。
嗯,微软还是那个微软,人家并没放过你,只是在准备一网打尽而已。
所以我又去了获取Windows Update Assistant,把我的windows版本更新到2004,希望它没有什么大问题,阿弥陀佛。
话说这个版本是2020年5月才开始陆续推送更新,Docker就开始要求使用windows版本最低2004,有点秀啊。
趁着下载win2004时我搜了搜,还是有大神跑得快的,早就开始玩了-> Windows 10 2004 (20H1) 安装 Docker Desktop for Windows (2.3.0.2) 以 WSL 2 方式运行容器 。
经过一段时间的等待,我已经更新到win2004了。
接下来是第二个条件-启用WSL 2功能。
WSL了解一下:
WSL(Windows Subsystem for Linux):Windows Linux子系统
Windows Subsystem for Linux (WSL)
What is the Windows Subsystem for Linux? : WSL可让开发人员按原样运行 GNU/Linux 环境 - 包括大多数命令行工具、实用工具和应用程序 - 且不会产生传统虚拟机或双启动设置开销。
What is WSL 2? : WSL 2 是适用于 Linux 的 Windows 子系统体系结构的一个新版本,它支持适用于 Linux 的 Windows 子系统在 Windows 上运行 ELF64 Linux 二进制文件。 它的主要目标是提高文件系统性能,以及添加完全的系统调用兼容性。
比较 WSL 2 和 WSL 1
WSL 和 WSL2 简单对比
WSL就是让Linux系统在Windows系统上运行,类似VM的功能,但区别于VM,WSL 2确实使用了VM,但它是受管理的并在后台运行,而不需要VM配置或管理。
启用WSL 2,首先看看内存条件:我的系统内存是16G,满足。
其次根据虚拟化看看我的电脑有没有启用虚拟化:
幸运的我,已经启用了,不用再进BIOS中折腾了。
最后还剩一个条件:“具有二级地址转换(SLAT)的 64位处理器”。我得电脑是AMD R5 3500U,我也不晓得支不支持SLAT,感觉是支持的,但是还是亲眼看看才能安心啊,于是问了度娘得到了答案。
一个方法是:使用微软提供的 CPU信息查看工具 Coreinfo 即可检查。
我下载了这个工具包,然后运行不了,一闪即退,很扎心。后面看到了需要管理员权限,就打开了Windows powerShell(管理员)(可以通过鼠标右键桌面win图标,也可以通过win+x,然后A 打开)。
然后进入Coreinfo64.exe所在目录(我的是64位系统,位置是在D:\java develop enviorment\Coreinfo
),然后执行命令.\Coreinfo.exe -v
,就得到了我想要的结果了:
“*”表示支持,“-”表示不支持。很明显,我的是支持SLAT的。
在问度娘如何查看CPU是否支持SLAT时,还看到了其他方式:
参考 :如何判断CPU支持SLAT|支持虚拟化技术
其中方式二,我这验证也是符合滴。
至此在Windows 10 Home上启用WSL 2需要满足的硬件先决条件我已经全部满足了。
接下来就是在我的Windows Home上启用WSL 2功能,参阅 Microsoft文档-Windows Linux子系统Windows 10安装指南 。
首先,要启用“ Linux的Windows子系统”可选功能。
来自Microsoft官方文档:
安装适用于Linux的Windows子系统
在Windows上安装任何Linux发行版之前,必须启用“ Linux的Windows子系统”可选功能。
以管理员身份打开PowerShell并运行:
dism.exe /online /enable-feature /featurename:Microsoft-Windows-Subsystem-Linux /all /norestart
要仅安装WSL 1,现在应该重新启动计算机并继续安装您选择的Linux发行版,否则请等待重新启动并继续更新到WSL2。了解有关比较WSL 2和WSL 1的更多信息。
使用键盘win+x,A
打开Windows PowerShell(管理员),复制粘贴加回车(你要是想手敲的话也是阔以滴),一波操作后,PowerShell界面有100%的进度条就是安装成功(我忘了截图了,假装此处有图)。
然后键盘键入win
键,输入启用或关闭Windows功能
,找到这项,回车,查看一下是否启用了Linux的Windows子系统
这项。如下图:
好了,接下来是重启。。。
重启完成,win+R
输入cmd
打开命令行工具,输入wsl
:
我已经可以使用wsl
命令了,重启之前是没有的:
OK,接下来是更新到WSL 2。
来自Microsoft官方文档:
更新到WSL 2
要更新到WSL 2,您必须满足以下条件:
- 运行Windows 10,更新为2004版,内部版本19041或更高版本。
- 通过选择Windows徽标键+ R来检查Windows版本,键入winver,然后选择“ 确定”。(或
ver
在Windows命令提示符中输入命令)。如果您的版本低于19041,请更新到最新的Windows版本。获取Windows Update Assistant。启用“虚拟机平台”可选组件
在安装WSL 2之前,必须启用“虚拟机平台”可选功能。
以管理员身份打开PowerShell并运行:
dism.exe /online /enable-feature /featurename:VirtualMachinePlatform /all /norestart
重新启动计算机以完成WSL安装并更新到WSL 2。
WSL 2更新的要求就是在Windows Home上安装Docker的要求,我已经做了验证,并把我的系统版本升级为win 2004了,所以就不做重复操作了。
启用“虚拟机平台”可选功能
的操作跟之前的启用“Linux的Windows子系统”可选功能
的操作相同,只是命令不同而已,此处不再赘述。
不过要说一下另一种方式:
键盘键入
win
键,输入启用或关闭Windows功能
,找到这项,回车,打开启用或关闭Windows功能窗口(上面操作过)。
可以看到
虚拟机平台
未启用,勾选,确定(需要联网)。
稍作等待后成功,但是需要重启配置才能生效。
重启。。。
重启完成,该功能已启用。
接下来将WSL 2设置为默认版本。
来自Microsoft官方文档:
将WSL 2设置为默认版本
在安装新的Linux发行版时,以管理员身份打开PowerShell,并运行以下命令以将WSL 2设置为默认版本:
wsl --set-default-version 2
运行以下命令后,您可能会看到此消息:
WSL 2 requires an update to its kernel component. For information please visit https://aka.ms/wsl2kernel
。请点击链接(https://aka.ms/wsl2kernel),然后从我们文档的该页面安装MSI,以便在您的计算机上安装Linux内核,以供WSL 2使用。一旦安装了内核,请再次运行该命令,它应该成功完成而不显示消息。注意
从WSL 1到WSL 2的更新可能需要几分钟才能完成,具体取决于目标发行版的大小。如果您正在从Windows 10周年更新或创建者更新中运行WSL 1的较旧(旧版)安装,则可能会遇到更新错误。请按照以下说明卸载和删除所有旧发行版。
如果
wsl --set-default-version
结果为无效命令,请输入wsl --help
。如果--set-default-version
未列出,则表明您的操作系统不支持它,您需要更新到2004,Build 19041或更高版本。
从开始到现在,我的windows版本已经更新为win2004了,WSL 2也安装了,中间顺风顺水(运气还是不错的,没出现什么奇奇怪怪的事)。
所以上面这条命令我的WSL是支持的:
所以键入wsl --set-default-version 2
命令:
。。。我裂开了。。。
这脸打的啪啪的。。。
为了俺的尊严和求知欲,俺问了度娘,然鹅,我把度娘折腾三百遍啊三百遍,度娘是不知道。
最终我又回到了Microsoft的WSL官方文档,在这里我找到了搜寻这种无厘头问题的渠道。
我搜了一下--set-default-version
,发现了这么个issue:
这不就是我出现的问题吗,偶买噶,官方还是给力滴。于是我就点进去寻找答案:
hhhhh,很高兴,有人遇见相同的问题,并且还解决了,赶紧自己试试去。
来自Microsoft官方文档:
下载 Linux 内核更新包
请下载适用于 x64 计算机的最新 WSL2 Linux 内核更新包。
备注:
如果使用的是 ARM64 计算机,请下载 ARM64 包。
下载成功,双击安装。
安装完成后,打开Windows PowerShell(管理员),再次执行wsl --set-default-version 2
命令。
成功,此处应该欢呼。。。
因为我已经下载更新安装了WSL 2,所以没有显示官方说的①的那条消息,而是直接到达②的位置,即我已经成功将WSL 2设为默认版本了。
接下来选择安装Linux发行版 ,按照文档操作进入Microsoft商店 下载安装选择的Linux发行版,然后启动。
首先输入用户名,然后两次输入密码,安装Linux发行版成功(我安装的是Ubuntu 20.04 LTS)。
来自Microsoft官方文档:
将发行版本设置为WSL 1或WSL 2
您可以通过打开PowerShell命令行并输入命令来检查分配给已安装的每个Linux发行版的WSL版本(仅在Windows Build 19041或更高版本中可用):
wsl -l -v
wsl --list --verbose
来自Microsoft官方文档:
将发行版本设置为WSL 1或WSL 2
要将发行版设置为由任一版本的WSL支持,请运行:
wsl --set-version
确保
用发行版的实际名称和
数字“ 1”或“ 2” 代替。您可以随时通过运行与上述相同的命令将其替换为WSL 1,但是将“ 2”替换为“ 1”。
此外,如果要将WSL 2设置为默认体系结构,则可以使用以下命令:
wsl --set-default-version 2
这将设置安装到WSL 2的任何新发行版的版本。
上图可以看到,我的Linux发行版都是运行在WSL 2上的,因为我之前已经将WSL 2设为默认了版本了。
接下来让我们回到在Windows Home上安装Docker的主线剧情上:
经过上面一系列操作,①②③都已经完成,包括④也在WSL 2更新安装时一起完成,所以安装在Windows Home上安装Docker的前置环境要求已经全部满足,接下来就是安装Docker了。
首先,下载Windows Home上的Docker安装包 。
来自Docker官方文档:
在Windows 10 Home上安装Docker桌面
双击Docker Desktop Installer.exe运行安装程序。
如果尚未下载安装程序(
Docker Desktop Installer.exe
),则可以从 Docker Hub进行下载。它通常会下载到您的Downloads
文件夹中,或者您可以从Web浏览器底部的“最近下载”栏中运行它。出现提示时,请确保在“配置”页面上选择了“ **启用WSL 2功能”**选项。
请遵循安装向导上的指示信息授权安装程序并继续进行安装。
安装成功后,请单击“ **关闭”**以完成安装过程。
按照官方文档进行傻瓜式安装。。。
来自Docker官方文档:
启动Docker
Docker Desktop在安装后不会自动启动。要启动Docker Desktop,请搜索Docker,然后在搜索结果中选择Docker Desktop。
当状态栏中的鲸鱼图标保持稳定时,表明Docker Desktop正在运行,并且可以从任何终端窗口访问。
初始化完成后,Docker Desktop将启动入门教程。本教程包括一个简单的练习,以构建示例Docker映像,将其作为容器运行,将映像推送并保存到Docker Hub。
恭喜你!您现在可以在Windows Home上成功运行Docker Desktop。
卸载Docker
要从Windows Home机器上卸载Docker Desktop:
- 从Windows 开始菜单中,选择设置 > 应用程序 > 应用程序及功能。
- 从“ 应用程序和功能”列表中选择Docker Desktop,然后选择“ 卸载”。
- 单击卸载以确认您的选择。
注意
卸载Docker Desktop将破坏计算机本地的Docker容器和映像,并删除应用程序生成的文件。
上图是我安装成功后进入设置后的截图,可以看到,我之前下载安装的Linux发行版已经显示了,表示我可以启用。
并且命令行中也可以使用docker命令,并且可以使用 wsl -l -v
查看到安装的Linux发行版了。
至此,Windows Home上安装Docker Desktop已经完成了,接下来就是Docker Desktop的使用了。
首次打开Docker Desktop时,就是如下界面,一个简单的构建docker容器和使用的教程:
点击Start
就可以开始,按照教程即可轻松完成。
完成后即可访问:
并且会把这个教程构建的容器镜像推送到我们的Docker Hub中
而我们也可以直接在Docker Desktop中管理这个容器:
以上是Docker Desktop的使用教程。
Docker Desktop的一些其他设置参阅Docker设置对话框 。
接下来我们在命令行窗口测试使用:
来自Docker官方文档:
测试安装
打开一个终端窗口(命令提示符或PowerShell,而不是 PowerShell ISE)。
运行
docker --version
以确保您具有受支持的Docker版本:> docker --version Docker version 19.03.1
拉你好世界图像从泊坞窗枢纽和运行的容器:
> docker run hello-world docker : Unable to find image 'hello-world:latest' locally latest: Pulling from library/hello-world 1b930d010525: Pull complete Digest: sha256:c3b4ada4687bbaa170745b3e4dd8ac3f194ca95b2d0518b417fb47e5879d9b5f Status: Downloaded newer image for hello-world:latest Hello from Docker! This message shows that your installation appears to be working correctly. ...
列出从Docker Hub下载的
hello-world
映像:> docker image ls
列出
hello-world
容器(显示“从Docker向您好!”后退出的容器):> docker container ls --all
通过运行一些帮助命令来浏览Docker帮助页面:
> docker --help > docker container --help > docker container ls --help > docker run --help
至此,已经成功在Windows Home上安装Docker,可以愉快的(苦逼)蹂躏(被虐)DockerCLI了。
ps: 有兴趣可以玩玩这个Docker 101教程