tl;博士
我不想删除WSL1的Ubuntu 18.04,所以我手动将Ubuntu 18.04安装到WSL2,而无需使用商店并在那里安装docker。
参与Windows Insider计划
我将以正式身份参加。
- 加入您网站上的Windows Insider计划
- 将参与帐户链接到Windows 10
WSL2的准备
从
安装新版本后,在以管理员身份启动的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软件包。
将下载名为
离线下载LxRun
从此处下载
安装ubuntu
将下载的
将下载的Ubuntu软件包放在相同的位置。
以管理员身份启动powsershell,将其移动到
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准备
使用
随后的
发行名称为" 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 |
最后一个以创建用户身份登录的命令,因此请使用
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/ |
或更多。