Per gli utenti Windows, WSL (Windows Subsystem for Linux) è diventata la soluzione di riferimento per eseguire Linux direttamente all’interno di Windows. Su Mac, una soluzione simile non esisteva fino al recente arrivo di Container Machine, una modalità per lo strumento Container di Apple. Offre un’esperienza Linux nativa, persistente e integrata per i Mac con processore Apple Silicon e sistema operativo macOS 26.
A differenza dei container tradizionali, questa macchina virtuale leggera offre un sistema completo in grado di avviare servizi condividendo la directory home tra Mac e Linux. Il risultato? Un ambiente flessibile, ideale per lo sviluppo o lo scripting bash.
Scopriamo cosa distingue le macchine container, come funzionano nella pratica e perché stanno dando vita a un nuovo modo di utilizzare Linux su Mac.
Macchina container: una nuova era per Linux nativo su Mac Apple Silicon
Container Machine è una nuova funzionalità dello strumento open source di Apple per la gestione dei container. Non si limita ad avviare un container temporaneo, ma crea una macchina persistente con un sistema Linux completo.
Il vantaggio principale è la possibilità di mantenere lo stato tra una sessione e l’altra. È possibile installare pacchetti, avviare servizi e modificare l’ambiente a piacimento. È molto più simile a un vero sistema Linux che a un tipico container di applicazioni.
Dal punto di vista tecnico, questa modalità avvia un sistema di init all’interno dell’immagine, spesso systemd, e la directory $HOME di macOS viene montata sulla macchina. Il codice modificato su macOS può quindi essere utilizzato direttamente su Linux, senza noiose duplicazioni.
Notevoli somiglianze con il Sottosistema Windows per Linux
Per gli amministratori e gli sviluppatori che hanno familiarità con WSL su Windows, il confronto è naturale. Entrambi offrono un vero kernel Linux in una macchina virtuale leggera.
Un altro punto cruciale è l’integrazione del file system: in WSL si accede ai dischi Windows, mentre in questo caso, all’interno della macchina container, la directory utente macOS è condivisa in modalità lettura-scrittura.
È possibile avviare veri e propri servizi Linux (systemd è supportato nelle immagini adattate), una flessibilità fondamentale per testare scenari complessi senza uscire da macOS.
Come implementare un container di macchine e aumentare la produttività
Prerequisiti: un Mac dotato di chip Apple Silicon, macOS 26 installato e lo strumento di container configurato con il relativo servizio in esecuzione (avvio del sistema di container). Una volta completati questi passaggi, la creazione è semplice.
Partiamo da un’immagine Linux di init compatibile (ad esempio: alpine:latest o una versione modificata di Ubuntu). Ad esempio:
container machine create alpine:latest –name devbox
Con questa macchina in esecuzione, un semplice comando “container machine run -n devbox” apre una shell con i privilegi del tuo utente, con accesso diretto alla directory $HOME di macOS.
Condividi i tuoi file tra macOS e Linux senza problemi
Il vantaggio principale è la completa trasparenza della condivisione dei file. Anziché scambiare file tramite volumi Docker o copie, l’ambiente Linux utilizza direttamente la directory home del Mac.
Supponiamo che tu stia sviluppando uno script per un server Linux, ma macOS utilizza le proprie versioni BSD delle utility. Testare in locale spesso porta a errori insidiosi.
Grazie alla macchina container, questo script viene eseguito su un vero sistema Linux, monitorando eventuali discrepanze relative agli strumenti GNU, senza dover abbandonare la comodità del tuo editor macOS.
Crea un ambiente Ubuntu con systemd e avvia i servizi
Creare una macchina container con systemd è un’operazione un po’ più tecnica. Richiede la creazione di un’immagine Ubuntu personalizzata che includa il sistema di init, utilizzando il Dockerfile ufficiale presente nella documentazione di Apple.
Dopo la compilazione (che richiede Rosetta 2), la macchina viene creata:
container machine create local/ubuntu-machine:latest –name devubuntu
Da questo momento in poi, sono disponibili tutti i comandi di sistema standard, inclusa l’amministrazione tramite systemctl. Ad esempio: installare Apache e MariaDB, avviare i servizi e abilitarli per l’avvio automatico!
Recupera l’indirizzo IP e accedi al server web da macOS
La macchina ha un proprio indirizzo IP all’interno di una rete virtuale. Utilizza il comando “container machine ls” per trovare questo indirizzo.
Successivamente, digitando l’URL in un browser Mac si aprirà la homepage di Apache ospitata all’interno della macchina container. Questa configurazione viene mantenuta e non scompare dopo lo spegnimento o il riavvio.
Questa configurazione avvicina davvero questa modalità macchina a una macchina virtuale leggera, ma specificamente ottimizzata per lo sviluppo su macOS-Linux.
Distribuisci il tuo software in più ambienti per testarlo in contesti differenti.
Un altro vantaggio fondamentale: è possibile creare macchine separate con distribuzioni diverse. Debian, Ubuntu, Alpine… Ogni macchina condivide la stessa directory home di macOS.
Di conseguenza, i file di configurazione standard (.bashrc, .gitconfig, ecc.) rimangono sincronizzati tra questi ambienti. Ciò è utile per verificare la robustezza o la compatibilità di un progetto multipiattaforma.
Questa è un’opportunità rara e gradita per qualsiasi amministratore o sviluppatore Linux/Unix che lavora su un Mac.
Alcuni limiti da tenere a mente nel 2026
Il progetto è giovane e in continua evoluzione. A differenza di WSL, non esiste un equivalente di WSLg per la grafica su Linux. L’interoperabilità tra macOS e Linux è attualmente limitata ai file.
La virtualizzazione nidificata tramite KVM non è ancora supportata su Apple Silicon, ma sarà disponibile nelle versioni future.
Infine, alternative come Lima, Multipass o OrbStack dovrebbero essere prese in considerazione quando la maturità o la ricchezza di funzionalità sono cruciali.