微软宣布推出 WSL Containers(WSLC)的首个公开预览版,为 WSL 带来了原生 Linux 容器支持,用户可以通过wslc命令行工具和功能齐全的 SDK(C++、C#/WinRT)直接构建、运行和管理容器。
本次预览版的主要内容包括:
- 容器生命周期:创建、运行、启动、终止、导出、清理和检查容器,支持按容器设置资源限制(
--cpus、--memory、--ulimit)、--shm-size以及可配置的停止信号。
- 镜像:构建(
--label支持)、拉取、推送、导入、保存(包括将多个镜像打包成一个 tar 文件)、检查、使用过滤器列出/清理、以及多镜像删除。
- 网络:创建和管理网络,将容器连接到多个网络,网络别名,
container:<name|id>网络模式,自定义网络类型,端口发布和网络清理。
- Volumes:创建、列出、清理和删除卷,支持 VHD 支持的卷和
Uid/Gid/Fixed驱动程序选项。
- GPU 支持:支持 CDI 的 GPU 启用容器,挂载的 GPU 可执行文件和库可供非 root 用户访问。
- 会话:命名会话,可按需创建默认会话,可配置存储位置,默认会话存储空间为 32 GB。
- SDK:WSLC API 的 C++ 和 C#/WinRT 实现,以 NuGet 包的形式提供,并附带有文档记录的插件 API。
- 工具:支持
--timestamps、--since、--until和-n选项的wslc logs;容器统计信息;带颜色的结构化 CLI 输出;MSBuild 和 CMake 构建集成;以及用于管理的组策略(ADMX)支持。
Microsoft Dev Blog 上也有一篇关于 WSL Containers 支持的文章,重点介绍了这项功能及其优势,包括云原生工作负载、更便捷的测试和部署等。该博文指出,微软正在对 WSL 进行更多改进,包括将 WSL 容器的默认文件系统切换到 VirtIOFS,从而实现高达 2 倍的性能提升。
此外,网络性能和内存回收机制也得到了改进。
