系统:windows11
使用管理员打开cmd窗口,使用PowerShell
wsl
WSL 全称为 Windows Subsystem for Linux,即 Windows 上的 Linux 子系统。它是微软提供的一项功能,允许用户在 Windows 10 和 Windows 11 上直接运行 Linux 二进制可执行文件,而无需修改这些文件或使用虚拟机。WSL 提供了一个与 Linux 一致的开发和运行环境,使得在 Windows 上运行 Linux 程序更加简单和高效。
WSL 的主要特点
无缝整合:你可以在 Windows 上直接使用 Linux 命令行工具、GNU/Linux 应用程序和 Bash 脚本,无需离开 Windows 环境。
与 Windows 的互操作性:WSL 允许你访问 Linux 和 Windows 的文件系统,无需重启系统即可在两个操作系统之间共享资源。
轻量级:WSL 并不是真正的虚拟机,它更像是一个兼容层,因此占用的资源比虚拟机少得多,同时启动速度也更快。
支持多种发行版:你可以从 Microsoft Store 安装多种 Linux 发行版,包括 Ubuntu、Debian、Fedora 等。
支持 GUI 应用程序:WSL 2 引入了一些新特性,如 GPU 加速和对 Linux GUI 应用的支持,使得在 Windows 上运行 Linux 图形应用成为可能。
WSL 版本
WSL 1:初始版本,直接翻译 Linux 系统调用为 Windows 系统调用,但某些系统调用和功能不支持或效率较低。
WSL 2:引入了完整的 Linux 内核,以轻量级虚拟机的形式运行,但仍保持高效的文件系统性能和与 Windows 的深度集成。
使用 WSL 的场景
开发环境:方便开发者在 Windows 环境中使用 Linux 工具链,适用于 Web 开发、数据科学和 DevOps。
学习和实验:可以用于学习和测试 Linux 系统及其应用程序,而不需要在机器上安装双系统或虚拟机。
如何开始使用 WSL
安装 WSL:在 Windows 10(更新后版本)或者 Windows 11 中启用 WSL 功能,通常可以通过 PowerShell 执行命令
wsl --install
来完成。选择和安装 Linux 发行版:从 Microsoft Store 下载和安装你所需的 Linux 发行版。
启动并配置:通过 Windows Terminal 或者其他终端工具打开你安装的 Linux 系统,开始设置和使用。
WSL 是一个强大而实用的工具,为开发者和爱好者增强了 Windows 平台的功能性和灵活性。
首先下载:
wsl --install
以管理员权限打开命令提示符(cmd)或 PowerShell,运行以下命令以确保启用必要的组件:
dism.exe /online /enable-feature /featurename:Microsoft-Windows-Subsystem-Linux /all /norestart
dism.exe /online /enable-feature /featurename:VirtualMachinePlatform /all /norestart
接着设置为WSL2
wsl --set -default -version 2
选择任意子系统安装
wsl.exe --install Ubuntu-18.04
此次有报错,询问AI后需要更新
旧版 WSL 的手动安装步骤 | Microsoft Learn
下载wsl_update_x64.msi,安装
重新下载子系统,成功
设置名字密码后直接使用命令【wsl】即可进入(因为只下载了一个子系统)
按AI提示输入命令尝试,可以使用
sudo apt update
sudo apt install build-essential git
官方文档:安装 WSL | Microsoft Learn
安装Docker Desktop
Docker Desktop: The #1 Containerization Tool for Developers | Docker
但是还不能使用,需要打开功能Hyper-V
安装Hyper-V包
但是现在windows中未安装
找到一个帖子,提供安装代码代码(代码放入txt,尾缀改为.bat,运行),需要根据自己路径修改,直接运行报错
Windows安装Docker Desktop,详细步骤 | 极客之音
看起来是在文件夹里找到特定的包,然后安装
pushd "%~dp0"
dir /b %SystemRoot%servicingPackages*Hyper-V*.mum >hyper-v.txt
for /f %%i in ('findstr /i . hyper-v.txt 2^>nul') do dism /online /norestart /add-package:"%SystemRoot%servicingPackages%%i"
del hyper-v.txt
Dism /online /enable-feature /featurename:Microsoft-Hyper-V -All /LimitAccess /ALL
pause
使用AI对代码进行修改
@echo off
pushd "%~dp0"
REM 输出相关更新包文件到 hyper-v.txt
dir /b %SystemRoot%\servicing\Packages\*Hyper-V*.mum > hyper-v.txt
REM 确保 hyper-v.txt 文件正确生成并且不为空
if exist hyper-v.txt (for /f %%i in (hyper-v.txt) do (echo Adding package: "%%i"dism /online /norestart /add-package:"%SystemRoot%\servicing\Packages\%%i")
) else (echo 文件 hyper-v.txt 未找到或为空。
)
REM 删除生成的 hyper-v.txt 文件
del hyper-v.txt
REM 启用 Hyper-V 功能
Dism /online /enable-feature /featurename:Microsoft-Hyper-V-All /LimitAccess
REM 暂停以查看结果
pause
运行成功
出现功能
配置Docker Engine
{"builder": {"gc": {"defaultKeepStorage": "20GB","enabled": true}},"experimental": false,"features": {"buildkit": true},"registry-mirrors": ["https://mirror.aliyuncs.com","https://docker.m.daocloud.io","https://docker.nju.edu.cn","https://docker.mirrors.sjtug.sjtu.edu.cn","https://docker.mirrors.ustc.edu.cn","https://mirror.iscas.ac.cn","https://dockerproxy.com"]
}
运行命令,查看安装子系统
docker --version
wsl --list --verbose
随便下载一个库
docker pull yandex/clickhouse-server
AI的解释:
在这段输出中,你首先执行了两个 Docker 命令:docker ps
和 docker images
,下面我逐一解释它们的结果。
1.
docker ps
命令:
docker ps
输出:
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
解释:
2. docker images
命令:
docker images
输出:
REPOSITORY TAG IMAGE ID CREATED SIZE yandex/clickhouse-server latest c739327b5607 2 years ago 826MB
解释:
docker images
是用于查看已经下载到本地的 Docker 镜像的命令。该命令列出了镜像的仓库(
REPOSITORY
)、标签(TAG
)、镜像 ID(IMAGE ID
)、创建时间(CREATED
)和大小(SIZE
)。从输出中可以看到,你已经下载了
yandex/clickhouse-server
镜像,标签为latest
,镜像 ID 为c739327b5607
,该镜像是在两年前创建的,大小约为 826MB。
3. 下一步
虽然镜像已经下载成功,但你尚未启动任何容器。要运行该镜像,可以使用以下命令:
docker run -d --name clickhouse-server -p 8123:8123 yandex/clickhouse-server:latest
这样你就可以启动一个名为 clickhouse-server
的容器,并通过映射端口 8123 来访问 ClickHouse 服务。