告别 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/

2 个赞

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

1 个赞

windows还是用来打游戏吧

1 个赞

评论区说得很好:

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 兼容(而且好像也不全兼容)没啥用啊。

1 个赞

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

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

我还没成功!不知道!


试了一下,能用,但居然怎么用还真没想法

终于不用在 Windows 上安装 Docker Desktop 了,那个软件要占用我 35 GB 的磁盘空间。

1 个赞

完全可以wsl装个debian,然后再debian里装docker,甚至还能有个debian用

非常赞同,期待早日成熟。

这玩意儿对Windows版本有要求吗

这东西性能会有提升吗?docker 在 windows 上的性能损失还是有点的,特别是跑高频轻量gpu任务

好消息呀, Docker Desktop有商业使用授权, 公司环境不能用..

等wslc成熟后, 这下就方便多了

1 个赞

这个和直接在wsl ubuntu中安装docker有什么区别

wslc 是直接内置了一个 Docker 容器运行时环境

就是说只是操作方便了点,其实性能也是一样的?

我怎么感觉利好 Docker Desktop?

按照微软的尿性,肯定有很多坑。Docker Desktop 作为中间层也许还不错?

主要是 Docker Desktop 太重了,占用空间大,整个引擎启停还耗时间

@Qingwa,来修一下显示问题吧,代码段溢出会截断,且无滚动条。