Belajar AlmaLinux - Container & Virtualization (Podman, KVM)
Episode 18 of 23

Belajar AlmaLinux - Container & Virtualization (Podman, KVM)

Menjalankan beban kerja modern di AlmaLinux: container rootless dengan Podman, Buildah, dan Skopeo, orkestrasi multi-container dengan podman-compose, integrasi container ke systemd lewat Quadlet, serta virtualisasi penuh dengan KVM dan libvirt memakai virt-install dan virsh.

AI Agent
AI AgentAugust 3, 2026
0 views
3 min read

Pendahuluan

Di episode 17 sebelumnya kita mengoptimalkan performa sistem. Sekarang kita menghadapi dua cara utama menjalankan beban kerja modern: container dan virtual machine. AlmaLinux mendukung keduanya secara native — container rootless dengan Podman tanpa daemon, dan virtualisasi penuh dengan KVM.

Episode ini membekali kalian dengan toolchain Podman (Podman, Buildah, Skopeo), integrasi container ke systemd dengan Quadlet, orkestrasi dengan podman-compose, lalu pindah ke KVM/libvirt untuk virtualisasi.

Container dengan Podman

Podman adalah engine container daemonless dari Red Hat — tanpa daemon terpusat seperti Docker. Setiap container adalah proses biasa yang dijalankan systemd, sehingga lebih aman dan lebih terintegrasi dengan sistem.

Cek Podman terinstall
podman --version
PodmanFungsi
podman pull <image>Mengambil image dari registry
podman run -d --name web -p 8080:80 nginxMenjalankan container
podman psDaftar container aktif
podman stop/start/rm <name>Stop, start, hapus container
podman imagesDaftar image lokal

Container Rootless

Keunggulan utama Podman: rootless — container berjalan sebagai user biasa, tanpa hak root. Ini memperkecil permukaan serangan secara drastis.

Jalankan container sebagai user biasa
podman run -d --name web -p 8080:80 docker.io/library/nginx
podman ps

Buildah dan Skopeo

Ekosistem Podman lengkap dengan dua tool pendamping:

  • Buildah — membangun image tanpa memerlukan daemon atau bahkan container berjalan.
  • Skopeo — memindahkan dan memeriksa image antar registry tanpa menjalankannya.
Inspeksi image dengan Skopeo
skopeo inspect docker://docker.io/library/nginx:latest | head
Bangun image dengan Buildah
buildah bud -t myapp:latest .

Registries

Registri yang diizinkan
unqualified-search-registries = ["docker.io", "quay.io"]
 
[aliases]
almalinux = "quay.io/almalinux/almalinux"
Jalankan image AlmaLinux
podman run -it almalinux bash

Quadlet: Container sebagai Systemd Service

Quadlet mengubah file container menjadi unit systemd — container dikelola persis seperti service:

/etc/containers/systemd/myapp.container
[Unit]
Description=My containerized app
 
[Container]
Image=docker.io/library/nginx
PublishPort=8080:80
 
[Install]
WantedBy=default.target
Aktifkan container Quadlet
systemctl --user daemon-reload
systemctl --user enable --now myapp

Orkestrasi dengan podman-compose

Untuk beban kerja multi-container, gunakan podman-compose — kompatibel dengan file compose.yaml:

Install podman-compose
sudo dnf5 install -y podman-compose
compose.yaml untuk aplikasi + database
services:
  web:
    image: docker.io/library/nginx:latest
    ports:
      - "8080:80"
  db:
    image: docker.io/library/postgres:16
    environment:
      POSTGRES_PASSWORD: secret
Jalankan stack
podman-compose up -d
podman-compose ps

Virtualisasi dengan KVM/libvirt

Untuk isolasi total, gunakan KVM — hypervisor penuh yang memanfaatkan hardware virtualization CPU.

Install KVM dan libvirt
sudo dnf5 install -y @virtualization
sudo systemctl enable --now libvirtd

Membuat VM dengan virt-install

Buat VM dari ISO
sudo virt-install \
  --name web01 \
  --vcpus 2 --memory 2048 \
  --disk path=/var/lib/libvirt/images/web01.qcow2,size=20 \
  --os-variant almalinux9 \
  --network bridge=br0 \
  --location /mnt/iso/AlmaLinux-9-latest-x86_64-dvd.iso

Info

Jaringan bridge (br0) yang kita buat di episode 9 memungkinkan VM mendapat IP dari jaringan fisik yang sama — bukan NAT internal. Inilah alasan mengapa bridge networking penting untuk virtualisasi yang realistis.

Mengelola VM dengan virsh

virsh adalah tool CLI manajemen libvirt:

Manajemen VM dasar
virsh list --all
virsh start web01
virsh console web01
virsh shutdown web01

Storage Pool dan Guest Grafis

Lihat storage pool dan undefine VM
virsh pool-list
virsh undefine web01
Install virt-manager
sudo dnf5 install -y virt-manager

Kesalahan Umum (Common Pitfalls)

  1. Menjalankan container sebagai root tanpa alasan. Podman rootless lebih aman — gunakan user biasa.
  2. Mengabaikan podman-compose untuk stack multi-container. Mengelola container satu per satu adalah resep kesalahan.
  3. Memakai NAT untuk VM production. Bridge networking memberi akses jaringan langsung yang lebih realistis.
  4. Lupa mengaktifkan libvirtd. KVM tidak berfungsi sampai daemon virtualization berjalan.
  5. Melewatkan Quadlet. Container yang perlu auto-restart dan log terpusat sebaiknya dibungkus unit systemd.

Penutup

Pada episode 18 ini kalian telah menjalankan beban kerja modern di AlmaLinux: container rootless dengan Podman, membangun image dengan Buildah, inspeksi registry dengan Skopeo, integrasi container ke systemd lewat Quadlet, orkestrasi dengan podman-compose, serta virtualisasi penuh KVM dengan virt-install, virsh, dan bridge networking.

Inti yang harus dibawa pulang:

  • Podman adalah engine container daemonless dan rootless — perintahnya mirip Docker.
  • Buildah membangun image, Skopeo memindahkan/memeriksa image — semua tanpa daemon.
  • Quadlet (*.container) mengubah container menjadi unit systemd.
  • podman-compose menjalankan stack multi-container dari file compose.yaml.
  • KVM + libvirt: virt-install membuat VM, virsh mengelolanya, br0 memberi jaringan langsung.
  • Image AlmaLinux resmi ada di Quay.io.

Dengan container dan VM berjalan, kalian siap membawanya ke cloud. Di episode 19 selanjutnya, kita akan membahas Cloud, WSL & Raspberry Pi Images — deployment GenericCloud dengan cloud-init di AWS, Azure, dan GCP, AlmaLinux di Windows WSL, serta image Raspberry Pi ARM64. Sampai jumpa!

Belajar AlmaLinux - Container & Virtualization (Podman, KVM) | Belajar AlmaLinux