6 poin oleh GN⁺ 2025-06-10 | 1 komentar | Bagikan ke WhatsApp
  • Containerization adalah alat open source berbasis Swift yang memungkinkan menjalankan kontainer Linux di macOS
  • Berjalan di Mac berbasis Apple Silicon, dan memanfaatkan Virtualization.framework untuk mengisolasi setiap kontainer di dalam mesin virtual ringan
  • Mencakup berbagai fitur seperti manajemen image OCI, integrasi registry jarak jauh, pembuatan file system ext4, dan kontrol lingkungan kontainer
  • Dengan memanfaatkan Rosetta 2, alat ini juga dapat mendukung menjalankan proses x86_64 di Apple Silicon
  • Menawarkan boot sangat cepat, lingkungan ringan, dan kustomisasi versi kernel untuk meningkatkan fleksibilitas dan performa pengembang

Gambaran proyek

  • Containerization adalah paket Swift yang membantu aplikasi menggunakan kontainer Linux
  • Diimplementasikan dalam bahasa Swift, dan bekerja di Mac berbasis Apple Silicon dengan memanfaatkan Virtualization.framework
  • Melalui API, paket ini menyediakan fungsi berikut
    • Manajemen image OCI
    • Integrasi dengan registry kontainer jarak jauh
    • Pembuatan dan penempatan file system ext4
    • Interaksi dengan keluarga soket Netlink
    • Penyediaan kernel Linux yang dioptimalkan untuk boot cepat
    • Pembuatan dan pengelolaan mesin virtual ringan
    • Kontrol atas lingkungan eksekusi mesin virtual
    • Pembuatan dan kontrol proses yang dikontainerisasi
    • Menjalankan proses x86_64 di Apple Silicon dengan Rosetta 2
  • Dokumentasi API tersedia di halaman resmi terpisah

Desain dan struktur

  • Setiap kontainer Linux dijalankan di dalam mesin virtual yang terpisah
  • Karena alamat IP khusus dapat diberikan untuk setiap kontainer, pengelolaan jaringan menjadi lebih mudah tanpa port forwarding
  • Berkat konfigurasi kernel yang dioptimalkan dan root file system ringan, boot kontainer di bawah 1 detik dapat dicapai
  • vminitd adalah subproyek dari Containerization, berupa sistem init ringan yang berjalan sebagai proses awal di dalam mesin virtual
    • Melalui GRPC API, ia mengatur lingkungan eksekusi dan mendukung pengelolaan operasi proses kontainer
    • Meneruskan penanganan input/output, sinyal, dan event ke proses pemanggil

Persyaratan

  • Diperlukan perangkat Apple Silicon Mac
  • Untuk membangun paket, dibutuhkan
    • macOS 15 atau lebih baru dan Xcode 26 Beta
    • atau macOS 26 Beta 1 atau lebih baru
  • Jika digunakan di macOS 15, fitur berikut dibatasi
    • Jaringan kontainer non-terisolasi: komunikasi antar-kontainer pada jaringan vmnet yang sama tidak tersedia

Contoh penggunaan

  • Tersedia executable cctl: bentuk playground untuk mencoba berbagai kemampuan API
    • Contoh perintah utama
      • Manipulasi image OCI
      • Login registry kontainer
      • Pembuatan blok root file system
      • Menjalankan kontainer Linux sederhana

Konfigurasi kernel Linux

  • Untuk menjalankan mesin virtual ringan bagi kontainer, diperlukan kernel Linux
  • Konfigurasi kernel yang dioptimalkan yang disediakan oleh Containerization berada di direktori kernel
  • Konfigurasi tersebut hanya memuat fitur minimum untuk menyediakan boot cepat dan lingkungan ringan
  • API telah disediakan agar konfigurasi dan versi kernel dapat ditentukan berbeda untuk tiap kontainer sesuai kebutuhan
    • Berbagai versi dan konfigurasi kernel dapat diuji
  • Kernel pra-kompilasi seperti vmlinux.container yang disediakan oleh proyek Kata Containers juga dapat digunakan
    • Namun, driver VIRTIO harus tertanam di kernel (compiled-in)

Ringkasan proses pengembangan dan pengujian

  • Perlu menyiapkan lingkungan seperti Swift dan Static Linux SDK
  • Kode sumber dapat dibangun dan diuji (make all, make test integration, dan perintah lainnya)
    • Untuk menjalankan pengujian integrasi, diperlukan image kernel
  • Mendukung konfigurasi dependensi yang menggunakan versi tertentu terkait gRPC/Protobuf
  • Dilengkapi dengan pembuatan dokumentasi API otomatis dan fitur pratinjau lokal

Kontribusi open source dan status proyek

  • Kontribusi disambut
  • Versi 0.1.0 adalah rilis resmi pertama, dan stabilitas source hanya dijamin di dalam cakupan versi minor
  • Ada kemungkinan kebijakan ini berubah pada rilis minor mendatang

Ringkasan

  • Containerization adalah paket Swift inovatif yang memungkinkan pengembang mengelola, menjalankan, dan mengembangkan kontainer Linux di macOS dalam lingkungan yang dioptimalkan
  • Dengan menjalankan setiap kontainer di mesin virtual khusus yang ringan, alat ini menawarkan keunggulan dalam isolasi, performa, jaringan, dan kustomisasi kernel
  • Ini adalah solusi yang cocok bagi pengembang yang ingin memperluas lingkungan kontainer open source ke pengalaman native macOS

1 komentar

 
GN⁺ 2025-06-10
Komentar Hacker News
  • Bagian yang menurut saya paling mengejutkan dan menarik adalah ini

    Terasa sangat tidak biasa melihat sikap Apple yang menyampaikan bahwa kontribusi ke proyek "container" disambut dan didorong
    WebKit adalah fork bermusuhan dari KHTML, dan Darwin juga terasa seperti komponen-komponen dilemparkan sedikit demi sedikit dari balik tembok
    Saya berharap proyek-proyek seperti ini yang belakangan dibuka Apple di GitHub bisa mendorong kolaborasi yang aktif antara pengguna dan pengembang
    Saya cenderung F/OSS (open source), tetapi karena kebijakan perusahaan saya tidak bisa memakai Linux dan terpaksa menggunakan Mac setiap hari
    Setelah Apple Silicon hadir, saya bahkan mengganti laptop rumah saya ke Mac, tetapi belakangan alternatif yang ramah Linux juga makin mendekat, jadi saya cukup antusias
    Perubahan seperti ini adalah sinyal positif, dan bagi pengguna seperti saya yang punya konflik batin, ini terasa melegakan
    Kalau kolaborasi open source seperti ini bisa berlanjut dalam siklus yang baik, saya rasa budaya kerja sama antara Apple dan komunitas bisa tumbuh lebih besar
    Saya membayangkan suasana di mana pengembang seperti saya bisa mendapat manfaat langsung dari perubahan ini sekaligus menumbuhkan rasa hormat kepada Apple

    • Ada pendapat bahwa keterlibatan Apple dalam komunitas open source tidak perlu terlalu mengejutkan
      Disebutkan bahwa Swift dan framework terkaitnya juga menerima banyak kontribusi dari komunitas open source

    • Karena proyek ini berurusan dengan Linux, ada pandangan bahwa copyleft Linux (lisensi open source yang kuat) membuat Apple mau tak mau harus mengambil pendekatan kolaboratif

  • Video terkait yang direkomendasikan adalah presentasi WWDC 2025 (https://developer.apple.com/videos/play/wwdc2025/346/)
    Strukturnya adalah setiap container dipisahkan dalam Linux VM yang ringan
    Bisa dijalankan langsung dengan mengunduh tool container (https://github.com/apple/container/releases), memerlukan macOS 26

    • Kiriman ini berbeda dari https://github.com/apple/containerization, bukan proyek container
      containerization lebih menarik karena ditujukan untuk deployment aplikasi bersama sidecar container
      Sementara container ditujukan agar pengembang bisa memakai lingkungan seperti docker run ...
      Untuk container, ada thread HN terpisah (https://news.ycombinator.com/item?id=44229239)

    • Ini juga bisa berjalan di macOS 15, hanya saja beberapa fitur jaringan mungkin terbatas

  • Dalam siaran pers dan sesi WWDC disebutkan bahwa tool CLI ada di https://github.com/apple/container
    Sebagai orang yang sangat tertarik pada tool seperti ini, saya berharap itu sudah dibundel secara default di Xcode Beta terbaru, tetapi ternyata belum
    Paket prebuilt sedang dipersiapkan sekarang, dan progresnya bisa dilihat di issue publik (https://github.com/apple/container/issues/54)

  • Saya penasaran bagaimana perasaan Docker soal ini
    Saya membayangkan cukup banyak pengguna Docker for Desktop yang memakai Mac

    • Ada pendapat bahwa perubahan ini justru akan membuat pengembangan Docker Desktop jauh lebih mudah
      Sekarang mereka tidak perlu lagi menyiapkan Linux VM sendiri, jadi tingkat kesulitan pengembangannya berkurang
      Meski begitu, diperkirakan banyak pengguna tetap akan memilih Docker Desktop lama karena CLI yang sudah akrab, Docker Compose, dan berbagai UX khas Docker
      Dijelaskan bahwa mengganti container runtime bukan hal yang mudah

    • Ada dugaan bahwa dari sudut pandang Docker, rasanya akan mirip seperti saat menghadapi podman

    • Karena Docker Desktop adalah perangkat lunak komersial closed source, sedangkan proyek ini adalah perangkat lunak bebas, ini dipandang sebagai kabar baik bagi pengguna

  • Ada yang penasaran apakah teknologi ini bisa dipakai untuk membundel Linux container ke dalam aplikasi macOS
    Contohnya, saat tool seperti GPT perlu mengakses lingkungan Linux tanpa perintah CLI root, hal seperti ini akan dibutuhkan

    • Jika cukup berjalan hanya di macOS 26, maka ini bisa langsung dipakai untuk tujuan tersebut
      Alternatifnya, hal serupa juga bisa dilakukan dengan langsung memakai Virtualization.framework, tetapi perlu pekerjaan tambahan

    • Ada keyakinan bahwa teknologi ini memang dibuat tepat untuk tujuan seperti itu

  • Menarik bahwa setiap container dijalankan dalam VM yang terpisah, dengan isolasi penuh dan IP terpisah, tetapi desain seperti ini tidak lazim di Linux maupun Windows
    Jika dalam tim pengembang ada satu saja orang yang tidak memakai Mac, model pengembangan lokal ini akan runtuh
    Kesimpulannya, ini tidak akan mudah menggantikan Docker/Compose

  • Dari tiga OS desktop utama, dua kini secara resmi bisa menjalankan Linux VM untuk mengeksekusi aplikasi native Linux
    Dari tren ini, bisa dikatakan bahwa Linux pada dasarnya sudah menang
    API system call Linux kini berada di posisi sebagai API umum yang berjalan hampir di mana-mana

    • Ada bantahan bahwa fakta aplikasi berbasis Linux harus dikembangkan dengan layak di atas dua OS besar non-Linux bukanlah sesuatu yang mudah disebut sebagai "kemenangan Linux"
      Ada pengalaman bahwa realitas desktop Linux masih tidak stabil dan sulit direkomendasikan
      Umpan balik jujur bahwa setiap tahun mencoba memasang Fedora/Ubuntu di PC atau laptop terbaru, tetapi tetap belum terasa usable dan stabil

    • Ada juga pandangan bahwa justru karena dua platform lain menyediakan cara untuk tetap memakai Linux tanpa benar-benar pindah ke Linux, hal itu memperlambat pertumbuhan pangsa desktop Linux itu sendiri

    • Disorot juga kekurangan bahwa untuk grafis, audio, dan GUI, masih belum ada solusi yang benar-benar memadai

    • Muncul pertanyaan, "Kalau satu-satunya pemain di pertandingan itu hanya dirimu sendiri, apakah itu bisa disebut menang?"
      Diselingi gurauan bahwa kalau dibicarakan ke pengguna Windows atau Mac biasa, mereka bahkan mungkin tidak tahu apa itu Linux

    • Ada pendapat bahwa fakta "macOS bersama Linux" itu sendiri sudah cukup berdampak

  • Ada yang penasaran apakah mereka juga mengoptimalkan manajemen memori, sehingga VM tidak memakai memori lebih dari yang diperlukan

  • Tidak jelas proses persisnya seperti apa, tetapi terasa bahwa kecepatan build sangat lambat
    Sudah mencoba menambah resource CPU/memori dengan opsi -c, -m, tetapi dampaknya hampir tidak terasa

    • Ada yang bertanya lambat dibandingkan dengan lingkungan apa
      Dibagikan pengalaman masa lalu saat Silicon Mac + Rancher Desktop tampak seolah membangun image x86, tetapi image itu ternyata tidak berjalan dengan baik di hardware x86 yang sebenarnya
  • Dalam demo singkat (https://developer.apple.com/videos/play/wwdc2025/346) cukup mengesankan bahwa VM bisa boot dalam hitungan ratusan milidetik
    Ini berjalan di atas Virtualization.framework, yang juga kadang dipakai secara opsional oleh Docker Desktop/Colima/UTM dan lainnya
    Saya penasaran dengan overhead memori saat beberapa container dijalankan secara paralel

    • Dijelaskan bahwa berkat konfigurasi kernel Linux yang dioptimalkan (kernel config, https://github.com/apple/containerization/…), root filesystem minimal, dan sistem init yang ringan, waktu boot container bisa ditekan hingga di bawah 1 detik