需要 windows10 升级到 2004
准备工具
- WSL2-Ubuntu20.04:windows 下的 linux 子系统
- GitHub:code-server
WSL2 部分
安装 WSL2
-
首先启用 Windows 功能
另外通过
PowerShell
命令行也可以开启:1 2
dism.exe /online /enable-feature /featurename:Microsoft-Windows-Subsystem-Linux /all /norestart dism.exe /online /enable-feature /featurename:VirtualMachinePlatform /all /norestart
-
更新 WSL 2 Linux 内核
点此下载内核更新包 X86
-
将 WSL2 设置为默认版本
通过管理员权限
PowerShell
命令行进行配置:1
wsl --set-default-version 2
-
接着就可以去应用商店安装 Linux 分发版了
安装 Linux 分发版
-
安装 Ubuntu20.04
-
方法一:打开应用商店搜索 “Ubuntu 20.04”并安装
-
方法二:管理员权限
PowerShell
命令行安装1 2 3 4 5
# 列出所有可安装的 linux 版本 wsl --list --online # 下载安装 ubuntu20.04 wsl --install -d Ubuntu-20.04
-
-
安装完成后启动一次
-
查看已经安装的 WSL 版本
管理员权限
PowerShell
中输入:1
wsl -l -v
-
如果曾经安装过 WSL 一代,可使用如下命令更改版本(也可2降1)
管理员权限
PowerShell
中输入:1
wsl --set-version Ubuntu-20.04 2
[可选] 配置 Ubuntu20.04(阿里云仓库)
-
换阿里源
1
sudo vim /etc/apt/sources.list
用下面的内容替换原内容:
1 2 3 4 5 6 7 8 9 10 11 12 13 14
deb http://mirrors.aliyun.com/ubuntu/ focal main restricted universe multiverse deb-src http://mirrors.aliyun.com/ubuntu/ focal main restricted universe multiverse deb http://mirrors.aliyun.com/ubuntu/ focal-security main restricted universe multiverse deb-src http://mirrors.aliyun.com/ubuntu/ focal-security main restricted universe multiverse deb http://mirrors.aliyun.com/ubuntu/ focal-updates main restricted universe multiverse deb-src http://mirrors.aliyun.com/ubuntu/ focal-updates main restricted universe multiverse deb http://mirrors.aliyun.com/ubuntu/ focal-proposed main restricted universe multiverse deb-src http://mirrors.aliyun.com/ubuntu/ focal-proposed main restricted universe multiverse deb http://mirrors.aliyun.com/ubuntu/ focal-backports main restricted universe multiverse deb-src http://mirrors.aliyun.com/ubuntu/ focal-backports main restricted universe multiverse
-
更新缓存和升级
1 2
sudo apt-get update sudo apt-get upgrade
[可选] wsl2 升级 wslg
先决条件 1:已经安装 wsl2;
先决条件 2:win10 内部版本在 21362+ 或者系统是 win11;
-
下载 gpu 驱动
你的电脑 GPU 属于什么硬件品牌就装对应的就好了;
-
管理员权限 powershell 命令更新到 wslg
1
wsl --update
-
[可选] 在 linux shell 中安装一些 gui 应用
1 2 3 4 5 6 7 8
# 在 linux shell 中执行 sudo apt update # Gedit 编辑器 sudo apt install gedit -y # Nautilus 文件管理器 sudo apt install nautilus -y
[可选] 解决 wsl2 出现 Vmmem 内存占用过大
-
进入 WSL2,设置定时任务:每 15 分钟删除缓存,并创建一个文件
sudo crontab -e -u root
添加如下的行:1
*/15 * * * * sync; echo 3 > /proc/sys/vm/drop_caches; touch /root/drop_caches_last_run
-
开机自启动 cron 服务
vim ~/.bashrc
添加如下的行:1
[ -z "$(ps -ef | grep cron | grep -v grep)" ] && sudo /etc/init.d/cron start &> /dev/null
-
允许启动 cron 服务而无需输入 root 密码
sudo visudo
添加以下行:1
%sudo ALL=NOPASSWD: /etc/init.d/cron start
-
重启 WSL2
powershell 上杀死 WSL
wsl --shutdown
,然后再次启动它; -
跟踪定时任务,判断它是否正常工作
因为在定时任务中创建了 /root/drop_caches_last_run 文件,可以通过查看该文件的修改日期跟踪目标任务的工作情况:
1
sudo stat -c '%y' /root/drop_caches_last_run
[可选] 限制 WSL2 内存使用
-
先使用管理员权限 powershell 命令关闭 wsl:
wsl --shutdown
-
接着在用户文件夹下新建一个 .wslconfig 文件
C:\Users\<yourUserName>\.wslconfig
,内容如下:1 2 3 4
[wsl2] memory=3GB swap=3GB localhostForwarding=true
[可选] 使用 wsl 命令迁移 WSL 到非系统盘
-
使用 powershell 关闭所有发行版:
1
wsl --shutdown
-
导出 ubuntu20.04 发行版:
需要
D:\WSL
目录存在;1
wsl --export Ubuntu-20.04 D:\WSL\Ubuntu-20.04.tar
-
注销 ubuntu20.04 发行版:
1
wsl --unregister Ubuntu-20.04
-
从
D:\WSL\Ubuntu-20.04.tar
导入 ubuntu20.04 发行版到文件夹D:\WSL\Ubuntu-20.04
:1
wsl --import Ubuntu-20.04 D:\WSL\Ubuntu-20.04 D:\WSL\Ubuntu-20.04.tar --version 2
-
设置 wsl2 Ubuntu-20.04 的默认用户:
1
ubuntu2004 config --default-user jerry
-
[可选] 删除中间导出文件:
1
rm D:\WSL\Ubuntu-20.04.tar
[可选] 使用 LxRunOffline 迁移 WSL 到非系统盘
下载一个编译好的 LxRunOffline(我下载的是 LxRunOffline-v3.5.0-msvc.zip),解压缩后使用该工具进行管理;
-
查看已经安装的 WSL:
1
.\LxRunOffline.exe list
-
迁移 Ubuntu-20.04
先使用命令关闭 wsl:
wsl --shutdown
1
.\LxRunOffline.exe move -n Ubuntu-20.04 -d E:\WSL\Ubuntu-20.04
-
查看 Ubuntu-20.04 所在目录
1
.\LxRunOffline.exe get-dir -n Ubuntu-20.04
docker 部分
安装预编译 docker-ce(阿里云仓库)
注意:docker.io 是旧版本,这里是安装社区版本的 docker-ce
-
安装 docker
1 2 3 4 5 6 7 8 9
# step 1: 安装必要的一些系统工具 sudo apt-get update sudo apt-get -y install apt-transport-https ca-certificates curl software-properties-common # step 2: 安装GPG证书 curl -fsSL http://mirrors.aliyun.com/docker-ce/linux/ubuntu/gpg | sudo apt-key add - # Step 3: 写入软件源信息 sudo add-apt-repository "deb [arch=amd64] http://mirrors.aliyun.com/docker-ce/linux/ubuntu $(lsb_release -cs) stable" # Step 4: 更新并安装Docker-CE sudo apt-get -y updatesudo apt-get -y install docker-ce
-
解决遇到的问题“no installation candidate”
原因是 Ubuntu20.04 的软件库中没有 docker-ce;
改用 Ubuntu19.04(Disco) 的软件库即可,方法如下:
-
去掉
/etc/apt/sources.list
中新增的docker源 -
输入以下命令新增 disco 的 docker 源
安装完成后,可以把该源删除
1
sudo add-apt-repository "deb [arch=amd64] http://mirrors.aliyun.com/docker-ce/linux/ubuntu disco stable"
-
再次安装
如果出现
configuring grub-pc
就直接回车,不进行选择(三个框留空);1 2
sudo apt-get -y update sudo apt-get -y install docker-ce
-
docker 配置(包括添加用户到 docker 组)
-
启动服务(每次开机都要执行一次)
WSL2 上没有 systemctl
1
sudo service docker start
-
初步进行测试
1
sudo docker run hello-world
-
[可选] 配置国内 docker 源(163源)
1
sudo vim /etc/docker/daemon.jsonsudo service docker restart
添加如下内容:
注意 tab 必须写正确。
1 2 3
{ "registry-mirrors": ["https://registry.docker-cn.com","http://hub-mirror.c.163.com"] }
-
[可选] 添加当前用户到 docker 用户组,这样可以不加 sudo 运行 docker
1 2 3
sudo adduser $USER docker # 刷新 docker 组 newgrp docker
测试运行结果:
如果不行就重启服务,关闭窗口再重新打开
code-server 部分
1、docker 方式
-
docker 安装 code-server
1 2 3
sudo mkdir -p /home/coder/project sudo chown -R jerry /home/coder docker run --name code-server -d --env PASSWORD="ojbk" -p 127.0.0.1:8080:8080 -v "/home/coder/project:/home/coder/project" -u "$(id -u):$(id -g)" codercom/code-server:latest
-
浏览器访问
localhost:8080
端口是设置的 8080;
密码是环境变量设的 “ojbk”;
-
设置容器自启动
依赖于 docker 服务已启动
1
docker update --restart=always code-server
2、发布版方式
-
下载
-
解压后运行
1 2
export PASSWORD="123456" ./code-server --bind-addr localhost:8080