微软发布 WSL Container 公测版,将 Linux 容器集成到 WSL 中。这意味着今后无需安装 Docker Desktop,就能直接在 Windows 上运行 Docker 镜像。@Appinn

对于在 Windows 上运行 Docker 镜像,对比如下:
| 以前 | 现在(WSL Container) |
|---|---|
| 安装 WSL | 安装 WSL |
| 安装 Docker Desktop | 更新到 WSL 预览版 |
| 启动 Docker Desktop 后台服务 | 无需 Docker Desktop |
docker run -d -p 80:80 nginx | wslc run -d -p 80:80 nginx |
最大区别是不再需要安装 Docker Desktop,WSL 自带了 Linux 容器功能,只需要先升级 WSL:
wsl --update --pre-release
然后把老命令:
docker run -d -p 80:80 nginx
替换为:
wslc run -d -p 80:80 nginx
就可以了。

这次的 WSL 容器主要就是 wslc.exe,以前使用 docker 管理容器,现在可以直接使用 wslc。包括:
wslc run -d \ --name=webtop \ -e PUID=1000 \ -e PGID=1000 \ -e TZ=Etc/UTC \ -p 3000:3000 \ -p 3001:3001 \ lscr.io/linuxserver/webtop:ubuntu-kde
Docker 用户对于里面的 linuxserver 很熟悉吧,非常知名的 Docker 镜像作者。这行命令的意思是:
从 lscr.io 拉取 linuxserver/webtop:ubuntu-kde 镜像,创建并后台运行一个容器,将宿主机 3000、3001 端口映射到容器,启动一个完整的 Ubuntu KDE 桌面,最终浏览器访问 http://localhost:3000 即可进入图形桌面
wslc run --rm --gpus all \ pytorch/pytorch:2.5.1-cuda12.4-cudnn9-runtime \ python -c "import torch; print(torch.cuda.is_available()); print(torch.cuda.get_device_name(0))"
作用是:
--gpus all)执行完成后,容器会自动删除。这个例子主要是为了展示 GPU 直通能力。

除了 wslc.exe 外,微软还提供了 WSL 容器 API。它允许 Windows 应用直接创建、运行和管理 Linux 容器,无需调用命令行。
微软同时发布了支持 C、C++ 和 C# 的开发包,开发者可以将 Linux 容器直接集成到自己的 Windows 应用中。
例如,一款 Windows 图片处理软件需要使用已有的 Linux AI 图像处理程序。开发者可以通过 WSL 容器 API,在后台启动 Linux 容器运行这部分代码,而无需将其重新移植到 Windows。
也就是说,原本只能运行在 Linux 上的代码,现在可以直接嵌入 Windows 应用中。
此外,WSL 容器 API 还支持与 MSBuild 和 CMake 集成,只需在项目中添加少量配置,就可以把容器的构建、部署等步骤自动纳入编译流程,无需手动操作。
现在就能升级:

但是感觉有点难 😭
原文:https://www.appinn.com/windows-wsl-container-public-preview/