Voor Windows-gebruikers is WSL (Windows Subsystem for Linux) de standaardoplossing geworden om Linux rechtstreeks binnen Windows te draaien. Op Mac bestond een vergelijkbare oplossing tot de recente komst van Container Machine, een modus voor Apple’s Container-tool. Deze biedt een native, permanente en geïntegreerde Linux-ervaring voor Apple Silicon Macs met macOS 26.
In tegenstelling tot traditionele containers biedt deze lichtgewicht virtuele machine een compleet systeem dat services kan starten en de thuismap kan delen tussen Mac en Linux. Het resultaat? Een flexibele omgeving, ideaal voor ontwikkeling of bash-scripting.
Laten we ontdekken wat containermachines onderscheidt, hoe ze in de praktijk werken en waarom ze de opkomst van een nieuwe manier van Linux-gebruik op Mac mogelijk maken.
Containermachine: een nieuw tijdperk voor native Linux op Apple Silicon Mac
Container Machine is een nieuwe functie van Apple’s open-source containertool. Het start niet zomaar een wegwerpcontainer, maar creëert een permanente machine met een compleet Linux-systeem.
Het grootste voordeel is de mogelijkheid om de status tussen sessies te behouden. Je kunt pakketten installeren, services starten en je omgeving naar believen aanpassen. Het lijkt veel meer op een echt Linux-systeem dan op een typische applicatiecontainer.
Technisch gezien start deze modus een init-systeem binnen de image, vaak systemd, en wordt je macOS $HOME op de machine gemount. De code die je op macOS bewerkt, kan vervolgens direct onder Linux worden gebruikt, zonder omslachtige duplicatie.
Opvallende overeenkomsten met het Windows-subsysteem voor Linux.
Voor beheerders en ontwikkelaars die bekend zijn met WSL onder Windows, ligt de vergelijking voor de hand. Beide bieden een echte Linux-kernel in een lichtgewicht virtuele machine.
De integratie van het bestandssysteem is een ander cruciaal punt: onder WSL heb je toegang tot je Windows-schijven, hier, onder Container Machine, wordt de macOS-gebruikersmap gedeeld in lees- en schrijfmodus.
Je kunt echte Linux-services starten (systemd wordt ondersteund op aangepaste images), een cruciale flexibiliteit voor het testen van complexe scenario’s zonder macOS te verlaten.
Hoe implementeer je een machinecontainer en verhoog je de productiviteit?
Vereisten: een Mac met een Apple Silicon-chip, macOS 26 geïnstalleerd en de containertool geconfigureerd met de bijbehorende service actief (containersysteem starten). Zodra deze stappen zijn voltooid, is het aanmaken eenvoudig.
We beginnen met een compatibele init Linux-image (bijvoorbeeld: alpine:latest of een aangepaste Ubuntu). Bijvoorbeeld:
container machine create alpine:latest –name devbox
Met deze machine actief, opent een simpele opdracht als “container machine run -n devbox” een shell onder jouw gebruikersaccount, met directe toegang tot de $HOME-directory van macOS.
Deel je bestanden moeiteloos tussen macOS en Linux.
Het belangrijkste voordeel is de volledige transparantie van het delen van bestanden. In plaats van bestanden uit te wisselen via Docker-volumes of kopieën, gebruikt uw Linux-omgeving rechtstreeks de thuismap van de Mac.
Stel, je ontwikkelt een script voor een Linux-server, maar macOS gebruikt zijn eigen BSD-versies van hulpprogramma’s. Lokaal testen leidt dan vaak tot onverwachte fouten.
Met Container Machine draait dit script onder een echte Linux-distributie en controleert het op afwijkingen met betrekking tot GNU-tools, zonder dat u uw vertrouwde macOS-editor hoeft te verlaten.
Bouw een Ubuntu-omgeving met systemd en start services.
Het maken van een containermachine met systemd is iets technischer. Het vereist het bouwen van een aangepaste Ubuntu-image die het init-systeem bevat, met behulp van het officiële Dockerfile uit de documentatie van Apple.
Na de compilatie (waarvoor Rosetta 2 vereist is) wordt de machine aangemaakt:
container machine create local/ubuntu-machine:latest –name devubuntu
Vanaf dit punt zijn alle standaard systeemcommando’s beschikbaar, inclusief beheer via systemctl. Bijvoorbeeld: installeer Apache en MariaDB, start de services en schakel ze in zodat ze automatisch starten!
Haal het IP-adres op en krijg toegang tot de webserver vanaf macOS.
De machine heeft een eigen IP-adres binnen een virtueel netwerk. Gebruik de opdracht “container machine ls” om dit adres te vinden.
Als u vervolgens de URL in een Mac-browser typt, wordt de Apache-homepage geopend die op de containermachine wordt gehost. Deze status blijft behouden en verdwijnt niet na het afsluiten of herstarten van de container.
Deze configuratie brengt deze machinemodus dichter bij een lichtgewicht virtuele machine, maar dan specifiek geoptimaliseerd voor macOS-Linux-ontwikkeling.
Verspreid uw software over meerdere omgevingen om deze in verschillende omgevingen te testen.
Nog een belangrijk voordeel: je kunt aparte machines maken met verschillende distributies. Debian, Ubuntu, Alpine… Elke machine deelt dezelfde macOS-thuisdirectory.
Hierdoor blijven uw standaard configuratiebestanden (.bashrc, .gitconfig, enz.) gesynchroniseerd in al deze omgevingen. Dit is handig om de robuustheid of compatibiliteit van een platformonafhankelijk project te controleren.
Dit is een zeldzame en welkome kans voor elke Linux/Unix-beheerder of -ontwikkelaar die op een Mac werkt.
Enkele beperkingen om rekening mee te houden in 2026.
Het project is nog jong en in ontwikkeling. In tegenstelling tot WSL bestaat er geen equivalent van WSLg voor grafische toepassingen op Linux. De samenwerking tussen macOS en Linux is momenteel beperkt tot bestanden.
Geneste virtualisatie via KVM wordt nog niet gebruikt op Apple Silicon – een mogelijkheid voor toekomstige versies.
Tot slot moeten alternatieven zoals Lima, Multipass of OrbStack worden overwogen wanneer volwassenheid of een rijkdom aan functionaliteiten cruciaal is.