目 录CONTENT

文章目录

拒绝Docker Desktop-在win11上运行docker容器的替代方案

DarkAthena
2026-09-17 / 0 评论 / 0 点赞 / 0 阅读 / 0 字

拒绝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里集成的功能,目前未发布正式版本。

  1. 安装预发布版本的wsl https://github.com/microsoft/WSL/releases/download/2.9.9/wsl.2.9.9.0.x64.msi

  2. 创建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

https://container-desktop.io/

一款完全开源免费的产品,轻量化。

四、Podman Desktop

https://podman-desktop.io/

一款完全开源免费的产品,功能齐全,k8s和compose也都支持。

五、Rancher Desktop

https://rancherdesktop.io/

一款完全开源免费的产品,功能齐全,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功能也是相当不错的。

0
  1. 支付宝打赏

    qrcode alipay
  2. 微信打赏

    qrcode weixin
博主关闭了所有页面的评论