WSL安装与使用(Ubuntu22.04)

概要

本文主要记录Windows WSL的安装和使用过程,内容包括WSL安装过程、WSL安装Ubuntu、Ubuntu更换镜像源,Ubuntu安装Dcoker并配置等步骤。

WSL介绍

Windows Subsystem for Linux(简称WSL)是一个在Windows 10\11上能够运行原生Linux二进制可执行文件(ELF格式)的兼容层。它是由微软与Canonical公司合作开发,其目标是使纯正的Ubuntu、Debian等映像能下载和解压到用户的本地计算机,并且映像内的工具和实用工具能在此子系统上原生运行。 [1-3]
如果使用Windows 10 2004以上,可以通过WSL 2来窗口化运行桌面应用,也不需要另外安装其他的X 服务器。
参考链接

WSL安装

安装环境

操作系统: Microsoft Windows 11 家庭中文版
版本号: 10.0.22621
虚拟化: 已开启

安装方式一:命令行安装(不推荐,可能出现奇怪的问题)

在cmd中输入: wsl --install

安装方式二:通过控制面板安装

windows+S,搜索控制面板,打开控制面板:控制面板->程序->启用或关闭Windows功能->适用于Linux的Windows子系统,进行勾选后,重启主机,WSL就安装好了。

WSL 安装Ubuntu22.04(通过Microsoft Store)

打开Microsoft Store搜索WSL,即可看到支持的操作系统,选择Ubuntu 22.04安装即可
在这里插入图片描述

Ubuntu更换镜像源

进入Ubuntu

打开win11最新的终端,选择Ubuntu 22.04,即可进入Ubuntu子系统。
在这里插入图片描述

更换镜像源

# 切换至root用户后,执行下述指令
# 备份旧的镜像源文件
$ mv /etc/apt/sources.list /etc/apt/sources.list.bk
# 更换为阿里源
$ vi /etc/apt/sources.list
deb http://mirrors.aliyun.com/ubuntu/ jammy main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ jammy main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ jammy-security main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ jammy-security main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ jammy-updates main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ jammy-updates main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ jammy-proposed main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ jammy-proposed main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ jammy-backports main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ jammy-backports main restricted universe multiverse
# 更新软件
$ apt-get update 

Ubuntu安装Docker

# snap安装docker
$ snap install docker
# 修改docker配置文件
# 如果是自行搭建的镜像仓库,使用`insecure-registries`避免出现报错Error response from daemon: Get "https://ip:port/v2/": http: server gave HTTP response to HTTPS client
$ vi /var/snap/docker/current/config/daemon.json
{
    "log-level":        "error",
    "registry-mirrors": [
        "https://artifact.srdcloud.cn",
        "https://hub-mirror.c.163.com"
    ],
    "insecure-registries": ["IP:PORT"],
    "experimental": true
}
# 修改完配置要先停止docker,再重新启动,否则配置不生效
$ snap stop docker
$ snap start docker
# 查看docker配置
$ docker info

WSL映射端口到宿主机

场景

假设此时WSL内部署了个应用,对外访问端口为8080,需要开放给其他用户访问。

解决方法

将WSL内的应用端口映射到宿主机即可。

步骤1:配置端口映射

使用Windows的netsh命令实现端口映射配置,指令如下:
1、打开Windows终端,以管理员身份运行
2、添加端口映射规则

netsh interface portproxy add v4tov4 listenport=18080 listenaddress=0.0.0.0 connectport=8080 connectaddress=XX.XX.XX.XX

listenport为需要在局域网中监听的端口,即宿主机对外开放的端口
connectport为WSL内应用的端口
connectaddress为WSL的IP
listenaddress为宿主机的地址,设为0.0.0.0即可。

步骤2:关闭windows防火墙或将端口对外开放
验证
# xxx.xxx.xxx.xxx为宿主机ip
# 该接口访问后,如畅通会返回一个true
$ curl xxx.xxx.xxx.xxx:18080/api/v1/health;
true

问题处理

使用WSL发现其无法ping通宿主机,也无法连接外网

第一次安装的时候,通过Microsoft Store安装WSL,结果Ubuntu无法ping通宿主机,也无法连接外网,网上的办法都试了也不行。解决方法就是通过控制面板卸载WSL后重装

WSL迁移到其他磁盘

问题描述

WSL的子系统默认会安装在C盘,随着使用,C盘会占用越来越多,导致WSL系统异常

解决办法

将WSL子系统迁移到其他磁盘,具体流程如下:

  1. 查看WSL状态:wsl -l -v 确保子系统处于Stopped状态才能进行迁移
  2. 导出子系统镜像: wsl --export linux_name E:\ubuntu.tar
  3. 注销Linux子系统:wsl --unregister linux_name
  4. 导入系统:wsl --import <子系统名称> <要迁移的磁盘路径> E:\ubuntu.tar --version 2
  5. 修改默认用户: ubuntu22.04.exe config --default-user root
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值