6 puntos por xguru 5 시간 전 | 3 comentarios | Compartir por WhatsApp
  • Herramienta para crear y ejecutar contenedores Linux en Mac como máquinas virtuales ligeras
  • La nueva Container Machine, añadida en WWDC26, permite ejecutar un entorno Linux rápido, ligero y persistente con el directorio home y los repositorios montados automáticamente
  • A diferencia de los contenedores tradicionales orientados a aplicaciones, modela el entorno Linux completo (similar a WSL2)
  • Puede ejecutar el sistema init de la imagen para registrar servicios de larga duración o probar aplicaciones bajo un administrador de procesos
  • En imágenes con systemd instalado, se pueden ejecutar servicios Linux reales como systemctl start postgresql
  • Mapea automáticamente el nombre de usuario y el directorio home, para compartir repositorios y dotfiles entre macOS y Linux
  • Los repositorios se ubican en el $HOME de macOS y se montan internamente en /Users/<username>, lo que permite editar con editores o IDE de macOS mientras se compila y ejecuta dentro del entorno
  • Herramientas nativas de macOS como profilers, navegadores y depuradores GUI reconocen los mismos archivos, por lo que no hace falta copiar entre la etapa de build y la de inspección
  • Se puede crear una Container Machine por cada distribución objetivo, como alpine, ubuntu o debian, todas compartiendo el mismo $HOME y dotfiles para probar rápidamente en varias distribuciones
    • Cualquier imagen Linux que incluya /sbin/init puede usarse directamente como imagen de Container Machine
  • Como consume y genera imágenes de contenedor compatibles con OCI, también puede hacer pull y push de imágenes Docker desde registros de contenedores estándar
    • Esas imágenes también pueden ejecutarse en otras aplicaciones compatibles con OCI
    • La gestión de bajo nivel de contenedores, imágenes y procesos depende del paquete Swift Containerization
  • Requiere una Mac con Apple silicon para ejecutarse y es compatible con macOS 26
    • Aprovecha nuevas funciones y mejoras de virtualización y networking de macOS 26; no es compatible con versiones anteriores de macOS
  • Licencia Apache-2.0

Comandos de ejemplo

container machine create alpine:latest --name dev  
container machine run -n dev whoami       # your host username, not root  
container machine run -n dev pwd          # /home/<you> — your Mac home dir, mounted in  
container machine run -n dev              # interactive shell; cd into your repos in $HOME  
  
container machine ls                  # list all container machines  
container machine inspect dev         # JSON detail for one  
container machine stop dev            # stop the container machine  
container machine rm dev              # delete, including its persistent storage  
  
container machine set -n dev cpus=4 memory=8G  
container machine stop dev  
container machine run -n dev -- nproc  

Video de presentación en WWDC26 - Explorando Container Machine

  • Containerization es un framework Swift de código abierto presentado en WWDC 25 como base para ejecutar contenedores Linux en macOS
  • Está diseñado para ofrecer aislamiento basado en máquinas virtuales para cada contenedor, usando máquinas virtuales ligeras para dar buen rendimiento y tiempos de arranque de menos de 1 segundo
  • Container Machine es una nueva función construida sobre Containerization que combina la usabilidad y velocidad de los contenedores con la persistencia de las máquinas virtuales, y gracias a su integración hace que el entorno Linux se sienta como una extensión de macOS
  • Principios de diseño

    • Container Machine debe ser rápida y ligera para integrarse a los flujos de trabajo existentes
    • Debe permitir cambiar fácilmente entre macOS y Linux
    • Los usuarios deben poder crear y personalizar rápidamente nuevos entornos, para que varios proyectos tengan entornos dedicados sin preocuparse por conflictos de dependencias o toolchains
    • Como las herramientas y dependencias necesarias pueden cambiar durante el ciclo de vida de desarrollo, debe ser posible agregarlas en un entorno persistente y reutilizarlas con el tiempo
    • Al desarrollar para múltiples plataformas, no debería requerir grandes cambios de contexto ni aprender herramientas nuevas

3 comentarios

 
recast7838 14 분 전

¿Dará un rendimiento suficiente?

 
click 3 시간 전

Por más que lo veo, parece la versión de WSL2 para Mac; me pregunto si al mapear volúmenes del host no se caerá bastante el rendimiento de I/O.
Incluso ahora uso limactl para correr contenedores sobre una VM, y siento que no es tan diferente.

 
GN⁺ 3 시간 전
Comentarios en Hacker News
  • Para aclarar algunas cosas, esto no se refiere solo a contenedores OCI
    Container Machines admite persistencia y montajes de sistema de archivos, así que se convierte en un excelente entorno Linux ligero para desarrolladores que usan macOS
    Más detalles aquí: https://developer.apple.com/videos/play/wwdc2026/389

    • Ah, entonces es un subsistema Darwin/BSD para Linux
  • OrbStack me funciona muy bien
    Me pregunto cómo se comparará esto en rendimiento

    • Soy el desarrollador de OrbStack
      En lugar de Virtualization.framework, usamos directamente una pila de virtualización basada en Rust con dispositivos y protocolos personalizados para funciones como compartir el sistema de archivos
      Es una pila integrada verticalmente y altamente optimizada, especializada en ejecutar máquinas Linux y contenedores
      La mayor ganancia en rendimiento/recursos es la memoria dinámica, que devuelve a macOS la memoria no utilizada y reduce mucho el uso de memoria
      Otras opciones, incluida Containerization, no admiten esto
      Después de probar Container Machines, me parece mucho más cercano a contenedores OCI con montajes bind predeterminados que a las máquinas de OrbStack
      Tiene menos funciones de integración y no ejecuta systemd ni un sistema init común, así que es difícil correr servicios
    • El concepto de OrbStack me gusta, pero con tantas alternativas gratuitas y de código abierto, me cuesta justificar una licencia de 96 dólares al año
      Por ahora preferiría usar Podman o Colima
    • También me gustaría ver una comparación con https://tart.run/
      A mí me parece bastante similar
    • No es un entorno Docker completo, sino algo pensado para tareas de build
      Opcionalmente también se puede ejecutar dockerd, y https://github.com/cpuguy83/crucible ejecuta buildkitd o dockerd con el framework Containerization y luego se conecta mediante la CLI de docker/buildx o la herramienta cliente que prefieras
      El framework Containerization es una librería montada sobre el framework de Virtualization, así que cada contenedor es su propia VM
      Machine es una herramienta sobre el framework Containerization que ejecuta varias tareas en los contenedores dentro de la VM
    • Me gusta mucho OrbStack, y por ahora todavía no tengo claro por qué debería usar Container Machines en su lugar
  • ¿Estos contenedores comparten un kernel común? ¿O cada uno corre en una VM separada?
    Edición: es una VM por contenedor https://github.com/apple/container/blob/main/docs/technical-...

  • Los contenedores de Apple parecen buenos para dar sandboxing a agentes de codificación con IA
    Lo hice como MCP para que cualquier agente de codificación pueda descubrirlo fácilmente
    https://github.com/instavm/coderunner

  • Me preguntaba si sería posible mover los volúmenes de contenedor, por ejemplo, a un disco externo
    Ahora mismo hago eso usando imágenes QMEU y qcow2, y funciona más o menos bien

  • Me pregunto por qué macOS no intenta un enfoque tipo WSL1
    Entiendo por qué eso no terminó de funcionar por completo en Windows, pero macOS ya es otro *nix, así que muchas de las partes difíciles en Windows parecerían más fáciles en una Mac
    Con apenas unas cuantas APIs nuevas, parecería posible ejecutar de forma nativa la mayoría de las aplicaciones Linux en macOS
    De hecho BSD ya tiene algo así

    • ¿Qué ventaja tendría eso frente a la infraestructura de VM que Apple de todos modos necesita?
      El ABI es mucho más simple y estable comparado con el kernel de Linux
  • ¿Esto podría reemplazar algo como Docker Desktop y eliminar la costosa VM Linux que corre al lado?

    • Eso mismo pensé yo al principio
      La sobrecarga de Docker Desktop es bastante pesada, así que sería bueno si esto llegara de forma nativa a DD
      Viendo que Docker históricamente ha intentado mejorar el rendimiento pero terminó aceptando rápido las limitaciones de la plataforma, parece posible, y mover DD hacia el lado de los contenedores suena natural
    • La idea es eliminar en gran parte la gran VM compartida en segundo plano y sustituirla por VM nativas de Apple más pequeñas y mejor aisladas
      Hice un experimento moviendo mi carga de trabajo de Podman a Apple container: https://gist.github.com/jmonster/39e14585e107dbf990a90966c0f...
      En resumen, baja el uso de RAM/almacenamiento y casi no se siente
    • Otros ya lo mencionaron aquí también, pero yo hace poco me cambié a Colima
      Es muy doloroso trabajar esquivando Docker Desktop
    • Eso sería realmente genial
      Siento que termino haciendo rm -rf ~/.colima cada pocos días
  • Me sorprende que Apple se haya preocupado lo suficiente como para hacer esto
    Aun así, yo sigo prefiriendo Linux, pero el valor de una MacBook es enorme

    • Yo también siempre preferiría usar Linux, pero a veces la empresa te da una MacBook
      Puede que sí use esta herramienta
  • Cada vez que veo a Apple presumir contenedores Linux, me cuesta verlo como otra cosa que no sea una admisión de derrota
    Si todavía tuvieran capacidad, Darwin habría bastado

    • Apple se preparó para perder en el mercado de servidores y desarrolladores desde el momento en que decidió hacer de macOS un código privativo
      ¿Qué desarrollador serio va a usar código cerrado que no puede depurar ni corregir, especialmente en un servidor de producción?
      Esa es también la razón por la que muchos desarrolladores serios o hackers no usan macOS
      Una parte central de ser desarrollador es poder meterse en cualquier capa del código para depurarla y arreglarla
    • Solo hay que reescribir 30 años de historia de Internet
    • ¿Y cuál sería la alternativa?
      Apple abandonó el mercado de servidores hace 10 años, y aun antes de eso casi no había soporte real
      Incluso si soportaran contenedores Darwin, ¿qué significaría eso? Literalmente nadie construiría para ese objetivo, Linux ganó
  • ¿Esto es una función nueva?
    Pensé que ya existía
    Cuando lo probé, el rendimiento del sistema de archivos no era lo bastante bueno para un entorno de desarrollo Node/Rust que hace muchos stat sobre archivos pequeños
    Actualización: lo nuevo es el subcomando container machine
    Intenté probarlo, pero en mi entorno el contenedor ni siquiera arrancó: https://github.com/apple/container/issues/1681

    • Me pregunto si ya probaste OrbStack
      Todavía hay más trabajo por hacer, pero cualquier carga de trabajo de prueba es bienvenida
      Hemos invertido mucho esfuerzo en optimizar archivos pequeños y cargas de trabajo comunes de desarrolladores en el protocolo personalizado de compartición de sistema de archivos de OrbStack
      No es virtiofs estándar
    • Por cierto, Podman también funciona en macOS
      Ejecuta máquinas usando el framework de contenedores ya existente
      Puede funcionar tanto con privilegios de root como en modo rootless