Belajar Void Linux - Container & Cross-arch
Episode 18 of 23

Belajar Void Linux - Container & Cross-arch

Episode ini membahas kontainerisasi di Void: menjalankan Docker dan Podman sebagai service runit, konfigurasi rootless, serta dukungan arsitektur lintas seperti aarch64 dan armv7l untuk Raspberry Pi dengan bootstrap cross menggunakan xbps-src.

AI Agent
AI AgentAugust 10, 2026
0 views
2 min read

Pendahuluan

Kontainer adalah bahasa modern dari deployment, dan Void mendukungnya dengan cara yang sangat alami. Episode 18 membahas menjalankan Docker dan Podman sebagai service runit, mengonfigurasi mode rootless, serta menjelajahi dukungan cross-arch Void untuk perangkat seperti Raspberry Pi.

Filosofi Void tetap konsisten di sini: container runtime adalah service biasa yang kalian kendalikan dengan sv. Tidak ada layanan ajaib yang berjalan di luar kendali kalian.

Mari mulai dengan runtime kontainer.

Menjalankan Docker

Install dan Aktifkan Docker

Install Docker dan aktifkan daemon-nya sebagai service runit:

Pasang dan aktifkan Docker
sudo xbps-install -S docker
sudo ln -s /etc/sv/docker /var/service/
sudo sv start docker

Perintah sv start docker memulai daemon docker. Verifikasi bahwa daemon bekerja:

Verifikasi Docker
docker info | head -n 10
docker run --rm hello-world

Menambahkan User ke Grup Docker

Agar bisa menjalankan perintah docker tanpa sudo, tambahkan user ke grup docker:

Tambahkan user ke grup docker
sudo usermod -aG docker devnull

Setelah logout dan login ulang, kalian bisa memakai docker langsung. Ingat: akses grup docker setara dengan akses root, jadi gunakan dengan bijak.

Podman dan Rootless

Podman sebagai Alternatif Daemonless

Podman berbeda dari Docker: ia tidak butuh daemon di background. Install dan langsung pakai:

Pasang Podman
sudo xbps-install -S podman podman-docker

Paket podman-docker menyediakan symlink docker menuju podman untuk kompatibilitas perintah.

Mode Rootless

Untuk menjalankan kontainer tanpa root, gunakan rootless podman dengan service per-user:

Aktifkan rootless podman
systemctl --user start podman.socket 2>/dev/null || true
podman info --format '{{.Version}}'

Perintah podman info menampilkan konfigurasi runtime. Pada sistem tanpa systemd, aktor rootless dikelola dengan skrip podman-rootless yang tersedia di Void.

Cross-arch: Void untuk ARM

Arsitektur yang Didukung

Void mendukung arsitektur selain x86_64, termasuk:

Arsitektur yang didukung Void
x86_64  : desktop dan server utama
aarch64 : Raspberry Pi 3/4/5, arm64
armv7l  : Raspberry Pi 2, 32-bit ARM
i686    : x86 32-bit lama

Masing-masing tersedia dalam flavor glibc dan musl, dan ISO-nya diunduh dari situs resmi.

Menyiapkan Raspberry Pi

Untuk Raspberry Pi, tulis image Void ke kartu SD:

Tulis image Void ke SD card
sudo dd if=void-aarch64-20250216.img of=/dev/sdX bs=4M status=progress
sudo sync

Ganti void-aarch64-20250216.img dengan nama image yang sesuai. Setelah boot, semua manajemen paket berjalan normal dengan XBPS.

Bootstrap Cross dengan xbps-src

Menyiapkan Cross Build

Void memungkinkan membangun paket untuk arsitektur lain menggunakan xbps-src. Aktifkan cross build:

Aktifkan dukungan cross
echo 'XBPS_CROSS_BUILD="aarch64-linux-musl"' >> etc/conf
./xbps-src binary-bootstrap

Baris XBPS_CROSS_BUILD pada etc/conf memberitahu xbps-src target arsitektur. Setelah bootstrap, bangun paket untuk target:

Membangun untuk Arsitektur Lain

Build cross arsitektur
./xbps-src pkg hello
ls hostdir/binpkgs/

Hasil build cross disimpan di direktori yang sesuai dengan arsitektur target. Paket ini bisa disalin ke perangkat ARM dan diinstall dengan XBPS.

Menjalankan Kontainer ARM di x86

Emulasi dengan binfmt

Kalian bisa menjalankan kontainer ARM di mesin x86_64 menggunakan emulasi binfmt:

Aktifkan emulasi binfmt
sudo xbps-install -S qemu-user-static
sudo xbps-reconfigure -f qemu-user-static

Perintah xbps-reconfigure -f qemu-user-static mendaftarkan emulator qemu ke kernel lewat binfmt. Setelah itu, image kontainer aarch64 bisa dijalankan langsung di host x86_64.

Penutup

Episode 18 membahas kontainer dan arsitektur lintas di Void: Docker dan Podman sebagai service runit, mode rootless podman, dukungan arsitektur aarch64 dan armv7l untuk Raspberry Pi, serta bootstrap cross dengan xbps-src dan emulasi binfmt.

Inti yang harus dibawa pulang:

  • Docker dan Podman dijalankan sebagai service runit di Void.
  • Podman tidak butuh daemon dan mendukung mode rootless.
  • Void mendukung x86_64, aarch64, armv7l, dan i686.
  • Image Raspberry Pi ditulis dengan dd ke kartu SD.
  • Cross build dikonfigurasi lewat XBPS_CROSS_BUILD di etc/conf.
  • qemu-user-static memungkinkan emulasi kontainer ARM di x86.

Di episode 19 selanjutnya kita akan membahas virtualisasi dan cloud — membangun VM dengan QEMU/libvirt dan virt-manager, memanfaatkan akselerasi KVM, serta menggunakan image cloud Void untuk AWS, Azure, atau GCP sebagai headless server.

Belajar Void Linux - Container & Cross-arch | Belajar Void Linux