在云计算与容器技术主导的开发时代,开发者常常面临跨平台环境一致性、本地开发与生产环境兼容的难题。无论是 macOS 用户需要 Linux 环境运行容器工具,还是 Linux 用户寻求轻量高效的虚拟机方案,传统工具要么配置复杂,要么兼容性受限。而 WSL2 虽在 Windows 平台表现出色,却无法覆盖 macOS、NetBSD 等其他系统,跨平台开发的痛点始终存在。此时,一款名为 Lima 的开源项目应运而生,它以简洁的设计、强大的兼容性和灵活的扩展性,为跨平台 Linux 虚拟机需求提供了全新解决方案。
Lima 的出现不仅填补了多系统 Linux 虚拟机工具的空白,更重新定义了轻量虚拟机的使用体验。作为 CNCF 沙箱项目,它继承了云原生社区的开放与协作精神,将自动文件共享、端口转发等核心功能无缝集成,让开发者无需复杂配置即可快速搭建可用的 Linux 环境。无论是容器化应用开发、多系统兼容性测试,还是轻量级服务部署,Lima 都能以高效、稳定的表现满足需求,成为连接不同操作系统与 Linux 生态的重要桥梁,为开发者节省大量环境配置时间,专注于核心业务开发。
◆ 简介
Lima(Linux Machines)是一款开源的跨平台 Linux 虚拟机工具,项目托管于 GitHub(https://github.com/lima-vm/lima),最初由 AkihiroSuda 发起,目前已发展为 CNCF(Cloud Native Computing Foundation)沙箱项目,遵循 Apache-2.0 开源协议。
Lima 项目的目的,是提供简单易用的跨平台 Linux 虚拟机,其设计理念源于对开发者需求的深刻理解 —— 无需复杂配置,即可快速获得具备文件共享、端口转发能力的 Linux 环境,功能上与 WSL2 类似,但具备更广泛的跨平台支持。最初,Lima 的开发目标是向 Mac 用户推广 containerd 及 nerdctl(容器管理工具),解决 MacOS 与 Linux 容器生态的兼容问题。随着项目发展,其适用场景不断扩展,不仅支持 containerd,还兼容 Docker、Podman、Kubernetes 等主流容器引擎,同时突破了操作系统限制,可运行于 macOS、Linux、NetBSD、DragonFlyBSD 等多个平台,并对 Windows 系统提供了实验性支持,成为真正意义上的跨平台解决方案。
在实际应用中,Lima 已被众多知名项目和工具采纳,成为容器生态的重要组成部分。在容器环境领域,Rancher Desktop(桌面端 Kubernetes 和容器管理工具)、Colima(MacOS 上极简配置的 Docker/Kubernetes 工具)、Finch(本地容器开发命令行客户端)等均集成了 Lima,借助其虚拟机能力实现跨平台兼容;Podman Desktop GUI 更是为 Lima 提供了专属插件,方便用户通过图形界面管理虚拟机。在 GUI 工具方面,Lima xbar plugin 允许用户从菜单栏直接启动 / 停止虚拟机并查看运行状态,lima-gui 则提供了 Qt-based 的图形界面,进一步降低了使用门槛。此外,对于个人开发者和企业团队而言,Lima 可广泛应用于本地开发环境搭建、多版本软件测试、轻量级服务部署等场景,无论是前端开发者需要 Linux 环境运行后端服务,还是运维人员测试跨系统兼容性,Lima 都能提供高效、稳定的支持。
◆ 使用
Lima 提供多种安装方式,包括包管理器安装、二进制文件安装和源码编译安装,用户可根据自身系统和需求选择最便捷的方式。
包管理器安装是最简便的方式,支持 macOS 和 Linux 系统,无需手动处理依赖和路径配置。
- Homebrew(支持 macOS、Linux):brew install lima
- MacPorts(macOS 专属):sudo port install lima
- Nix(NixOS/nix-env):nix-env -i limaNix
若系统不支持上述包管理器,可直接下载预编译的二进制文件安装,步骤如下:
- 获取最新版本号:VERSION=$(curl -fsSL https://api.github.com/repos/lima-vm/lima/releases/latest | jq -r .tag_name)
- 下载并解压核心二进制文件(适用于 Lima v1.0 及以上):curl -fsSL "https://github.com/lima-vm/lima/releases/download/${VERSION}/lima-${VERSION:1}-$(uname -s)-$(uname -m).tar.gz" | tar Cxzvm /usr/local
- 下载并解压额外的 guest agents(Lima v1.1 及以上必需):curl -fsSL "https://github.com/lima-vm/lima/releases/download/${VERSION}/lima-additional-guestagents-${VERSION:1}-$(uname -s)-$(uname -m).tar.gz" | tar Cxzvm /usr/local
- 解压完成后,Lima 的可执行文件(limactl、lima)将被安装到/usr/local/bin目录,可直接在终端中调用。
对于需要自定义功能或体验最新代码的用户,可通过源码编译安装,步骤如下:
- 克隆源码仓库:git clone https://github.com/lima-vm/lima.git
- 编译安装(需提前安装 Go 1.20 及以上版本):make install
- 编译完成后,可执行文件将被安装到$GOPATH/bin或/usr/local/bin目录,需确保该目录已添加到系统环境变量PATH中。
安装完成后,可在终端执行limactl --version命令验证安装是否成功。若输出版本信息(如limactl version 2.0.0),则说明安装成功。
【创建并启动 Linux 实例】
Lima 的核心操作围绕 “实例(INSTANCE)” 展开,每个实例对应一个独立的 Linux 虚拟机环境。首次使用时,可通过简单命令创建并启动默认实例(实例名为 “default”):
limactl start
执行命令后,终端将弹出交互式配置界面:
? Creating an instance "default" [Use arrows tomove, typeto filter]> Proceed with the current configurationOpen an editor to review ormodify the current configurationChoose another template (docker, podman, archlinux, fedora, ...)Exit
- 选择 “Proceed with the current configuration”:使用默认配置创建实例,无需手动修改,适合快速上手。
- 选择 “Open an editor to review or modify the current configuration”:可自定义实例配置(如 CPU 核心数、内存大小、文件共享目录等)。
- 选择 “Choose another template”:可从预设模板中选择(如 docker、podman、archlinux、fedora 等),模板对应不同的 Linux 发行版和预安装软件。
选择默认配置后,终端将显示实例创建进度,等待几分钟后,若输出 “INFO [0029] READY. Run lima to open the shell.”,则说明实例启动成功。
【从模板创建实例】
# 创建实例(指定名称为 “docker-instance”,使用 docker 模板):limactl create--name=docker-instance template://docker# 启动实例:limactl start docker-instance# 配置 Docker 客户端连接(在宿主机器执行):export DOCKER_HOST=$(limactl list docker-instance--format 'unix://{{.Dir}}/sock/docker.sock')# 测试 Docker 功能:docker run --rm hello-world
# 创建并启动实例(名称为 “k8s-instance”):limactl start--name=k8s-instance template://k8s# 配置 kubectl 连接:export KUBECONFIG=$(limactl list k8s-instance--format 'unix://{{.Dir}}/copied-from-guest/kubeconfig.yaml')# 测试 Kubernetes 功能:kubectl get nodes
【执行 Linux 命令与管理实例】
实例启动后,可通过lima或limactl shell命令在虚拟机中执行 Linux 命令,也可通过limactl命令管理实例(如停止、重启、删除等)。
对于默认实例(名称为 “default”),可直接使用lima <COMMAND>格式执行命令:
# 查看系统信息:limauname -a# 安装软件(如 neofetch):limasudo apt-get install -y neofetch# 运行 neofetchlimaneofetch
对于非默认实例,需指定实例名称,格式为limactl shell <INSTANCE_NAME> <COMMAND>。
对于实例的常用管理命令包括:
- 停止实例:limactl stop <INSTANCE_NAME>
- 重启实例:limactl restart <INSTANCE_NAME>
- 删除实例(需先停止实例):limactl delete <INSTANCE_NAME>
- 进入实例 shell 环境:limactl shell <INSTANCE_NAME>(或lima,默认实例)
◆ 总结
Lima 作为一款跨平台开源 Linux 虚拟机工具,以其简洁的设计、强大的兼容性和丰富的功能,成为开发者解决跨平台环境问题的理想选择。其核心优势在于 “零复杂配置” 与 “全场景适配”—— 无需手动配置文件共享、端口转发,即可快速获得与宿主系统无缝协作的 Linux 环境;同时支持 macOS、Linux、NetBSD 等多系统,兼容 Docker、Kubernetes、Podman 等主流容器引擎,覆盖从本地开发、软件测试到轻量级部署的全场景需求。无论是 Mac 用户需要 Linux 容器环境,还是 Linux 用户寻求轻量虚拟机方案,Lima 都能以高效、稳定的表现满足需求,其自动化配置、模板化实例创建等特性,进一步降低了使用门槛,让开发者无需关注环境细节,专注于核心业务开发。
从生态价值来看,Lima 作为 CNCF 沙箱项目,不仅受益于云原生社区的技术积累,更成为容器生态的重要组成部分,被 Rancher Desktop、Colima、Finch 等知名工具集成,推动了跨平台容器技术的普及。对于个人开发者而言,Lima 是提升开发效率的便利工具;对于企业团队而言,它是降低跨平台协作成本、保障环境一致性的可靠方案。Lima 有望成为连接不同操作系统与 Linux 生态的核心桥梁,为云原生开发带来更便捷、更高效的体验。
来源:
https://www.toutiao.com/article/7590758647207035407/?log_from=cbf45c2acc90b_1767661568438
“开源大咖说”欢迎广大技术人员投稿,投稿邮箱:aliang@itdks.com
开源大咖说 | 关于版权
由“开源大咖说(ID:kaiyuandakashuo)”原创的文章,转载时请注明作者、出处及微信公众号。投稿、约稿、转载请加微信:ITDKS10(备注:投稿),茉莉小姐姐会及时与您联系!
感谢您对开源大咖说的热心支持!