拒绝Docker Desktop-在win11上运行docker容器的替代方案
背景
在Windows上用docker的,应该都知道Docker Desktop这个软件,但是很多人没注意的是,Docker Desktop并不是完全免费的软件:
Docker Desktop 根据 Docker 订阅服务协议授权。当你下载并安装 Docker Desktop 时,系统要求你同意这些条款。
The Docker Subscription Service Agreement states:
Docker 订阅服务协议中规定:Docker Desktop is free for:
Docker Desktop 免费用于:
- Small businesses (fewer than 250 employees AND less than $10 million in annual revenue)
小型企业(员工少于 250 人,年收入低于 1000 万美元)- Personal use
个人使用- Education
教育背景- Non-commercial open source projects
非商业的开源项目Docker Desktop requires a paid subscription for:
Docker Desktop 需要付费订阅:
- Professional use in larger organizations
大型组织中的专业应用- Government entities
政府机构- Commercial use beyond the free tier limits
超出免费套餐限制的商业使用
所以,为了避免侵权,对于Windows用户,建议使用其他工具来使用docker。
本文列举一些替代软件或者替代方案。
一、wsl里使用ubuntu,里面再嵌套Linux版本的docker/podman
这个不用过多解释了,和Linux里安装使用docker/podman没有区别,但是-v只能挂载ubuntu内的路径,不能使用windows的路径(尽管wsl的ubuntu里能访问windows路径,但绕了几圈,性能会有下降),另外,还需要在wsl里做网络访问的相关配置(wslsettings.exe -> 网络)。
二、使用wslc
wslc(windows subsystem for linux - container) 是微软最新的wsl里集成的功能,目前未发布正式版本。
-
安装预发布版本的wsl https://github.com/microsoft/WSL/releases/download/2.9.9/wsl.2.9.9.0.x64.msi
-
创建docker.cmd脚本并添加到PATH环境变量,就可以沿用原本的docker命令了
@echo off
"C:\Program Files\WSL\wslc.exe" %*
exit /b %ERRORLEVEL%
实测基本可以替代,我最常用的也就start/stop/ps/rm/rmi/build/exec/load/pull/push/run/list/save/export/import/tag/cp,只有 cp 不直接兼容。
但其实 docker cp 对应 wslc container cp ,
于是脚本改成这样
@echo off
REM docker -> wslc shim (v3)
REM "docker cp ..." is rewritten to "wslc container cp ..."
REM All other commands are passed through to wslc.exe as-is.
REM Arguments are rebuilt one-by-one so paths with spaces work.
if /i "%~1"=="cp" goto :cp
"C:\Program Files\WSL\wslc.exe" %*
exit /b %ERRORLEVEL%
:cp
shift
set "WSLC_ARGS="
:cp_loop
if "%~1"=="" goto :cp_run
set "WSLC_ARGS=%WSLC_ARGS% "%~1""
shift
goto :cp_loop
:cp_run
"C:\Program Files\WSL\wslc.exe" container cp %WSLC_ARGS%
exit /b %ERRORLEVEL%
然后compose还没有官方的解决方案,目前社区有个非官方的wslc-compose项目 ,是用python做的 ,原理上就是解析yaml文件再去执行wslc命令
https://bacarndiaye.github.io/wslc-compose
另外,可以读一下这个网站 https://wslcontainers.com ,了解docker和wslc命令的差异和映射关系。
一个比较严重的问题,wslc不支持 --privileged=true,不支持--cap-add ,这会对导致需要高级权限的容器出现异常或者无法启动,因此wslc只适用于单用户的简单容器,比如运行一个java应用、一个mysql数据库。
至于k8s,就更没有了。
wslc目前还很不成熟,需等待微软后续的演进。(考虑到微软以前胎死腹中的wsla,本人建议对wslc保持观望,浅尝即可)
三、Container Desktop
一款完全开源免费的产品,轻量化。
四、Podman Desktop
一款完全开源免费的产品,功能齐全,k8s和compose也都支持。
五、Rancher Desktop
一款完全开源免费的产品,功能齐全,k8s和compose也都支持。
总结
方案一和二都是需要折腾的;方案三我没实测,官方文档里的内容太少了,而且在github上的动静远低于另两款desktop,commit数差了3个数量级(2026-09-17 Container Desktop 68 ;Podman Desktop 11407 ;Rancher Desktop 17550 );至于方案四和五,看我写的篇幅就知道,安装后直接用就是。
所以我推荐用后两款产品来替代收费的Docker Desktop。
当然如果你是纯个人用户,没有公司,不想过多折腾,Docker Desktop也是能用的,Docker Desktop里最新集成的AI功能也是相当不错的。

