[后端及服务器][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

官方文档

老版本安装详情

⚠ 前排提醒 涉及到重启计算机 ⚠

  1. 部署映像服务和管理工具
    dism.exe /online /enable-feature /featurename:Microsoft-Windows-Subsystem-Linux /all /norestart

  2. 启用虚拟机平台可选功能
    dism.exe /online /enable-feature /featurename:VirtualMachinePlatform /all /norestart

  3. 重启计算机

  4. 下载Linux内核更新程序包
    点击下载,下载后点开后直接秒安装。

  5. 下载Linux分发版本并启动
    在微软应用商店搜索WSL,下载Ubuntu20.04 TLS并启动

    启动后配置用户名和密码即可

  6. 设置默认版本为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虚拟机监控程序平台(勾选确定)

  7. 将已安装的系统由WSL转成WSL2
    wsl -l -v检查版本
    wsl --set-version Ubuntu-20.04 2转换

    参考WSL基本命令

  8. 进入终端
    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/

博主ChaosBlog原创,搬运请注明。
个人博客地址 cnblogs.com/cc1997;
个人网站地址 Ccoding.cn
原文地址:https://www.cnblogs.com/cc1997/p/15550740.html