直到您在WSL2上的Ubuntu上运行docker之前,剩下WSL1


tl;博士

我不想删除WSL1的Ubuntu 18.04,所以我手动将Ubuntu 18.04安装到WSL2,而无需使用商店并在那里安装docker。

参与Windows Insider计划

我将以正式身份参加。

  • 加入您网站上的Windows Insider计划
  • 将参与帐户链接到Windows 10

WSL2的准备

windows update获取新的Windows版本。

安装新版本后,在以管理员身份启动的Powershell上运行以下命令。
顺便说一句,如果WSL1已经在运行,则不需要第二行。

1
2
Enable-WindowsOptionalFeature -Online -FeatureName VirtualMachinePlatform
Enable-WindowsOptionalFeature -Online -FeatureName Microsoft-Windows-Subsystem-Linux

Ubuntu软件包下载

不能使用Microsoft商店中的Ubuntu 18.04,因为它已在WSL1中设置。
因此,请从此处下载Ubuntu 18.04软件包。
将下载名为ubuntu-bionic-core-cloudimg-amd64-root.tar.gz的文件。

离线下载LxRun

从此处下载LxRunOffline,这是用于管理WSL的全功能实用程序。 LxRunOffline-v3.4.1-msvc.zip

安装ubuntu

将下载的LxRunOffline解压缩到合适的位置。
将下载的Ubuntu软件包放在相同的位置。
以管理员身份启动powsershell,将其移动到LxRunOffline,然后执行以下WSL安装命令。

1
LxRunOffline i -n {任意のディストリビューション名} -d {インストールしたい任意のディレクトリ} {パッケージファイル}

就我而言,我将其安装在" D:\\ WSL \\ Ubuntu-18-wsl2"中,并将分发名称(以后将用于WSL操作)设置为" Ubuntu-18-wsl2"。

1
> .\LxRunOffline i -n Ubuntu-18-wsl2 -d D:\WSL\Ubuntu-18-wsl2 -f ubuntu-bionic-core-cloudimg-amd64-root.tar.gz

Ubuntu准备

使用

随后的LxRunOffline命令启动Ubuntu。目前还没有WSL2。
发行名称为" Ubuntu-18-wsl2",但是请使用您提供的发行名称替换它。

1
> .\LxRunOffline run -n {作成したディストリビューション名}

就我而言,我运行了以下命令。

1
> .\LxRunOffline run -n Ubuntu-18-wsl2

对启动的Ubuntu执行以下命令。
在此过程中创建了一个名为" myuser"的用户,但是您可以根据需要进行更改。

1
2
3
4
5
6
# apt update
# apt upgrade
# adduser myuser
# apt install sudo
# gpasswd -a myuser sudo
# login myuser

最后一个以创建用户身份登录的命令,因此请使用id命令检查创建用户的uid。

1
2
$ id
uid=1000(myuser) gid=1000(myuser) groups=1000(myuser),27(sudo)

检查

uid(在我的情况下为1000)后,退出Ubuntu。

WSL默认用户设置

在以管理员身份启动的Powershell上执行以下命令。

1
> .\LxRunOffline su -n {作成したディストリビューション名} -v {上記で確認したuid}

就我而言,我运行了以下命令。

1
> .\LxRunOffline su -n Ubuntu-18-wsl2 -v 1000

从WSL1升级到WSL2

在以管理员身份启动的Powershell上执行以下命令。

1
> wsl --set-version {作成したディストリビューション名} 2

就我而言,我运行了以下命令。

1
> wsl --set-version Ubuntu-18-wsl2 2

使用以下命令检查升级是否成功。

1
2
3
4
> wsl -l -v
  NAME              STATE           VERSION
* Ubuntu-18.04      Running         1
  Ubuntu-18-wsl2    Running         2

您可以看到Ubuntu-18.04在WSL1上运行,而Ubuntu-18-wsl2在WSL2上运行。

安装并检查docker

在powershell上执行以下命令以登录WSL2的Ubuntu。

1
> .\LxRunOffline run -n {作成したディストリビューション名}

登录Ubuntu后,按照官方步骤安装docker。

1
2
3
4
5
6
7
8
$ 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
$ sudo apt-get install docker-ce docker-ce-cli containerd.io

??操作检查

启动docker服务

1
$ sudo service docker start

你好世界执行

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
$ 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/

或更多。