本文链接:https://www.cnblogs.com/tujia/p/13438639.html

一、更新Windows版本

WSL 2 随着 Windows build 19041 而推出,能更好的兼容 docker,如果你的电脑版本低于 19041,请先升级更新 Windows

注:如果你已经有WSL 2了,可以直接跳过步骤一、二、三。

查看版本及升级方法:

1)查看 Windows 版本的方法:Windows+r,运行 winver

2)升级方法

访问:https://www.microsoft.com/zh-cn/software-download/windows10,点击“立即更新”,下载 Windows10Upgrade.exe,双击运行即可

更新完之后,可以根据个人情况决定要不要删掉 C:\Windows.old 文件夹及卸载 windows 10 易升 程序

二、启用 VirtualMachinePlatform 组件

windows+x+a 打开 PowerShell ,输入以下命令启用 VirtualMachinePlatform(虚拟机平台)组件

Enable-WindowsOptionalFeature -Online -FeatureName VirtualMachinePlatform

保守起见,你也可以同时启用 Hyper-V 组件,官方的文档里没说要启用它

Enable-WindowsOptionalFeature -Online -FeatureName Microsoft-Hyper-V -All

注:启用组件之后,需要重启电脑才会生效

三、启动 wsl 2

注:如果你还没有安装过wsl linux 子系统,则先要开启wsl功能, 在 PowerShell 中执行下面命令,然后重启电脑即可

Enable-WindowsOptionalFeature -Online -FeatureName Microsoft-Windows-Subsystem-Linux

可以先用 wsl -l -v 来查看当前的wsl版本。如果显示的是版本是1,则执行 wsl --set-default-version 2 来设置默认版本;

如果提示“错误: 0x1bc”或其他异常,可以试试更新 wsl linux内核版本

传送门:https://docs.microsoft.com/zh-cn/windows/wsl/wsl2-kernel,下载 wsl_update_x64.msi 程序并安装

更新已有分发版本设置为 WSL 2

# 查看已有linux分发版本
wsl --list --verbose
# 设置分发版本为 wsl 2
wsl --set-version <distribution name> <versionNumber>

注:如果 --set-version 2之后,wsl -l -v 还是显示1的话,只能卸载重装 ubuntu了 

参考链接:

https://docs.microsoft.com/zh-cn/windows/wsl/install-win10

https://docs.microsoft.com/zh-cn/windows/wsl/wsl2-kernel

四、启动 ubuntu

win+q 搜索 ubuntu,选择以管理员身份运行

注:如果启动 ubuntu 时报错误:“WslRegisterDistribution failed with error: 0x80370102”,那就是还没启动BIOS 虚拟化功能,修改BIOS配置的方法请自动百度(一般是开机按F2)

排查wsl 2安装相关问题:https://docs.microsoft.com/zh-cn/windows/wsl/install-win10#troubleshooting-installation

镜像加速:https://www.runoob.com/docker/docker-mirror-acceleration.html


五、安装 docker

网上的安装教程很多很乱

最好用官网的安装教程!!

最好用官网的安装教程!!

最好用官网的安装教程!!

传送门:https://docs.docker.com/engine/install/ubuntu/#installation-methods

sudo apt-get update
sudo apt-get install apt-transport-https ca-certificates curl gnupg-agent software-properties-common
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable"
sudo apt-get update

最后一步重点:不能直接安装最新版本的 docker!!!!(否则可能会有一堆bug等着你)

先运行如下命令,看一下有哪些包适合自己的系统的

apt-cache madison docker-ce
apt-cache madison docker-ce-cli

然后,选一个较低的版本安装即可,例如:

sudo apt-get install docker-ce=5:19.03.9~3-0~ubuntu-focal docker-ce-cli=5:19.03.9~3-0~ubuntu-focal containerd.io

安装过程常见错误:

1)如果报错误:sleep: cannot read realtime clock: Invalid argument,则

sudo mv /bin/sleep /bin/sleep~
touch /bin/sleep
chmod +x /bin/sleep

2)如果报错误:gpg: can't connect to the agent: IPC connect call failed,则

sudo apt remove gpg
sudo apt-get update -y
sudo apt-get install -y gnupg1

如果还是不行,则

wget https://launchpad.net/~rafaeldtinoco/+archive/ubuntu/lp1871129/+files/libc6_2.31-0ubuntu8+lp1871129~1_amd64.deb
sudo dpkg --install libc6_2.31-0ubuntu8+lp1871129~1_amd64.deb
sudo apt-mark hold libc6 #to avoid further update

3)如果报错误:sudo: add-apt-repository: command not found,则

sudo apt install software-properties-common

六、docker 用户组

安装完之后,一般会提示

If you would like to use Docker as a non-root user, you should now consider
adding your user to the "docker" group with something like: sudo usermod -aG docker tiac Remember that you will have to log out and back in for this to take effect!

注:意思是说,你好像不是用root来安装的docker的,需要添加当前用户到docker用户组;tiac是我的用户名,换成自己的用户名就好

sudo usermod -aG docker your_name

七、启动 docker

启动 docker 服务

sudo service docker start

启动之后,看一下服务状态

sudo service docker status

如果提示“Docker is not running”,则关掉 ubuntu,以管理员身份重启 ubuntu

启动后,重新执行一下

sudo service docker start
sudo service docker status

如果显示“Docker is running”,则基本没什么问题了,如果还有错,请参考下面步骤八

八、docker 测试

sudo docker run hello-world

如果提示“docker: Cannot connect to the Docker daemon at unix:///var/run/docker.sock. Is the docker daemon running?.”,则

sudo usermod -aG docker $USER
sudo usermod -g docker $USER
sudo service docker restart

如果pull超时,则更换 docker hub镜像地址

curl -sSL https://get.daocloud.io/daotools/set_mirror.sh | sh -s http://f1361db2.m.daocloud.io

详情:https://www.daocloud.io/mirror#accelerator-doc

排除所有异常,最后效果(为了这个Hello World 不容易啊...)

总结:

1)windows 内部版本要升级到19041(或更高版本);

2)升级wsl1到wsl2(开启 VirtualMachinePlatform),wsl --set-default-version 2;

3)BIOS开户cpu虚拟化功能,Intel Virtualization Technology : Enable;

4)以管理员身份启动 ubuntu;

5)看docker官方的安装教程

6)不要安装最新版本docker

本文链接:https://www.cnblogs.com/tujia/p/13438639.html


完。

安装 WSL2、Ubuntu 及 docker(详细步骤)的更多相关文章

  1. Ubuntu 16.04安装docker详细步骤

    1. 卸载之前的旧版本 sudo apt-get remove docker docker-engine docker-ce docker.io 2. 更新apt包 sudo apt-get upda ...

  2. centos7安装Docker详细步骤(无坑版教程)

    一.安装前必读 在安装 Docker 之前,先说一下配置,我这里是Centos7 Linux 内核:官方建议 3.10 以上,3.8以上貌似也可. 注意:本文的命令使用的是 root 用户登录执行,不 ...

  3. 使用virtualBox安装CentOS 6.3的详细步骤

    由于前几天把系统升级到win7了,原先安装的Linux虚拟机都不存在了.基于学习,这次安装选择的是CentOS 6.3版本. 下面就看看具体的安装步骤: 名称可以随便填写,类型选择Linux,版本选择 ...

  4. Android Studio安装配置、环境搭建详细步骤及基本使用

    前言 Android Studio的安装配置及使用篇终于来啦~ 废话不多说,以下针对JDK正确安装(及其环境变量配置完毕,即Java开发环境下).Android Studio的安装,配置,以及创建工程 ...

  5. 在CentOS6.4中安装配置LAMP环境的详细步骤

    本文详细介绍了CentOS6.4系统中安装LAMP服务并对其进行配置的过程,即安装Apache+PHP+Mysql,参照了网上大神的设置,其他Linux发行系统可以参考~ 在本文中部分命令操作需要ro ...

  6. Windows和Linux系统下,虚拟环境安装的全面说明和详细步骤

    虚拟环境的创建和使用 用途: ​ 1.在同一台电脑安装同一个包的不同版本 2.记录项目所用的所有的包的版本,方便部署. 如何使用: 1.创建虚拟环境 mkvirtualenv 虚拟环境名 -p pyt ...

  7. 在CentOS6.4中安装配置LAMP环境的详细步骤 - Leroy-LIZH

    本文详细介绍了CentOS6.4系统中安装LAMP服务并对其进行配置的过程,即安装Apache+PHP+Mysql,参照了网上大神的设置,其他Linux发行系统可以参考~ 在本文中部分命令操作需要ro ...

  8. Mac 安装python 3.*新版本的详细步骤

    Mac 系统自带python,不过自带的python版本都是2.*版本.虽然不影响老版本项目的运行, 但是python最新的3.*版本的一些语法与2.*版本并不相同,我们不论是学习还是使用,当然用最新 ...

  9. vue-cli安装以及搭建vue项目详细步骤

    vue init webpack projectname(projectname是你项目的名称) 创建项目卡住不动解决方案: https://cli.vuejs.org/zh/guide/instal ...

  10. Android 开发之Windows环境下Android Studio安装和使用教程(图文详细步骤)

    鉴于谷歌最新推出的Android Studio备受开发者的推崇,所以也跟着体验一下. 一.介绍Android Studio  Android Studio 是一个Android开发环境,基于Intel ...

随机推荐

  1. java ConcurrentHashMap和CopyOnWriteArrayList解决并发问题

    ConcurrentHashMap 一.hashtable.hashmap.ConcurrentHashMap 1.线程不安全的HashMap 因为多线程环境下,使用Hashmap进行put操作会引起 ...

  2. 几个超级实用但很少人知道的 VS 技巧[更新]

    大家好,今天分享一些实用的 VS 技巧,而这些技巧我发现很多人都不知道.因为我经常在工作中遇到:我在同事电脑上解决问题,或在会议上演示代码示例时,使用了一些 VS "骚"操作,他们 ...

  3. 一键生成数据库文档,堪称数据库界的Swagger,有点厉害

    最近部门订单业务调整,收拢其他业务线的下单入口,做个统一大订单平台.需要梳理各业务线的数据表,但每个业务线库都有近百张和订单相关的表,挨个表一个一个字段的弄脑瓜子嗡嗡的. 为了不重复 CV 操作,抱着 ...

  4. Mac Catalina 下 gdb codesign问题解决

    在 macOS 上,无法直接使用 gdb 进行 debug. 这是因为 Darwin 内核在你没有特殊权限的情况下,不允许调试其它进程.调试某个进程,意味着你对这个进程有完全的控制权限,所以为了防止被 ...

  5. idea模拟前端向后台请求数据输出响应结果

    tools-httpClient-Test restful web service 通过上述步骤之后出现如下图 1 表示通过哪种方式请求:2 请求数据的地址头部:3 请求数据的除了头部之后的地址:4, ...

  6. 你来讲讲AQS是什么吧?都是怎么用的?

    前言 在Java面试的时候,多线程相关的知识是躲不掉的,肯定会被问.我就被问到了AQS的知识,就直接了当的问,AQS知道是什么吧,来讲讲它是怎么实现的,以及哪些地方用到了它.当时自己确实没有讲好,所以 ...

  7. RTThread DFS文件系统使用: 基于使用SFUD驱动的SPI FLASH之上的ELM FATFS文件系统

    参考博文: 博文很长,但是实际要操作的步骤没几下. http://m.elecfans.com/article/730878.html  为了防止几年后文章链接找不到,我把文章复制过来了 /***** ...

  8. [VBA原创源代码] excelhome 汇总多工作表花名册

    生病了,一点一滴的积累,慢慢康复,今年十月,我就 2 周岁了. 以下代码完成了excelhome中留的作业 http://club.excelhome.net/forum.php?mod=viewth ...

  9. ReverseFind的用法 ; 查找字符中最后一个字符

    转载:https://blog.csdn.net/frivolousinstant/article/details/52796922 ReverseFind CString::ReverseFind ...

  10. P4454 [CQOI2018]破解D-H协议

    链接 这题并不难只是需要把题读懂 - By ShadderLeave 一句话题意 给定两个数 \(p\)和\(g\),有\(t\)组询问,每组询问给出\(A\)和\(B\) 其中 A = \(g^a ...