告别 Docker Desktop:微软发布 WSL 容器公测版,Windows 原生支持 Linux 容器

原始链接在: 告别 Docker Desktop:微软发布 WSL 容器公测版,Windows 原生支持 Linux 容器 - 小众软件

微软发布 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 容器 CLI – wslc.exe

这次的 WSL 容器主要就是 wslc.exe,以前使用 docker 管理容器,现在可以直接使用 wslc。包括:

  • 拉取镜像(Pull)
  • 构建镜像(Build)
  • 创建、启动容器(Run)
  • 查看容器(List)
  • 进入容器(Exec)
  • 查看日志(Logs)
  • 停止、删除容器(Stop / Remove)
  • 调试、测试容器应用等

例子1: 启动一个 Ubuntu KDE 桌面容器

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 即可进入图形桌面

例子2:

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))"

作用是:

  • 拉取官方 PyTorch CUDA 镜像(如果本地没有)
  • 将宿主机 GPU 挂载到容器(--gpus all
  • 在容器内执行一段 Python
  • 输出:
    • CUDA 是否可用
    • GPU 名称(例如 RTX 3080)

执行完成后,容器会自动删除。这个例子主要是为了展示 GPU 直通能力

WSL 容器 API

除了 wslc.exe 外,微软还提供了 WSL 容器 API。它允许 Windows 应用直接创建、运行和管理 Linux 容器,无需调用命令行。

微软同时发布了支持 C、C++ 和 C# 的开发包,开发者可以将 Linux 容器直接集成到自己的 Windows 应用中。

例如,一款 Windows 图片处理软件需要使用已有的 Linux AI 图像处理程序。开发者可以通过 WSL 容器 API,在后台启动 Linux 容器运行这部分代码,而无需将其重新移植到 Windows。

也就是说,原本只能运行在 Linux 上的代码,现在可以直接嵌入 Windows 应用中。

此外,WSL 容器 API 还支持与 MSBuildCMake 集成,只需在项目中添加少量配置,就可以把容器的构建、部署等步骤自动纳入编译流程,无需手动操作。

升级 WLS

现在就能升级:

但是感觉有点难 😭


原文:https://www.appinn.com/windows-wsl-container-public-preview/

1 个赞

啥时候才能支持USB直通。现有方案问题多多。

windows还是用来打游戏吧

评论区说得很好:

but Docker is more than just Desktop / Engine, there’s a whole ecosystem and replicating only part of it will be of limited utility. We’ve got extensive config captured in Docker Compose files, without some kind of Compose compatibility this new tool won’t do much for us.

大伙用 Docker 是为了 Docker Compose,光 Docker 兼容(而且好像也不全兼容)没啥用啊。

才公测呀,支持 Compose 早晚的事情嘛

升级成功了,就想问一下拉的镜像存在哪里了?别把C盘撑爆了

我还没成功!不知道!