win11家庭版使用自带的Linux子系统并安装docker【全网整合版】

1. 电脑配置项

开发者选项

设置->系统->开发者选项
在这里插入图片描述

启用或关闭windows功能

控制面板->卸载程序->启用或关闭windows功能
在这里插入图片描述
勾选适用于Linux的Windows子系统和虚拟机平台并重启电脑(首次勾选选项时电脑提示重启)

Hyper-V

关键点:win11家庭版在启动或关闭windows功能中没有Hyper-V选项显示

  1. 将下述代码添加到记事本中,并另存为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
  1. 找到Hyper-V.cmd文件图标,在右键菜单中点击:以管理员身份运行
    在这里插入图片描述
  2. 然后弹出一个 用户帐户控制 - Windows命令处理程序 对话框,我们点击:是
  3. 然后系统自动进行Windows命令处理,我们等待处理完成以后,【这个过程中不要关闭窗口或者关机】在最末处输入:Y,电脑自动重启,进行配置更新
    在下载安装的过程中,可能会卡住,尝试按按【回车键】
    在这里插入图片描述
  4. 电脑重启之后,在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

  1. 以管理员身份打开 PowerShell 并运行:
dism.exe /online /enable-feature /featurename:Microsoft-Windows-Subsystem-Linux /all /norestart
  1. 以管理员身份打开 PowerShell 并运行:
dism.exe /online /enable-feature /featurename:VirtualMachinePlatform /all /norestart
  1. 下载 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
    点击链接即可!!!

  2. 运行上一步中下载的更新包。 (双击以运行 - 系统将提示你提供提升的权限,选择“是”以批准此安装。)

  3. 安装完成后,请继续执行下一步 - 在安装新的 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 -v
  NAME                   STATE           VERSION
* Ubuntu-20.04           Running         2
  docker-desktop-data    Stopped         2
  docker-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-world

Hello 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 the
    executable that produces the output you are currently reading.
 4. The Docker daemon streamed that output to the Docker client, which sent it
    to your terminal.

To try something more ambitious, you can run an Ubuntu container with:
 $ docker run -it ubuntu bash

Share 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 - Community
 Version:           26.1.4
 API version:       1.43 (downgraded from 1.45)
 Go version:        go1.21.11
 Git commit:        5650f9b
 Built:             Wed Jun  5 11:29:19 2024
 OS/Arch:           linux/amd64
 Context:           default

Server: Docker Desktop
 Engine:
  Version:          24.0.6
  API version:      1.43 (minimum version 1.12)
  Go version:       go1.20.7
  Git commit:       1a79695
  Built:            Mon Sep  4 12:32:16 2023
  OS/Arch:          linux/amd64
  Experimental:     false
 containerd:
  Version:          1.6.22
  GitCommit:        8165feabfdfe38c65b599c4993d227328c231fca
 runc:
  Version:          1.1.8
  GitCommit:        v1.1.8-0-g82f18fe
 docker-init:
  Version:          0.19.0
  GitCommit:        de40ad0

可以看到现在就连接上DokerDesktop了

使用docker下载镜像太慢的解决办法

安装过程就是一路下一步就对了,打开主界面(不登录也可以进入主界面,点击跳过注册就行),进入主界面后,点击右上角小齿轮, 点击Docker Engine选项卡
在编辑框的json代码段中添加你要配置的国内镜像源,我的如下,其中阿里云镜像服务加速器地址(如下代码中的 “https://xxxx.mirror.aliyuncs.com”),你用你自己的,登录阿里云登录 - 欢迎登录阿里云,安全稳定的云计算服务平台,在
容器镜像服务/镜像加速器 中找到加速器地址,复制粘贴即可。
在这里插入图片描述

在Docker Desktop的设置中找到Doker Enigne 中添加 对应的自己的镜像加速器的内容

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/734357.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

JAVA同城服务场馆门店预约系统支持H5小程序APP源码

📱一键预约,畅享无忧体验🏢 🚀一、开启预约新纪元 在繁忙的都市生活中,我们常常因为时间紧张而错过心仪的门店或场馆服务。然而,有了“门店场馆预约小程序”,这些问题都将迎刃而解。这款小程序…

vue3学习教程第四十节(pinia的用法注意事项解构store)

pinia 主要包括以下五部分,经常用到的是 store、state、getters、actions 以下使用说明,注意事项,仅限于 vue3 setup 语法糖中使用,若使用选项式 API 请直接查看官方文档: 一、前言: pinia 是为了探索 vu…

Python3简单实现与Java的Hutool库SM2的加解密互通

1、背景: 因业务需求,需要与某平台接口对接。平台是Java基于Hutool库实现的SM2加密解密,研究了下SM2的加解密算法,网上找的资料,都是说SM2【椭圆曲线】 公钥长【x,y分量 64字节】,私钥短【32字节】&#x…

网络富集显著性检验NEST(?)

https://doi.org/10.1002/hbm.26714 背景 一般情况下,研究者通过评估统计量较大的脑区与功能网络重叠的情况,或者计算网络的体素占比,来确定行为和功能网络的相关性。NEST能检测行为表型和大脑表型的相关性是否富集在特定的功能网络中。例如下…

Golang | Leetcode Golang题解之第166题分数到小数

题目&#xff1a; 题解&#xff1a; func fractionToDecimal(numerator, denominator int) string {if numerator%denominator 0 {return strconv.Itoa(numerator / denominator)}s : []byte{}if numerator < 0 ! (denominator < 0) {s append(s, -)}// 整数部分numer…

食谱API

在当今追求健康与美味完美结合的时代&#xff0c;获取准确而丰富的食品和营养信息变得至关重要。无论是热衷于探索世界各地美食的烹饪爱好者&#xff0c;还是对自身饮食营养严格把控的健康追求者&#xff0c;都离不开可靠的资源。幸运的是&#xff0c;现在有诸如 TheMealDB 和 …

win10环境配置ollama-ui运行llama3模型

先说我的笔记本电脑配置intel-i7-11390h,4核8处理器&#xff0c;内存16G。显卡NVIDA GeFroce MX450&#xff0c;2G显存&#xff0c;这是一台5000元左右的电脑。 我用它跑roop、sd1.5、ffusion2、ChatTTs还有pythonpytorch的自定义模型&#xff0c;现在用来跑llama3。当然&…

新手(初学者)学R语言第一课,从学正确导入数据开始

初看题目好像我在教你怎么导入数据&#xff0c;不不不&#xff0c;我是在教你正确的导入数据&#xff0c;不是说数据导入R就叫正确导入数据了。本章为新手教程&#xff0c;老手可以跳过。 这个内容早就想写了&#xff0c;今天有点空和大家聊一下。为什么R语言对于新手而言不太友…

【Autoware】Autoware.universe安装过程与问题记录

&#x1f60f;★,:.☆(&#xffe3;▽&#xffe3;)/$:.★ &#x1f60f; 这篇文章主要介绍Autoware.universe安装过程与问题记录。 无专精则不能成&#xff0c;无涉猎则不能通。——梁启超 欢迎来到我的博客&#xff0c;一起学习&#xff0c;共同进步。 喜欢的朋友可以关注一下…

基于MYSQL的JAVA初级优化措施

世界是草台班子,这句话视乎很流行! 经历过几家创业公司的项目优化,以及大公司项目. 很多优化非常初级,用心点都能自己找出来! 其实主要原因当初是为了赶进度,能省则省.什么设计啊? 什么性能压测啊. 都省掉吧! 质量都要靠测试人员帮忙找出来,更何况是性能问题呢! 那怕是配齐了…

临时关闭Windows安全中心

在使用WindowsOS是&#xff0c;微软安全中心是我们必不可少的安全防护&#xff0c;但有时我们也会产生想要将其关闭的需求&#xff0c;下面将要介绍如何临时关闭Windows的安全中心 一、打开安全中心、选择“病毒与威胁防护”&#xff0c;点击“管理设置” 之后将其实时保护关闭…

Vue3中的常见组件通信(超详细版)

Vue3中的常见组件通信 概述 ​ 在vue3中常见的组件通信有props、mitt、v-model、 r e f s 、 refs、 refs、parent、provide、inject、pinia、slot等。不同的组件关系用不同的传递方式。常见的撘配形式如下表所示。 组件关系传递方式父传子1. props2. v-model3. $refs4. 默认…

M12单端I/O预铸法兰插座A-code

M12单端I/O预铸法兰插座A-code概述 M12单端I/O预铸连接器A-code是一种常用于工业自动化领域的连接器件&#xff0c;主要用于传感器和执行器之间的信号传输。它的设计遵循国际标准IEC 61076-2-101&#xff0c;具有良好的防水防尘性能&#xff0c;通常达到IP67的保护等级。M12连…

自学鸿蒙HarmonyOS的ArkTS语言<一>基本语法

一、一个ArkTs的目录结构 二、一个页面的结构 A、装饰器 Entry 装饰器 : 标记组件为入口组件&#xff0c;一个页面由多个自定义组件组成&#xff0c;但是只能有一个组件被标记 Component : 自定义组件, 仅能装饰struct关键字声明的数据结构 State&#xff1a;组件中的状态变量…

【Linux硬盘读取】Windows下读取Linux系统的文件解决方案:Linux Reader4.5 By DiskInternals

前言 相信做机器视觉相关的很多人都会安装 Windows 和 Linux 双系统。在 Linux 下&#xff0c;我们可以很方便的访问Windows的磁盘&#xff0c;反过来却不行。但是这又是必须的。通过亲身体验&#xff0c;向大家推荐这么一个工具&#xff0c;可以让 Windows 方便的访问 Ext 2/3…

机器学习课程复习——逻辑回归

1. 激活函数 Q:激活函数有哪些? SigmoidS型函数Tanh 双曲正切函数

SpringBoot+Maven项目的配置构建

文章目录 1、application.properties2、pom.xml 1、application.properties 也可使用yml yaml #静态资源 spring.mvc.static-path-pattern/images/** #上传文件大小设置 spring.http.multipart.max-file-size10MB spring.http.multipart.max-request-size10MBspring.mvc.path…

50万定律:任何单位和任何职业,只要工资年收入大于50万,基本上都要牺牲个人生活,无论是医生还是教师...

“我今年30岁&#xff0c;在北京&#xff0c;年薪50万&#xff0c;但我一点也不快乐……” 朋友圈看到朋友的感慨&#xff0c;配图是深夜加班的CBD夜景&#xff0c;评论区不出所料&#xff0c;一半是羡慕&#xff0c;一半是“凡尔赛”。 年薪50万&#xff0c;在很多人眼里&am…

Spring的启动扩展点机制详解

在Java的世界中&#xff0c;我们知道Spring是当下最主流的开发框架&#xff0c;没有之一。而在使用Dubbo、Mybatis等开源框架时&#xff0c;我们发现可以采用和Spring完全一样的使用方式来使用它们。 可能你在平时的使用过程中并没有意识到这一点&#xff0c;但仔细想一想&…

NUC 14 Pro+:解锁AI前沿,体验科技之美

NUC 14 Pro不仅是一台迷你主机&#xff0c;更是生活品质的体现。如果你也是细节控&#xff0c;那这篇文章或许是你需要的。 超小体积 造型精致 NUC 14 Pro作为迷你PC拥有约0.66L的超小体积&#xff0c;如果你对升没有概念&#xff0c;那你可以想象&#xff1a;它的机箱面积144…