6 poin oleh xguru 6 jam lalu | 3 komentar | Bagikan ke WhatsApp
  • 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  

Video pengantar WWDC26 - Menjelajahi Container Machine

  • 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

 
recast7838 26 menit lalu

Apakah performanya akan cukup baik?

 
click 4 jam lalu

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.

 
GN⁺ 4 jam lalu
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

    • Ah, jadi ini subsystem Darwin/BSD untuk Linux
  • OrbStack sangat cocok buat saya
    Saya penasaran bagaimana perbandingan performanya dengan ini

    • Saya developer OrbStack
      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
    • Saya suka konsep OrbStack, tetapi sulit membenarkan lisensi 96 dolar per tahun ketika ada banyak alternatif yang open source dan gratis
      Untuk sekarang saya lebih memilih memakai Podman atau Colima
    • Saya juga ingin melihat perbandingannya dengan https://tart.run/
      Menurut saya cukup mirip
    • Ini bukan lingkungan Docker lengkap, melainkan dibuat dengan target penggunaan build
      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
    • Saya sangat suka OrbStack, dan sampai sekarang saya masih belum benar-benar paham kenapa saya harus memakai Container Machines sebagai gantinya
  • 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

    • Kelebihannya apa dibanding infrastruktur VM yang memang sudah dibutuhkan Apple?
      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?

    • Itu juga pikiran pertama saya
      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
    • Bentuknya adalah menghapus sebagian besar VM background bersama yang besar, lalu menggantinya dengan VM native Apple yang lebih kecil dan lebih terisolasi
      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
    • Orang lain juga sudah menyebutkannya di sini, tetapi saya baru-baru ini beralih ke Colima
      Sangat menyakitkan harus bekerja sambil menghindari Docker Desktop
    • Kalau begitu, itu akan sangat bagus
      Rasanya saya melakukan rm -rf ~/.colima setiap beberapa hari sekali
  • Saya terkejut Apple cukup peduli untuk melakukan ini
    Meski begitu saya tetap ingin memakai Linux, tetapi nilai MacBook memang sangat besar

    • Saya juga selalu ingin memakai Linux, tetapi kadang perusahaan memberi saya MacBook
      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

    • Apple sejak memutuskan menjadikan macOS sebagai kode proprietari pada dasarnya sudah menyiapkan dirinya sendiri untuk kalah di pasar server dan developer
      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
    • Tinggal mengubah 30 tahun sejarah internet
    • Apa alternatifnya?
      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 stat pada banyak file kecil belum cukup layak
    Pembaruan: yang baru adalah subperintah container machine
    Saya mencoba mengetesnya, tetapi di lingkungan saya kontainernya bahkan tidak bisa berjalan sama sekali: https://github.com/apple/container/issues/1681

    • Penasaran apakah Anda sudah mencoba OrbStack
      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
    • Sebagai catatan, Podman juga bisa dipakai di macOS
      Ia menjalankan mesin memakai framework container yang sudah ada
      Bisa dengan pendekatan rootful maupun rootless