1. 电脑配置项
开发者选项
设置->系统->开发者选项
启用或关闭windows功能
控制面板->卸载程序->启用或关闭windows功能
勾选适用于Linux的Windows子系统和虚拟机平台并重启电脑(首次勾选选项时电脑提示重启)
Hyper-V
关键点:win11家庭版在启动或关闭windows功能中没有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
- 找到Hyper-V.cmd文件图标,在右键菜单中点击:以管理员身份运行
- 然后弹出一个 用户帐户控制 - Windows命令处理程序 对话框,我们点击:是
- 然后系统自动进行Windows命令处理,我们等待处理完成以后,【这个过程中不要关闭窗口或者关机】在最末处输入:Y,电脑自动重启,进行配置更新
在下载安装的过程中,可能会卡住,尝试按按【回车键】
- 电脑重启之后,在window管理工具中可以看到已经成功安装了Hyper-V。
这样就可以在不用重装专业版系统的情况下,使用Hyper-V虚拟机了
检查一下:控制面板 -> 程序 -> 卸载程序 -> 启用或关闭Windows功能
对比上面的图可以发现是多出来Hyper-V的
在BIOS中启用虚拟化技术
这个模块也可以选择不操作(因为博主的联想电脑没办法进入到BIOS设置当中,不知道为啥),也可通过查找电脑型号问chartGPT自己的电脑是否已经启动虚拟化技术(一般来说win11的电脑肯定是启用的)
检查设备型号:通过系统自带功能查看
点击“开始”图标:在桌面上找到并点击左下角的“开始”图标。
选择“设置”:在弹出的菜单中,选择“设置”选项。
选择“系统”:在设置窗口中,找到并点击“系统”选项。
点击“关于”选项卡:在系统页面中,找到并点击“关于”选项卡。
查看设备规格:在“关于”页面中,你将能够找到设备规格,包括电脑的配置和型号信息。
步骤一:进入BIOS设置
重启电脑。
当电脑屏幕亮起logo时,通常会出现一个提示,告知你按哪个键可以进入BIOS设置。常见的按键包括F2、F12、Del、Esc等,但具体取决于你的电脑品牌和型号。
按住相应的键,直到进入BIOS设置界面。
步骤二:找到虚拟化技术选项
在BIOS设置界面中,使用键盘上的方向键和Enter键来导航和选择。
查找与虚拟化技术相关的选项。这通常被称为“Intel Virtual Technology”(对于Intel处理器)或“AMD-V”(对于AMD处理器)。这个选项可能在不同的位置,如“Configuration”、“Advanced”、“Security”等。
步骤三:启用虚拟化技术
找到虚拟化技术选项后,选择它并按Enter键进入子菜单。
在子菜单中,找到“Enabled”选项并按Enter键选择它。如果选项是“Disabled”,则需要将其更改为“Enabled”。
步骤四:保存并退出BIOS
在BIOS设置界面的底部或侧边,找到保存并退出的选项。这通常是“Save & Exit”或类似的描述。
选择该选项并按Enter键,然后按照屏幕上的提示操作,通常是按F10键。
WSL2
- 以管理员身份打开 PowerShell 并运行:
dism.exe /online /enable-feature /featurename:Microsoft-Windows-Subsystem-Linux /all /norestart
- 以管理员身份打开 PowerShell 并运行:
dism.exe /online /enable-feature /featurename:VirtualMachinePlatform /all /norestart
-
下载 Linux 内核更新包:(关键点)
X64的内核包 : https://link.zhihu.com/?target=https%3A//wslstorestorage.blob.core.windows.net/wslblob/wsl_update_x64.msi
ARM64的内核包 : https://wslstorestorage.blob.core.windows.net/wslblob/wsl_update_arm64.msi
点击链接即可!!! -
运行上一步中下载的更新包。 (双击以运行 - 系统将提示你提供提升的权限,选择“是”以批准此安装。)
-
安装完成后,请继续执行下一步 - 在安装新的 Linux 分发时,将 WSL 2 设置为默认版本。
(如果希望将新的 Linux 安装设置为 WSL 1,请跳过此步骤。不过一般是推荐WSL2,因为WSL2是完整的Linux内核也为后续运行docker做准备)
将 WSL 2 设置为默认版本:
打开 PowerShell,然后在安装新的 Linux 发行版时运行以下命令,将 WSL 2 设置为默认版本:
wsl --set-default-version 2
2. 安装Ubuntu
在Microsoft Store中选择自己想要下载的版本
首次启动新安装的 Linux 分发版时,将打开一个控制台窗口,系统会要求你等待一分钟或两分钟,以便文件解压缩并存储到电脑上。 未来的所有启动时间应不到一秒。
然后,需要为新的 Linux 分发版创建用户帐户和密码。
当然,如果你出现下面的报错并且按下键盘就闪退 别担心
再次打开PowerShell 执行以下命令
wsl --set-default-version 1
再重启电脑
打开Ubuntu 会让你输入用户名(自定义)和密码(自定义)
Ubuntu可以启动后再换回wsl 2
wsl --set-default-version 2
Powershell上查看Ubuntu
之前的Ubuntu配置好后可以在Powershell当中查看到
使用 wsl -l -v命令列出已安装的子系统的名称和版本。
PS C:\WINDOWS\system32> wsl -l -vNAME STATE VERSION
* Ubuntu-20.04 Running 2docker-desktop-data Stopped 2docker-desktop Stopped 2
可以看到Ubuntu-20.04 的版本是WSL2的
在Powershell当中执行wsl命令即可切换到安装的子系统Ubuntu下
PS C:\WINDOWS\system32> wsl -d Ubuntu-20.04
hx@LAPTOP-H2EI4I6A:/mnt/c/WINDOWS/system32$
设置root的密码(可以不操作)
新安装的Ubuntu系统默认root密码是没有的,执行一些命令需要sudo提权 所以推荐先设置一下
sudo -i
切换到root用户
passwd
即可配置root的密码
使用Ubuntu
打开下载好的Ubuntu 20.04 LTS 开始使用(不过多介绍)
hx@LAPTOP-H2EI4I6A:~$ ll
total 52
drwxr-xr-x 6 hx hx 4096 Jun 20 16:24 ./
drwxr-xr-x 3 root root 4096 Jun 20 09:17 ../
lrwxrwxrwx 1 hx hx 24 Jun 20 12:47 .aws -> /mnt/c/Users/Lenovo/.aws/
lrwxrwxrwx 1 hx hx 26 Jun 20 12:47 .azure -> /mnt/c/Users/Lenovo/.azure/
-rw------- 1 hx hx 2004 Jun 21 09:06 .bash_history
-rw-r--r-- 1 hx hx 220 Jun 20 09:17 .bash_logout
-rw-r--r-- 1 hx hx 3771 Jun 20 09:17 .bashrc
drwx------ 2 hx hx 4096 Jun 20 12:47 .cache/
drwxr-xr-x 6 hx hx 4096 Jun 20 13:38 .docker/
drwxr-xr-x 2 hx hx 4096 Jun 20 09:17 .landscape/
-rw-r--r-- 1 hx hx 0 Jun 21 08:55 .motd_shown
-rw-r--r-- 1 hx hx 807 Jun 20 09:17 .profile
-rw-r--r-- 1 hx hx 0 Jun 20 09:58 .sudo_as_admin_successful
-rw------- 1 hx hx 10395 Jun 20 16:24 .viminfo
drwxr-xr-x 4 hx hx 4096 Jun 20 15:34 test/
hx@LAPTOP-H2EI4I6A:~$ pwd
/home/hx
3. Ubuntu上安装docker
3.1 确定 CPU
可以看到我们的是 X86_64,是支持的,如果是 arm 一般会显示aarch64
root@ecs-144421:~# uname -a
Linux 139-159-150-152 5.4.0-100-generic #113-Ubuntu SMP Thu Feb 3
18:43:29 UTC 2022 x86_64 x86_64 x86_64 GNU/Linux
3.2 确定操作系统版本
本次我们使用的是 Ubuntu 20.04
hx@LAPTOP-H2EI4I6A:~$ cat /etc/*release*
DISTRIB_ID=Ubuntu
DISTRIB_RELEASE=20.04
DISTRIB_CODENAME=focal
DISTRIB_DESCRIPTION="Ubuntu 20.04.6 LTS"
NAME="Ubuntu"
VERSION="20.04.6 LTS (Focal Fossa)"
ID=ubuntu
ID_LIKE=debian
PRETTY_NAME="Ubuntu 20.04.6 LTS"
VERSION_ID="20.04"
HOME_URL="https://www.ubuntu.com/"
SUPPORT_URL="https://help.ubuntu.com/"
BUG_REPORT_URL="https://bugs.launchpad.net/ubuntu/"
PRIVACY_POLICY_URL="https://www.ubuntu.com/legal/terms-and-policies/privacy-policy"
VERSION_CODENAME=focal
UBUNTU_CODENAME=focal
3.3 配置 docker 下载源
#curl 命令安装
sudo apt install curl -y
#创建 gpg key 目录
sudo mkdir -m 0755 -p /etc/apt/keyrings
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg
url 命令从 Docker 官方网站下载 GPG 密钥,并通过 gpg --dearmor 将其转换为可用的密钥格式并存放在 /etc/apt/keyrings/docker.gpg 文件中。推荐通过国内的代理或 VPN 来加速这个请求(否则可能会出现如下报错)或者找国内的镜像源(自行解决o( ̄ヘ ̄o#),因为博主没找到)
curl: (7) Failed to connect to download.docker.com port 443: Connection timed out
gpg: no valid OpenPGP data found.
echo \ "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] https://mirrors.tuna.tsinghua.edu.cn/docker-ce/linux/ubuntu $(lsb_release -cs) stable" | \ sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
设置Docker仓库:这里我添加了清华大学的镜像源(单纯从官网下载太慢了)
更新包列表:
每次更新完配置都请执行下述命令
sudo apt update
安装
hx@LAPTOP-H2EI4I6A:/etc/apt/keyrings$ sudo apt-get install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin -y
Reading package lists... Done
Building dependency tree
Reading state information... Done
containerd.io is already the newest version (1.6.33-1).
docker-buildx-plugin is already the newest version (0.14.1-1~ubuntu.20.04~focal).
docker-buildx-plugin set to manually installed.
docker-ce-cli is already the newest version (5:26.1.4-1~ubuntu.20.04~focal).
docker-ce is already the newest version (5:26.1.4-1~ubuntu.20.04~focal).
docker-compose-plugin is already the newest version (2.27.1-1~ubuntu.20.04~focal).
0 upgraded, 0 newly installed, 0 to remove and 143 not upgraded.
自动启动配置
#配置加载
sudo systemctl daemon-reload
#启动服务
sudo systemctl start docker
#开启启动
sudo systemctl enable docker
#查看服务状态
sudo systemctl status docker
当看到如下图所示时,那么docker服务就算是启动了
执行 hello-world 可以看到 Hello from Docker,表面 docker 服务正常
如下所示就是docker安装成功
root@LAPTOP-H2EI4I6A:~# sudo docker run hello-worldHello from Docker!
This message shows that your installation appears to be working correctly.To generate this message, Docker took the following steps:1. The Docker client contacted the Docker daemon.2. The Docker daemon pulled the "hello-world" image from the Docker Hub.(amd64)3. The Docker daemon created a new container from that image which runs theexecutable that produces the output you are currently reading.4. The Docker daemon streamed that output to the Docker client, which sent itto your terminal.To try something more ambitious, you can run an Ubuntu container with:$ docker run -it ubuntu bashShare images, automate workflows, and more with a free Docker ID:https://hub.docker.com/For more examples and ideas, visit:https://docs.docker.com/get-started/
4. windows上安装DokerDesktop来管理(可选)
这个直接去DokerDesktop官网去下载即可(加载不出来可以选择挂梯子或者是去网盘下载)
可能遇到的问题1:
一直在转圈圈,连不上(多尝试几次,毕竟是国外的,要么就挂梯子)
问题2:
总是遇到如下报错,怎么解决
Cannot connect to the Docker daemon at unix:///var/run/docker.sock. Is the docker daemon running?
很简单把DockerDesktop重新启动即可
再次执行
root@LAPTOP-H2EI4I6A:~# docker version
Client: Docker Engine - CommunityVersion: 26.1.4API version: 1.43 (downgraded from 1.45)Go version: go1.21.11Git commit: 5650f9bBuilt: Wed Jun 5 11:29:19 2024OS/Arch: linux/amd64Context: defaultServer: Docker DesktopEngine:Version: 24.0.6API version: 1.43 (minimum version 1.12)Go version: go1.20.7Git commit: 1a79695Built: Mon Sep 4 12:32:16 2023OS/Arch: linux/amd64Experimental: falsecontainerd:Version: 1.6.22GitCommit: 8165feabfdfe38c65b599c4993d227328c231fcarunc:Version: 1.1.8GitCommit: v1.1.8-0-g82f18fedocker-init:Version: 0.19.0GitCommit: de40ad0
可以看到现在就连接上DokerDesktop了
使用docker下载镜像太慢的解决办法
安装过程就是一路下一步就对了,打开主界面(不登录也可以进入主界面,点击跳过注册就行),进入主界面后,点击右上角小齿轮, 点击Docker Engine选项卡
在编辑框的json代码段中添加你要配置的国内镜像源,我的如下,其中阿里云镜像服务加速器地址(如下代码中的 “https://xxxx.mirror.aliyuncs.com”),你用你自己的,登录阿里云登录 - 欢迎登录阿里云,安全稳定的云计算服务平台,在
容器镜像服务/镜像加速器 中找到加速器地址,复制粘贴即可。
在Docker Desktop的设置中找到Doker Enigne 中添加 对应的自己的镜像加速器的内容