Skip to content

lima:在 macOS 上运行 Linux 虚拟机和容器的轻量级解决方案

https://github.com/lima-vm/lima

概述

Lima 是一款专为 macOS 设计的轻量级 Linux 虚拟机管理工具,支持文件共享和端口转发,旨在为用户提供了一个类似 Windows WSL2 的体验。它不仅支持多种 Linux 发行版,还支持 Docker、Kubernetes 等容器技术,是开发者的理想选择。

核心特性

支持多种 Linux 发行版

Lima 支持多种流行的 Linux 发行版,包括但不限于:

  • AlmaLinux 8、9
  • Alpine Linux
  • Arch Linux
  • CentOS Stream 8、9
  • Debian GNU/Linux 11、12
  • Fedora
  • openSUSE Leap
  • Oracle Linux 8、9
  • Rocky Linux 8、9
  • Ubuntu

容器技术集成

Lima 无缝集成了多种容器技术,包括:

  • Docker:支持通过 Docker 容器进行开发和部署。
  • containerd:支持使用 containerd 作为容器运行时。
  • Podman:支持无 root 和 rootful 模式的 Podman 容器。
  • Kubernetes:支持通过 k3s 和 kubeadm 部署 Kubernetes 集群。

开发友好

  • 自动文件共享:在 macOS 和虚拟机之间自动同步文件,无需额外配置。
  • 端口转发:支持自动端口转发,方便调试和访问服务。
  • 命令行工具:提供 limactl 命令行工具,用于管理虚拟机和容器。

安装与使用

安装

在 macOS 上通过 Homebrew 安装 Lima:

brew install lima

创建虚拟机实例

启动默认的虚拟机实例:

limactl start

查看虚拟机状态:

limactl list

使用 Docker

  1. 启动 Docker 虚拟机实例
limactl start template://docker
  1. 设置 Docker 环境变量
export DOCKER_HOST=$(limactl list docker --format 'unix://{{.Dir}}/sock/docker.sock')
  1. 运行 Docker 容器
docker run --rm hello-world

使用 Kubernetes

  1. 启动 Kubernetes 虚拟机实例
limactl start template://k8s
  1. 设置 Kubernetes 配置
export KUBECONFIG=$(limactl list k8s --format 'unix://{{.Dir}}/copied-from-guest/kubeconfig.yaml')
  1. 管理 Kubernetes 集群
kubectl apply -f your-manifest.yaml

优势与应用场景

优势

  • 性能卓越:优化的网络和磁盘 I/O,提供接近原生的性能体验。
  • 轻量级:资源占用低,适合在资源受限的环境中使用。
  • 功能全面:支持多种 Linux 发行版和容器技术,满足多样化的开发需求。
  • 易于使用:简洁的命令行工具和自动化配置,降低使用门槛。

应用场景

  • 开发环境:快速搭建和切换不同的开发环境。
  • 容器编排:管理复杂的容器化应用,支持 Kubernetes 集群。
  • 混合工作负载:同时运行容器和虚拟机,灵活应对不同的工作需求。
  • 测试环境:运行多个隔离的测试环境,确保测试的准确性。

注意事项

  • 端口暴露:默认情况下,虚拟机中的端口只能在主机上访问。如需在局域网中暴露端口,需修改配置文件以允许外部访问。
  • 自定义 CPU 类型:在某些情况下,可能需要自定义虚拟机的 CPU 类型以解决兼容性问题。

通过以上内容,您可以全面了解 Lima 的特点、安装和使用方法,以及其在不同场景下的应用优势。

Ref

https://zhuanlan.zhihu.com/p/407119179 https://blog.csdn.net/ll837448792/article/details/126496906 https://www.cnblogs.com/codedingzhen/p/18378779 https://www.cnblogs.com/zafu/p/18845519 https://www.appinn.com/lima-vm/