史国生 發表於 2020-8-7 16:29:00

安装 WSL2、Ubuntu 及 docker(详细步骤)

<p>本文链接:https://www.cnblogs.com/tujia/p/13438639.html</p>
<p>&nbsp;</p>
<p>一、更新Windows版本</p>
<p>WSL 2&nbsp;随着&nbsp;Windows build <span style="color: rgba(255, 0, 0, 1)">19041</span> 而推出,能更好的兼容 docker,如果你的电脑版本低于 <span style="color: rgba(255, 0, 0, 1)">19041</span>,请先升级更新 Windows</p>
<p>注:如果你已经有WSL 2了,可以直接跳过步骤一、二、三。</p>
<p>&nbsp;</p>
<p>查看版本及升级方法:</p>
<p>1)查看&nbsp;Windows&nbsp;版本的方法:Windows+r,运行&nbsp;winver</p>
<p><img src="https://img2020.cnblogs.com/blog/550797/202008/550797-20200807101948205-1619581083.png"></p>
<p>&nbsp;2)升级方法</p>
<p>访问:https://www.microsoft.com/zh-cn/software-download/windows10,点击“立即更新”,下载&nbsp;Windows10Upgrade.exe,双击运行即可</p>
<p><img src="https://img2020.cnblogs.com/blog/550797/202008/550797-20200807104529207-127166491.png"></p>
<p><span style="color: rgba(255, 0, 0, 1)">更新完之后,可以根据个人情况决定要不要删掉&nbsp;C:\Windows.old&nbsp;文件夹及卸载 windows 10&nbsp;易升&nbsp;程序</span></p>
<p>&nbsp;</p>
<p>二、启用&nbsp;VirtualMachinePlatform&nbsp;组件</p>
<p>windows+x+a&nbsp;打开 PowerShell ,输入以下命令启用 VirtualMachinePlatform(虚拟机平台)组件</p>
<div class="cnblogs_code">
<pre>Enable-WindowsOptionalFeature -Online -FeatureName VirtualMachinePlatform</pre>
</div>
<p><span style="color: rgba(255, 0, 0, 1)">保守起见,你也可以同时启用 Hyper-V&nbsp;组件,官方的文档里没说要启用它</span></p>
<div class="cnblogs_code">
<pre>Enable-WindowsOptionalFeature -Online -FeatureName Microsoft-Hyper-V -All</pre>
</div>
<p>注:启用组件之后,需要重启电脑才会生效</p>
<p>&nbsp;</p>
<p>三、启动 wsl 2</p>
<p>注:如果你还没有安装过wsl linux&nbsp;子系统,则先要开启wsl功能,&nbsp;在 PowerShell&nbsp;中执行下面命令,然后<span style="color: rgba(255, 0, 0, 1)">重启电脑即可</span></p>
<div class="cnblogs_code">
<pre>Enable-WindowsOptionalFeature -Online -FeatureName Microsoft-Windows-Subsystem-Linux</pre>
</div>
<p>&nbsp;</p>
<p>可以先用 <span style="color: rgba(255, 0, 0, 1)">wsl -l -v</span>&nbsp;来查看当前的wsl版本。如果显示的是版本是1,则执行 <span style="color: rgba(255, 0, 0, 1)">wsl --set-default-version 2</span> 来设置默认版本;</p>
<p>如果提示“错误: 0x1bc”或其他异常,可以试试更新 wsl linux内核版本</p>
<p>传送门:https://docs.microsoft.com/zh-cn/windows/wsl/wsl2-kernel,下载 wsl_update_x64.msi&nbsp;程序并安装</p>
<p><img src="https://img2020.cnblogs.com/blog/550797/202008/550797-20200807093136594-1069092822.png"></p>
<p>&nbsp;</p>
<p><span style="color: rgba(255, 0, 0, 1)">更新已有分发版本设置为 WSL 2<br></span></p>
<div class="cnblogs_code">
<pre><span style="color: rgba(0, 128, 0, 1)">#</span><span style="color: rgba(0, 128, 0, 1)"> 查看已有linux分发版本</span>
wsl --list --<span style="color: rgba(0, 0, 0, 1)">verbose
</span><span style="color: rgba(0, 128, 0, 1)">#</span><span style="color: rgba(0, 128, 0, 1)"> 设置分发版本为 wsl 2</span>
wsl --set-version &lt;distribution name&gt; &lt;versionNumber&gt;</pre>
</div>
<p><img src="https://img2020.cnblogs.com/blog/550797/202008/550797-20200807140749361-2007143526.png"></p>
<p>&nbsp;</p>
<p><span style="color: rgba(255, 0, 0, 1)"><strong>注:如果 --set-version 2之后,wsl -l -v&nbsp;还是显示1的话,只能卸载重装 ubuntu了&nbsp;</strong></span></p>
<p>&nbsp;</p>
<p>参考链接:&nbsp;</p>
<p>https://docs.microsoft.com/zh-cn/windows/wsl/install-win10</p>
<p>https://docs.microsoft.com/zh-cn/windows/wsl/wsl2-kernel</p>
<p>&nbsp;</p>
<p>四、启动 ubuntu</p>
<p>win+q&nbsp;搜索 ubuntu,选择<strong><span style="color: rgba(255, 0, 0, 1)">以管理员身份运行</span></strong></p>
<p><img src="https://img2020.cnblogs.com/blog/550797/202008/550797-20200807153048660-577284694.png"></p>
<p>注:如果启动&nbsp;ubuntu&nbsp;时报错误:“<span style="color: rgba(255, 0, 0, 1)">WslRegisterDistribution failed with error: 0x80370102</span>”,那就是还没启动BIOS 虚拟化功能,修改BIOS配置的方法请自动百度(一般是开机按F2)&nbsp;<span style="color: rgba(255, 0, 0, 1)"><br></span></p>
<p>&nbsp;<img src="https://img2020.cnblogs.com/blog/550797/202008/550797-20200807152708102-111380791.png"></p>
<p>&nbsp;</p>
<p><strong>排查wsl 2安装相关问题:</strong>https://docs.microsoft.com/zh-cn/windows/wsl/install-win10#troubleshooting-installation</p>
<p>&nbsp;</p>
<p>镜像加速:https://www.runoob.com/docker/docker-mirror-acceleration.html</p>
<p>&nbsp;</p>
<hr>
<p>&nbsp;</p>
<p>五、安装 docker</p>
<p>网上的安装教程很多很乱</p>
<p>最好用官网的安装教程!!</p>
<p>最好用官网的安装教程!!</p>
<p>最好用官网的安装教程!!</p>
<p>传送门:https://docs.docker.com/engine/install/ubuntu/#installation-methods</p>
<div class="cnblogs_code">
<pre>sudo apt-get update</pre>
</div>
<div class="cnblogs_code">
<pre>sudo apt-get install apt-transport-https ca-certificates curl gnupg-agent software-properties-common</pre>
</div>
<div class="cnblogs_code">
<pre>curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -</pre>
</div>
<div class="cnblogs_code">
<pre>sudo add-apt-repository "deb https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable"</pre>
</div>
<div class="cnblogs_code">
<pre>sudo apt-get update</pre>
</div>
<p>最后一步<span style="color: rgba(255, 0, 0, 1)"><strong>重点:不能直接安装最新版本的 docker!!!!(否则可能会有一堆bug等着你)</strong></span></p>
<p>先运行如下命令,看一下有哪些包适合自己的系统的</p>
<div class="cnblogs_code">
<pre>apt-cache madison docker-ce</pre>
</div>
<div class="cnblogs_code">
<pre>apt-cache madison docker-ce-cli</pre>
</div>
<p>然后,<span style="color: rgba(255, 0, 0, 1)">选一个较低的版本安装</span>即可,例如:</p>
<div class="cnblogs_code">
<pre>sudo apt-get install docker-ce=<span style="color: rgba(128, 0, 0, 1)">5</span>:<span style="color: rgba(128, 0, 0, 1)">19.03</span>.<span style="color: rgba(128, 0, 0, 1)">9</span>~<span style="color: rgba(128, 0, 0, 1)">3</span>-<span style="color: rgba(128, 0, 0, 1)">0</span>~ubuntu-focal docker-ce-cli=<span style="color: rgba(128, 0, 0, 1)">5</span>:<span style="color: rgba(128, 0, 0, 1)">19.03</span>.<span style="color: rgba(128, 0, 0, 1)">9</span>~<span style="color: rgba(128, 0, 0, 1)">3</span>-<span style="color: rgba(128, 0, 0, 1)">0</span>~ubuntu-focal containerd.io</pre>
</div>
<p>&nbsp;</p>
<p><strong>安装过程常见错误:</strong></p>
<p>1)如果报错误:sleep: cannot read realtime clock: Invalid argument,则</p>
<div class="cnblogs_code">
<pre>sudo mv /bin/<span style="color: rgba(0, 0, 255, 1)">sleep</span> /bin/<span style="color: rgba(0, 0, 255, 1)">sleep</span>~<span style="color: rgba(0, 0, 0, 1)">
touch </span>/bin/<span style="color: rgba(0, 0, 255, 1)">sleep</span>
<span style="color: rgba(0, 0, 255, 1)">chmod</span> +x /bin/<span style="color: rgba(0, 0, 255, 1)">sleep</span></pre>
</div>
<p>2)如果报错误:gpg: can't connect to the agent: IPC connect call failed,则</p>
<div class="cnblogs_code">
<pre><span style="color: rgba(0, 0, 0, 1)">sudo apt remove gpg
sudo apt</span>-get update -<span style="color: rgba(0, 0, 0, 1)">y
sudo apt</span>-get install -y gnupg1</pre>
</div>
<p>如果还是不行,则</p>
<div class="cnblogs_code">
<pre>wget https://launchpad.net/~rafaeldtinoco/+archive/ubuntu/lp1871129/+files/libc6_2.<span style="color: rgba(128, 0, 0, 1)">31</span>-0ubuntu8+lp1871129~1_amd64.<span style="color: rgba(0, 0, 0, 1)">deb
sudo dpkg </span>--install libc6_2.<span style="color: rgba(128, 0, 0, 1)">31</span>-0ubuntu8+lp1871129~1_amd64.<span style="color: rgba(0, 0, 0, 1)">deb
sudo apt</span>-mark hold libc6 <span style="color: rgba(0, 128, 0, 1)">#</span><span style="color: rgba(0, 128, 0, 1)">to avoid further update</span></pre>
</div>
<p>3)如果报错误:sudo: add-apt-repository: command not found,则</p>
<div class="cnblogs_code">
<pre>sudo apt install software-properties-common</pre>
</div>
<p>&nbsp;</p>
<p>六、docker&nbsp;用户组</p>
<p>安装完之后,一般会提示</p>
<div class="cnblogs_code">
<pre><span style="color: rgba(0, 0, 255, 1)">If</span> you would like to <span style="color: rgba(0, 0, 255, 1)">use</span> Docker as a non-root user,<span style="color: rgba(0, 0, 0, 1)"> you should now consider
adding your user to the </span><span style="color: rgba(0, 0, 0, 1); font-weight: bold">"</span><span style="color: rgba(0, 0, 0, 1); font-weight: bold">docker</span><span style="color: rgba(0, 0, 0, 1); font-weight: bold">"</span> group with something like:<span style="color: rgba(0, 0, 0, 1)">

sudo usermod </span>-<span style="color: rgba(0, 0, 0, 1)">aG docker tiac

Remember that you will have to </span><span style="color: rgba(0, 0, 255, 1)">log</span> out and back in <span style="color: rgba(0, 0, 255, 1)">for</span> this to take effect!</pre>
</div>
<p>注:意思是说,你好像不是用root来安装的docker的,需要添加当前用户到docker用户组;tiac是我的用户名,换成自己的用户名就好</p>
<div class="cnblogs_code">
<pre>sudo usermod -aG docker your_name</pre>
</div>
<p>&nbsp;</p>
<p>七、启动 docker</p>
<p>启动 docker 服务</p>
<div class="cnblogs_code">
<pre>sudo service docker start</pre>
</div>
<p>启动之后,看一下服务状态</p>
<div class="cnblogs_code">
<pre>sudo service docker status</pre>
</div>
<p>如果提示“Docker is not running”,则关掉 ubuntu,以管理员身份重启 ubuntu</p>
<p><img src="https://img2020.cnblogs.com/blog/550797/202008/550797-20200806154044181-1191506681.png"></p>
<p>&nbsp;启动后,重新执行一下</p>
<div class="cnblogs_code">
<pre><span style="color: rgba(0, 0, 0, 1)">sudo service docker start
sudo service docker status</span></pre>
</div>
<p>如果显示“Docker is running”,则基本没什么问题了,如果还有错,请参考下面步骤八</p>
<p>&nbsp;</p>
<p>八、docker&nbsp;测试</p>
<div class="cnblogs_code">
<pre>sudo docker run hello-world</pre>
</div>
<p>如果提示“docker: Cannot connect to the Docker daemon at unix:///var/run/docker.sock. Is the docker daemon running?.”,则</p>
<div class="cnblogs_code">
<pre>sudo usermod -<span style="color: rgba(0, 0, 0, 1)">aG docker $USER
sudo usermod </span>-<span style="color: rgba(0, 0, 0, 1)">g docker $USER
sudo service docker restart</span></pre>
</div>
<p>如果pull超时,则更换 docker hub镜像地址</p>
<div class="cnblogs_code">
<pre>curl -sSL https://get.daocloud.io/daotools/set_mirror.sh | sh -s http://f1361db2.m.daocloud.io</pre>
</div>
<p>详情:https://www.daocloud.io/mirror#accelerator-doc</p>
<p>&nbsp;</p>
<p>排除所有异常,最后效果(为了这个Hello World&nbsp;不容易啊...)</p>
<p><img src="https://img2020.cnblogs.com/blog/550797/202008/550797-20200807162746663-339883081.png"></p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p><span style="font-size: 18px"><strong><span style="color: rgba(255, 0, 0, 1)">总结:</span></strong></span></p>
<p><span style="font-size: 18px"><strong><span style="color: rgba(255, 0, 0, 1)">1)windows&nbsp;内部版本要升级到19041(或更高版本);</span></strong></span></p>
<p><span style="font-size: 18px"><strong><span style="color: rgba(255, 0, 0, 1)">2)升级wsl1到wsl2(开启 VirtualMachinePlatform),wsl --set-default-version 2;</span></strong></span></p>
<p><span style="font-size: 18px"><strong><span style="color: rgba(255, 0, 0, 1)">3)BIOS开户cpu虚拟化功能,Intel Virtualization Technology : Enable;</span></strong></span></p>
<p><span style="font-size: 18px"><strong><span style="color: rgba(255, 0, 0, 1)">4)以管理员身份启动 ubuntu;</span></strong></span></p>
<p><span style="font-size: 18px"><strong><span style="color: rgba(255, 0, 0, 1)">5)看docker官方的安装教程</span></strong></span></p>
<p><span style="font-size: 18px"><strong><span style="color: rgba(255, 0, 0, 1)">6)不要安装最新版本docker</span></strong></span></p>
<p>&nbsp;</p>
<p>本文链接:https://www.cnblogs.com/tujia/p/13438639.html</p>
<hr>
<p>&nbsp;完。</p><br><br>
来源:https://www.cnblogs.com/tujia/p/13438639.html
頁: [1]
查看完整版本: 安装 WSL2、Ubuntu 及 docker(详细步骤)