在上文Docker初体验中我们介绍了Docker的一些基本概念和常用命令,但因为Docker是在Linux系统下创建的资源分离机制,所以它无法在Windows系统下直接运行。这次我们将用3分钟的时间介绍一下如何在Win10系统下运行Docker。
2 下载Docker用户可以根据自己的系统在Docker官网选择Mac[1]或Windows[2],因为Docker可以在Mac系统中安装后可以直接运行,这里就不再赘述。
安装完Docker,并注册个人账号,再双击启动它,你会发现并不像你想的那么顺利。错误信息如下图所示:
Docker启动失败
这是因为Docker无法在Windows系统中直接运行,而需要创建一个Windows系统中的Linux虚拟机(VM)为Docker的正常运行搭建好底层依赖。虽然官方文档[3]提供了hyper-V和WSL2两种解决方案,但是WSL2是基于hpyer-V在WSL1的升级版,其功能,安装方式也简单方便,因此作者就选择了WSL2的后端方式来运行Docker。
3 安装WSL2WSL,Windows Subsystem for Linux,含义就是在Windows系统下Linux的子系统。只需要三步就可以在系统中为Docker安装WSL2了,请注意目前WSL2支持在Windows10 2004以上的版本。
3.1 开启WSL2功能首先,打开Powershell命令提示符,运行命令先查看网上所有的子系统, 再选择你想要选择的系统,这里我们将选择Ubuntu来进行安装。
## 查看list wsl --list --online ## 安装Linux distribution wsl --install -d Ubuntu
查看WSL列表
安装成功后,结果返回会让你创建UNIX的用户名和密码:
创建用户名和密码
细心的你会发现命令提示符左上方的logo已经变成了Ubuntu的了。
3.2 安装更新包安装成功后,还需要下载Linux安装更新包,具体 *** 作需要参考Microsoft[4]官方文档根据你自己系统的版本选择合适的更新包。
3.3 设置默认版本打开命令提示符,设置WSL2为Linux distribution的默认版本:
wsl --set-default-version 23.4 设置WSL配置文件
因为WSL默认配置会占用计算机高达80%的内存空间,为了避免这种情况,最好可以设置一下配置文件。
按下Windows + R,搜索%UserProfile%打开user的资源管理文件路径,创建并自定义.wslconfig文档。用记事本打开并输入相关参数进行配置:
[wsl2] # 设置内存为2G,主要是服务docker memory=2GB # CPU 最大占用个数 processors=2 # 不设置WSL2虚拟机分配的交换空间 swap=0 # 允许将WSL2的端口转发到主机 localhostForwarding=true4 检查Docker设置
成功安装好Linux distribution后,还需要在docker desktop中设置一下关于WSL2的基本参数才能确保Docker的成功运行。
首先,需要在通用设置下,勾选使用WSL2基础的引擎,如图所示:
基于WSL2引擎
其次,需要在资源中设置WSL整合,此 *** 作是帮助你在拥有多个WSL时可以整合组成部分的。
设置WSL整合资源
最后,重启docker desktop,你会看到成功启动的界面。
成功界面
5 总结有些软件在系统中为了成功地运行,确实需要一些先决条件。不管是参考具体的官方文档还是搜索一些避雷的经验贴,安装成功并使用后,你会发现这些环境的搭建是一劳永逸的,快尝试在你的Windows系统中运行Docker吧!之后我们还会持续分享Docker的学习经验,敬请期待。
希望这次的分享能对你有所帮助,欢迎留言讨论。
参考资料[1]
Install docker in Mac: https://docs.docker.com/desktop/mac/install/
[2]
Install docker in Windows: https://docs.docker.com/desktop/windows/install/#install-docker-desktop-on-windows
[3]
WSL2的安装: https://docs.docker.com/desktop/windows/install/#wsl-2-backend
[4]
Install update package: https://docs.microsoft.com/en-us/windows/wsl/install-manual#step-4---download-the-linux-kernel-update-package
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)