[后端及服务器][WSL2(Ubuntu)]从零开始在WSL安装Docker
简介
想花三篇文章写下从Windows(WSL)上开启Docker部署nginx/node/vue/php/html等项目并上传到云的全过程,尽量通俗易懂,把问题都复现一下。
这是第一篇,先在本地Windows环境下安装WSL并在WSL内安装Docker(套娃开始)。
本篇使用的终端是PowerShell(Windows Terminal),用其它也应该不影响,注意管理员模式开启。
剩下两篇完成后会在这给链接。
第二篇:Docker内环境部署(未完成)
第三篇:把Docker部署到云端(未完成)
WSL 安装
📚官方文档
准备工作
开启虚拟化(BIOS)
有的是默认开启的,莽夫可以直接跳过。
第一步:进入BIOS设置
第二步:
CPU | 方法 |
---|---|
Intel | 将Intel(VMX) Virtualization Technology开启 |
AMD | 将 AMD-v开启 |
检查系统版本
版本要求:Windows 10 version 2004 高于 (Build 19041 以上) 或者 Windows 11
检查版本: + 打开运行面板,输入winver
后回车
安装WSL
📚官方文档
- 老版本手动安装
老版本需要先装WSL后更新到WSL2 - Preview版安装
最新特性版
💿老版本安装详情
⚠ 前排提醒 涉及到重启计算机 ⚠
-
部署映像服务和管理工具
dism.exe /online /enable-feature /featurename:Microsoft-Windows-Subsystem-Linux /all /norestart
-
启用虚拟机平台可选功能
dism.exe /online /enable-feature /featurename:VirtualMachinePlatform /all /norestart
-
重启计算机
-
下载Linux内核更新程序包
点击下载,下载后点开后直接秒安装。 -
下载Linux分发版本并启动
在微软应用商店搜索WSL,下载Ubuntu20.04 TLS并启动
启动后配置用户名和密码即可
-
设置默认版本为WSL2
wsl --set-default-version 2
设置失败的解决方案:(设置成功请直接跳过下面的abcde,看第7条)
a. 先在控制面版 功能 中开启Hyper-V
b. 确保BIOS开启虚拟化(可以网上搜一下自己电脑怎么开的)
c. 执行bcdedit /set hypervisorlaunchtype auto
(和其它虚拟机冲突问题)
d. 本地组策略配置(win+r 执行gpedit.msc
)
e. 关于BIOS没有VT配置的(比如小米那精简的BIOS...),打开控制面板-程序和功能-启用或关闭Windows功能-(里面可以找到)Windows虚拟机监控程序平台(勾选确定)
-
将已安装的系统由WSL转成WSL2
wsl -l -v
检查版本
wsl --set-version Ubuntu-20.04 2
转换
参考WSL基本命令 -
进入终端
wsl
可以试试在wsl环境下输入explorer.exe
会打开Windows的资源管理器,相当于可以直接在运行linux运行Windows的命令了,赞👍!
另外在资源管理器地址栏输入\\wsl$
回车也可以直接看到Ubuntu的目录拉。
至此,WSL已经安装完成了。
Docker安装
📚官方文档
WSL2相比WSL1来说可以完美支持Docker。与WSL1的模拟Linux API不同的是,WSL2采用在Hyper-V虚拟机中运行的方案。
更换镜像源
sudo vim /etc/apt/sources.list
将该文件内容替换为如下(共10条,主要是镜像地址变了换为阿里云镜像了,然后去掉了原有的一堆注释,其它没变)
deb http://mirrors.aliyun.com/ubuntu/ focal main restricted
deb http://mirrors.aliyun.com/ubuntu/ focal-updates main restricted
deb http://mirrors.aliyun.com/ubuntu/ focal universe
deb http://mirrors.aliyun.com/ubuntu/ focal-updates universe
deb http://mirrors.aliyun.com/ubuntu/ focal multiverse
deb http://mirrors.aliyun.com/ubuntu/ focal-updates multiverse
deb http://mirrors.aliyun.com/ubuntu/ focal-backports main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ focal-security main restricted
deb http://mirrors.aliyun.com/ubuntu/ focal-security universe
deb http://mirrors.aliyun.com/ubuntu/ focal-security multiverse
全选,删除,再复制进去(涉及到的vim操作:黑框框中输入gg
回到开头,输入v
进入可视化编辑,按住同时按全选,再按d删除,+把上面复制进去,保存输入:wq!
回车即可,再进去就改成了)
不过用vim不习惯的话这里可以在Windows打开WSL的文件目录,用现代编辑器打开进行编辑(如vscode,notepad++等)
题外话:如果vscode安装了wsl插件(插件名:Remote - WSL),甚至可以直接在WSL中通过输入code <路径名>的方法用vscode打开目录/文件,而在vscode中集成的终端也会有Ubuntu的终端操作,这一套下来只需要一个vscode就可以实现在Windows打代码,在Linux运行的操作!很强👍!
安装Docker
如下脚本会识别系统版本并从官网安装下载安装对应版本
# install docker
curl -fsSL get.docker.com -o get-docker.sh
sh get-docker.sh
if [ ! $(getent group docker) ];
then
sudo groupadd docker;
else
echo "docker user group already exists"
fi
sudo gpasswd -a $USER docker
sudo service docker restart
rm -rf get-docker.sh
可以自己手动输入,也可以直接从git上拷一份然后运行
git clone https://github.com/ccbyte/useful-scripts
sh useful-scripts/docker-install.sh
完成后输入docker --version
可以查看版本即为成功。
启动docker
sudo service docker
最后检查看到Client和Sever都有信息即为启动成功。
docker version
参考资料
https://dockertips.readthedocs.io/en/latest/docker-install.html
https://space.bilibili.com/364122352/channel/detail?cid=166238&ctype=0
https://docs.docker.com/engine/install/ubuntu/
个人博客地址 cnblogs.com/cc1997;
个人网站地址 Ccoding.cn