- Alat untuk membuat dan menjalankan kontainer Linux di Mac dalam bentuk mesin virtual ringan
- Container Machine yang baru ditambahkan di WWDC26 memungkinkan menjalankan lingkungan Linux yang cepat, ringan, dan persisten dengan direktori home dan repositori yang ter-mount secara otomatis
- Berbeda dari kontainer berbasis aplikasi yang sudah ada, fitur ini memodelkan seluruh lingkungan Linux (mirip WSL2)
- Dapat menjalankan sistem init dari image sehingga memungkinkan pendaftaran layanan jangka panjang atau pengujian aplikasi di bawah pengelola proses
- Pada image yang memasang
systemd, layanan Linux nyata seperti systemctl start postgresql dapat dijalankan
- Nama pengguna dan direktori home dipetakan secara otomatis, sehingga repositori dan dotfile dapat dibagikan di macOS dan Linux
- Repositori berada di macOS
$HOME dan di-mount ke /Users/<username> di dalamnya, sehingga bisa diedit dengan editor/IDE macOS sambil dibangun dan dijalankan dari dalam
- Alat native macOS seperti profiler, browser, dan debugger GUI mengenali file yang sama, sehingga tidak perlu langkah penyalinan antara build dan inspeksi
- Container Machine dapat dibuat sebanyak distribusi target yang dibutuhkan seperti
alpine, ubuntu, debian, dan masing-masing berbagi $HOME serta dotfile yang sama untuk pengujian cepat di banyak distro
- Semua image Linux yang menyertakan
/sbin/init dapat langsung digunakan sebagai image Container Machine
- Karena mengonsumsi dan menghasilkan image kontainer yang kompatibel dengan OCI, image Docker juga bisa di-
pull dan di-push dari registry kontainer standar
- Image tersebut juga bisa dijalankan di aplikasi lain yang kompatibel dengan OCI
- Pengelolaan kontainer, image, dan proses level rendah bergantung pada paket Swift Containerization
- Membutuhkan Mac dengan Apple silicon untuk menjalankannya, dan didukung di macOS 26
- Memanfaatkan fitur baru dan peningkatan virtualisasi serta jaringan di macOS 26, versi macOS sebelumnya tidak didukung
- Lisensi Apache-2.0
Perintah pengoperasian
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
- Containerization adalah framework Swift open source yang diperkenalkan di WWDC 25, dan menjadi fondasi untuk menjalankan kontainer Linux di macOS
- Dirancang untuk menyediakan isolasi berbasis mesin virtual bagi tiap kontainer, dengan mesin virtual ringan yang menawarkan performa cepat dan waktu mulai di bawah 1 detik
- Container machine adalah fitur baru yang dibangun di atas Containerization, menggabungkan kemudahan penggunaan dan kecepatan kontainer dengan persistensi mesin virtual, serta membuat lingkungan Linux terasa seperti perpanjangan dari macOS melalui fitur integrasi
-
Prinsip desain
- Container machine harus cepat dan ringan agar bisa terintegrasi ke workflow yang sudah ada
- Harus mudah berpindah antara macOS dan Linux
- Pengguna harus bisa membuat dan menyesuaikan lingkungan baru dengan cepat, sehingga banyak proyek dapat memiliki lingkungan khusus tanpa khawatir bentrok dependensi atau toolchain
- Karena alat dan dependensi yang dibutuhkan bisa berubah sepanjang siklus pengembangan, pengguna harus dapat menambahkan alat dalam lingkungan persisten dan memakainya kembali seiring waktu
- Saat mengembangkan untuk beberapa platform, seharusnya tidak perlu perpindahan konteks yang besar atau mempelajari alat baru
3 komentar
Apakah performanya akan cukup baik?
Bagaimanapun dilihat, ini seperti WSL2 versi Mac; saya penasaran apakah saat memetakan volume host tidak akan terjadi penurunan performa I/O yang cukup besar
Saat ini pun saya menjalankan container di atas VM dengan
limactl, jadi rasanya juga tidak terlalu berbeda.Komentar Hacker News
Untuk memperjelas beberapa hal, ini bukan hanya berarti kontainer OCI
Container Machines mendukung persistensi dan mount filesystem, jadi ini menjadi lingkungan Linux ringan yang sangat bagus bagi developer yang memakai macOS
Detailnya ada di sini: https://developer.apple.com/videos/play/wwdc2026/389
OrbStack sangat cocok buat saya
Saya penasaran bagaimana perbandingan performanya dengan ini
Alih-alih Virtualization.framework, kami langsung memakai stack virtualisasi berbasis Rust dengan perangkat dan protokol kustom untuk fitur seperti berbagi filesystem
Ini adalah stack terintegrasi vertikal yang sangat dioptimalkan khusus untuk menjalankan mesin dan kontainer Linux
Keuntungan performa/sumber daya terbesar adalah memori dinamis, yang mengembalikan memori yang tidak terpakai ke macOS sehingga pemakaian memori berkurang besar
Hal lain, termasuk Containerization, tidak mendukung ini
Setelah mencoba Container Machines, menurut saya ini jauh lebih mirip ke kontainer OCI dengan bind mount bawaan dibanding mesin OrbStack
Fitur integrasinya lebih sedikit dan tidak menjalankan systemd atau sistem init umum, jadi sulit untuk menjalankan service
Untuk sekarang saya lebih memilih memakai Podman atau Colima
Menurut saya cukup mirip
Secara opsional juga bisa menjalankan dockerd, dan https://github.com/cpuguy83/crucible menjalankan buildkitd atau dockerd dengan framework Containerization lalu menghubungkannya ke docker/buildx CLI atau tool klien apa pun yang diinginkan
Framework Containerization adalah library yang berada di atas Virtualization framework, jadi setiap kontainer adalah VM-nya sendiri
Machine adalah tool di atas framework Containerization yang menjalankan berbagai tugas pada kontainer di dalam VM
Apakah kontainer-kontainer ini berbagi kernel yang sama? Atau masing-masing berjalan di VM terpisah?
Edit: satu VM per kontainer https://github.com/apple/container/blob/main/docs/technical-...
Kontainer Apple cocok untuk menyediakan sandbox bagi agen coding AI
Saya membuatnya sebagai MCP agar semua agen coding bisa menemukannya dengan mudah
https://github.com/instavm/coderunner
Saya penasaran apakah volume kontainer bisa dipindahkan misalnya ke drive eksternal
Saat ini saya melakukan itu dengan image QMEU dan qcow2, dan sejauh ini cukup berjalan baik
Saya penasaran kenapa macOS tidak mencoba pendekatan ala WSL1
Saya paham kenapa itu tidak sepenuhnya berhasil di Windows, tetapi macOS adalah *nix lain, jadi banyak hal yang sulit di Windows tampaknya akan lebih mudah di Mac
Dengan sedikit penambahan API baru, sepertinya sebagian besar aplikasi Linux bisa dijalankan secara native di macOS
Di BSD sebenarnya hal seperti ini sudah ada
ABI-nya jauh lebih sederhana dan stabil dibanding kernel Linux
Apakah ini bisa menggantikan kelas Docker Desktop dan menghilangkan VM Linux mahal yang berjalan di samping?
Overhead Docker Desktop cukup besar, jadi akan bagus kalau ini masuk secara native ke DD
Melihat Docker secara historis pernah mencoba meningkatkan performa lalu cepat menerima batasan platform, rasanya ini mungkin saja, dan memindahkan DD ke arah kontainer terlihat wajar
Saya sudah bereksperimen memindahkan beban kerja Podman saya ke Apple container: https://gist.github.com/jmonster/39e14585e107dbf990a90966c0f...
Singkatnya, penggunaan RAM/storage berkurang dan jejak keberadaannya sangat minimal
Sangat menyakitkan harus bekerja sambil menghindari Docker Desktop
Rasanya saya melakukan
rm -rf ~/.colimasetiap beberapa hari sekaliSaya terkejut Apple cukup peduli untuk melakukan ini
Meski begitu saya tetap ingin memakai Linux, tetapi nilai MacBook memang sangat besar
Mungkin saya akan memakai tool ini
Setiap kali melihat Apple memamerkan kontainer Linux, sulit melihatnya sebagai hal lain selain pengakuan kalah
Kalau mereka masih punya kemampuan, Darwin seharusnya sudah cukup untuk melakukan ini
Kenapa developer serius mau memakai kode closed-source yang tidak bisa mereka debug dan perbaiki, apalagi di server produksi?
Alasan yang sama juga berlaku untuk kenapa developer serius atau hacker tidak memakai macOS
Karena salah satu inti menjadi developer adalah kemampuan menyelami lapisan kode mana pun untuk debug dan memperbaikinya
Apple sudah menyerah pada pasar server 10 tahun lalu, dan bahkan sebelumnya pun dukungan nyatanya hampir tidak ada
Kalaupun mendukung kontainer Darwin, apa artinya? Secara harfiah tidak ada yang akan build untuk itu, dan Linux sudah menang
Apakah ini fitur baru?
Saya kira ini sudah ada sebelumnya
Saat saya mengujinya, performa filesystem dalam lingkungan development Node/Rust yang sering melakukan
statpada banyak file kecil belum cukup layakPembaruan: yang baru adalah subperintah
container machineSaya mencoba mengetesnya, tetapi di lingkungan saya kontainernya bahkan tidak bisa berjalan sama sekali: https://github.com/apple/container/issues/1681
Masih ada hal yang harus dikerjakan, tetapi kami menerima beban kerja untuk pengujian
Kami telah mengerahkan banyak upaya untuk mengoptimalkan file kecil dan beban kerja developer umum dalam protokol berbagi filesystem kustom OrbStack
Ini bukan virtiofs standar
Ia menjalankan mesin memakai framework container yang sudah ada
Bisa dengan pendekatan rootful maupun rootless