Lima, acrónimo de Linux Machines, se ha consolidado como una de las formas más sencillas de ejecutar Linux en macOS sin recurrir a una máquina virtual tradicional con escritorio completo. El proyecto crea entornos Linux ligeros, comparte archivos automáticamente y reenvía puertos, con un enfoque especialmente pensado para desarrolladores que trabajan desde terminal y necesitan contenedores, Kubernetes o una distribución Linux sin instalar una solución más pesada. El repositorio oficial supera actualmente las 21.800 estrellas en GitHub.
Las claves de Lima en 20 segundos
- Lima ejecuta máquinas virtuales Linux ligeras en macOS con intercambio de archivos y reenvío de puertos.
- Puede utilizarse con containerd, Docker, Podman, Kubernetes o como una máquina Linux convencional.
- Proyectos como Colima, Rancher Desktop y Finch utilizan Lima como parte de su arquitectura.
- Se instala fácilmente mediante Homebrew y su administración se realiza desde línea de comandos.
- El proyecto forma parte de la Cloud Native Computing Foundation como proyecto en fase de incubación.
La comparación con Windows Subsystem for Linux 2 (WSL2) ayuda a entender su propuesta, aunque técnicamente no sean productos equivalentes. Microsoft integra WSL directamente en Windows, mientras Lima utiliza virtualización para proporcionar un sistema Linux independiente. La experiencia que busca ofrecer es parecida desde el punto de vista del desarrollador: abrir un terminal, entrar en Linux y continuar trabajando sin gestionar manualmente toda la infraestructura de una máquina virtual.
Ese enfoque explica también por qué Lima no pretende sustituir directamente a Parallels Desktop o VMware Fusion en todos los escenarios. Quien necesita ejecutar un escritorio Linux completo, aplicaciones gráficas o varias máquinas virtuales administradas visualmente encontrará más funciones en esas plataformas. Lima está orientado principalmente a quienes quieren Linux como herramienta de desarrollo y no como segundo escritorio.
Un Linux ligero para trabajar directamente desde Terminal
El funcionamiento básico de Lima gira alrededor de limactl, su herramienta de administración.
En macOS puede instalarse mediante Homebrew:
brew install lima
Después basta con iniciar una instancia:
limactl start
El proyecto proporciona una configuración predeterminada que permite empezar sin escribir previamente un archivo de configuración complejo.
Para ejecutar comandos dentro del entorno Linux se puede utilizar directamente:
lima uname -a
También es posible abrir una shell:
limactl shell defaultLenguaje del código: JavaScript (javascript)
Las instancias disponibles pueden consultarse mediante:
limactl listLenguaje del código: PHP (php)
Y detenerse con:
limactl stop defaultLenguaje del código: JavaScript (javascript)
Esta sencillez es una de las diferencias frente a una máquina virtual convencional. Lima se encarga automáticamente de buena parte de la configuración que normalmente obligaría a preparar adaptadores de red, discos, carpetas compartidas o reglas de puertos.
El proyecto nació originalmente con el objetivo de acercar containerd y nerdctl a los usuarios de Mac. Con el tiempo ha ampliado considerablemente su alcance y actualmente soporta también Docker, Podman, Kubernetes y cargas Linux que no tienen relación con contenedores.
Por ejemplo, puede iniciarse una instancia preparada para Docker:
limactl start template:dockerLenguaje del código: CSS (css)
Después se configura el socket que utilizará el cliente Docker del Mac:
export DOCKER_HOST=$(limactl list docker --format 'unix://{{.Dir}}/sock/docker.sock')Lenguaje del código: JavaScript (javascript)
A partir de ahí pueden ejecutarse comandos habituales:
docker run --rm hello-world
También existe una plantilla para Kubernetes:
limactl start template:k8sLenguaje del código: CSS (css)
y el proyecto permite obtener el correspondiente kubeconfig para utilizar kubectl desde macOS.
Colima y Rancher Desktop muestran hasta dónde ha llegado Lima
Una de las mejores formas de medir la relevancia del proyecto está en las aplicaciones que lo utilizan.
Colima, una herramienta popular para ejecutar Docker y Kubernetes en macOS con pocos recursos, se apoya en Lima para crear el entorno Linux necesario.
Rancher Desktop también figura entre sus adoptantes, al igual que Finch, desarrollado alrededor de un flujo de trabajo local para contenedores, y el ecosistema de Podman Desktop dispone de integración mediante máquinas virtuales Lima.
Esto coloca al proyecto en una posición curiosa: muchos usuarios pueden estar utilizando Lima incluso sin interactuar directamente con limactl.
Su repositorio público cuenta actualmente con más de 21.800 estrellas y cerca de 950 forks, está escrito principalmente en Go y utiliza licencia Apache 2.0.
Además, Lima es actualmente un proyecto en fase de incubación dentro de la Cloud Native Computing Foundation (CNCF).
Ese respaldo no implica que la CNCF garantice cada aspecto técnico del software, pero sí refleja que Lima ha pasado de ser una herramienta creada para resolver una necesidad concreta en macOS a convertirse en una pieza utilizada dentro de diferentes plataformas cloud native.
Compartir archivos y puertos sin configurar una VM desde cero
Dos funciones ayudan especialmente a que Lima resulte cómodo para desarrollo: los montajes de archivos y el reenvío de puertos.
El directorio personal del usuario puede compartirse con la máquina Linux. Según la configuración utilizada, los montajes pueden establecerse como solo lectura o escritura.
Una configuración puede tener este aspecto:
mounts:
- location: "~"
writable: false
- location: "/Users/usuario/Projects"
writable: trueLenguaje del código: JavaScript (javascript)
Esto permite mantener el código fuente en el sistema de archivos habitual de macOS y trabajar con él desde Linux cuando sea necesario.
Los puertos también pueden reenviarse entre la máquina virtual y el host. Si una aplicación Linux escucha en un puerto determinado, Lima puede hacerla accesible desde el Mac mediante localhost.
Además se pueden definir reglas explícitas:
portForwards:
- guestPort: 80
hostPort: 8080
proto: tcp
En este ejemplo, acceder al puerto 8080 del Mac dirige las conexiones hacia el puerto 80 del sistema Linux.
Para un desarrollador web esto permite levantar una aplicación dentro de Linux y abrirla inmediatamente desde el navegador de macOS sin configurar manualmente redes puente o interfaces adicionales.
Apple Silicon, ARM y aplicaciones x86
La transición de Apple hacia procesadores ARM convirtió la arquitectura en otro aspecto importante del desarrollo local.
Lima funciona de forma nativa con Apple Silicon y puede ejecutar máquinas Linux ARM, evitando la penalización de emular una arquitectura completamente diferente cuando las imágenes o aplicaciones están disponibles para arm64.
También dispone de mecanismos para ejecutar software x86 en determinados escenarios.
La documentación del proyecto contempla el uso de Rosetta en macOS compatibles para ejecutar binarios Linux Intel dentro de máquinas ARM. Esto resulta especialmente útil cuando un contenedor o herramienta todavía no dispone de versión nativa para Apple Silicon.
No obstante, disponer de compatibilidad no significa que cualquier carga x86 vaya a comportarse igual que una aplicación ARM nativa. Para proyectos nuevos sigue siendo preferible utilizar imágenes multi-arquitectura cuando estén disponibles.
Lima también puede trabajar con diferentes motores de virtualización según el host y la configuración. Aunque históricamente estuvo estrechamente asociado a QEMU, las versiones modernas pueden aprovechar tecnologías de virtualización propias de macOS.
Lima no elimina la virtualización, la hace menos visible
Presentar Lima como «Linux sin una máquina virtual» sería incorrecto.
Debajo continúa existiendo una VM.
La diferencia está en que el usuario no necesita tratarla como una máquina virtual tradicional. No tiene que abrir una ventana, asignar manualmente dispositivos virtuales antes de cada uso o interactuar con un escritorio Linux.
Lima automatiza esa capa y la convierte prácticamente en infraestructura del terminal.
Esto lo acerca conceptualmente a herramientas como WSL2, aunque su implementación sea diferente.
Para un desarrollador que necesita comprobar un script en Linux, levantar contenedores, reproducir un entorno de servidor o mantener herramientas específicas de una distribución, esa diferencia de experiencia puede ser suficiente para evitar una instalación completa de VMware o Parallels.
También permite mantener varias instancias con configuraciones diferentes.
Un desarrollador puede utilizar una máquina para Docker, otra para Kubernetes y otra como entorno limpio para probar paquetes o automatizaciones.
Cuando una instancia deja de ser necesaria puede eliminarse:
limactl delete nombre-instanciaLenguaje del código: JavaScript (javascript)
La posibilidad de crear y destruir entornos con rapidez resulta especialmente práctica para pruebas que podrían modificar dependencias o configuración del sistema.
No pretende sustituir a Docker Desktop en todos los casos
Lima puede utilizarse para crear una alternativa a Docker Desktop, pero el proyecto base y Docker Desktop resuelven necesidades diferentes.
Docker Desktop incluye interfaz gráfica, administración integrada, extensiones y servicios diseñados para simplificar el trabajo con Docker.
Lima proporciona la infraestructura virtual sobre la que puede ejecutarse Docker, pero deja más decisiones en manos del usuario.
Precisamente por eso proyectos como Colima existen sobre Lima: añaden una experiencia más específica para Docker y Kubernetes sin obligar al usuario a gestionar todos los detalles de la VM.
Para un desarrollador cómodo con la terminal, esta separación puede ser una ventaja. Para quien busca una aplicación gráfica completamente integrada, puede resultar más práctico utilizar una solución de nivel superior.
Lima tampoco pretende competir con una infraestructura cloud de desarrollo. La máquina sigue ejecutándose físicamente en el Mac y está limitada por su CPU, memoria y almacenamiento.
Su utilidad está en conseguir que tener Linux disponible localmente deje de implicar mantener una VM pesada y visible permanentemente.
Preguntas frecuentes
¿Qué es Lima en macOS?
Lima es un proyecto de código abierto que ejecuta máquinas virtuales Linux ligeras y automatiza funciones como carpetas compartidas, red y reenvío de puertos. Está especialmente orientado a desarrolladores y cargas relacionadas con contenedores.
¿Lima es una alternativa a WSL para Mac?
Puede ofrecer una experiencia parecida desde el punto de vista del usuario, pero no es una implementación de WSL. Lima utiliza virtualización para ejecutar Linux sobre macOS y no forma parte del sistema operativo de Apple.
¿Se puede utilizar Docker con Lima?
Sí. Lima dispone de plantillas para Docker y también puede utilizar containerd, nerdctl, Podman y Kubernetes. Herramientas como Colima aprovechan Lima para proporcionar entornos Docker en macOS.
¿Lima funciona en los Mac con Apple Silicon?
Sí. El proyecto soporta Apple Silicon y sistemas Linux ARM. También contempla mecanismos como Rosetta para determinados binarios x86 cuando la configuración y la versión de macOS lo permiten.







