Belajar Podman - Podman Machine & Desktop
Episode 19 of 23

Belajar Podman - Podman Machine & Desktop

Menjalankan Podman di macOS dan Windows lewat Podman Machine: memahami provider libvirt/QEMU, WSL2, dan Apple Virtualization, mengelola VM OS images dan upgrade-nya, serta memanfaatkan Podman Desktop untuk container management, kubernetes deployment, compose, dan ekstensi.

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

Pendahuluan

Di episode 18 kalian mengoptimalkan Podman dari sisi image dan storage: caching, multi-stage build, pruning, dan tuning overlayfs. Episode 19 ini berpindah dari mesin server ke mesin kerja kalian — laptop macOS atau Windows. Podman awalnya hanya untuk Linux, tapi lewat Podman Machine dan Podman Desktop, kalian bisa menjalankan container Podman di hampir semua platform dengan pengalaman yang nyaris sama dengan di server Linux.

Mengenal Podman Machine

Podman Machine adalah cara Podman menyediakan environment Linux di dalam virtual machine. Konsepnya sederhana: podman CLI di host mengelola sebuah VM Linux yang menjalankan container, lalu meneruskan perintah lewat protokol remote. VM ini secara default memakai image berbasis Fedora CoreOS yang sudah disiapkan tim Podman, lengkap dengan runtime container yang terkonfigurasi.

Perintah dasarnya sangat mudah diingat:

Siklus hidup Podman Machine
podman machine init
podman machine start
podman machine list
podman machine ssh
podman machine stop

podman machine init membuat VM baru, podman machine start menghidupkannya, podman machine list menampilkan semua VM beserta status dan resource-nya, podman machine ssh membuka shell di dalam VM, dan podman machine stop mematikannya. Ada juga podman machine set --rootful untuk berpindah antara mode rootless dan rootful, serta podman machine reset untuk menghapus dan memulai dari awal.

Machine Providers

Yang menentukan bagaimana VM itu berjalan adalah provider — lapisan yang menghubungkan podman machine dengan hypervisor di sistem operasi kalian. Podman menggunakan provider yang berbeda tergantung platform.

libvirt/QEMU (Linux dan server)

Di Linux, podman machine berjalan di atas libvirt yang mengelola QEMU sebagai hypervisor. Ini adalah jalur yang paling dekat dengan environment server: VM diberi akses hardware virtualisasi penuh dan dikelola sebagai domain libvirt. podman machine init --now langsung membuat dan menyalakan VM dalam satu perintah.

WSL2 (Windows)

Di Windows, Podman memanfaatkan WSL2 (Windows Subsystem for Linux 2). VM Podman dijalankan sebagai distribusi WSL, sehingga manajemen VM-nya dikelola oleh lapisan WSL Windows — tanpa perlu QEMU tambahan. Pengguna Windows cukup mengaktifkan WSL2, lalu podman machine init akan memakai distro WSL tersebut. Hasilnya proses yang ringan dan integrasi yang erat dengan Windows.

Apple Virtualization (macOS)

Di macOS, Podman menggunakan Apple Virtualization framework (Virtualization.framework) — kerangka kerja virtualisasi bawaan macOS. Tidak seperti Docker Desktop yang memakai hypervisor lama, Podman Machine di macOS memanfaatkan teknologi Apple sendiri, memberikan kinerja yang baik terutama pada mesin Apple Silicon (M1, M2, dan seterusnya).

ProviderPlatformHypervisorCatatan
libvirt/QEMULinuxQEMU/KVMPaling dekat dengan server, dikelola lewat libvirt
WSL2WindowsWSL2Menggunakan distro WSL, tanpa QEMU tambahan
Apple VirtualizationmacOSVirtualization.frameworkOptimal di Apple Silicon

Karena provider ditentukan otomatis berdasarkan platform, kalian umumnya tidak perlu memilih secara manual — tetapi memahami lapisan ini sangat membantu saat men-debug isu virtualisasi seperti masalah akselerasi hardware atau konflik hypervisor.

VM OS Images dan Upgrade

Setiap VM Podman memakai OS image — image virtual machine yang berisi sistem operasi dan runtime. Saat podman machine init, image diunduh dan disimpan secara lokal. Kalian bisa mengontrol spesifikasinya saat init:

Init VM dengan resource tertentu
podman machine init --cpus 4 --memory 4096 --disk-size 20
podman machine inspect

podman machine inspect menampilkan konfigurasi VM saat ini: jumlah CPU, memori, ukuran disk, serta jalur image yang digunakan. Isu klasik muncul ketika disk VM penuh atau VM menggunakan image yang terlalu lama. Untuk memperbarui VM ke image yang lebih baru, cara paling bersih adalah podman machine stop diikuti podman machine reset, lalu podman machine init ulang — atau memanfaatkan tombol upgrade yang disediakan Podman Desktop. Karena container dan volume di dalam VM tidak tersinkron otomatis ke luar VM, pastikan data penting kalian dipindahkan dulu sebelum reset.

Warning

VM Podman adalah environment yang terisolasi. Jika kalian menyimpan volume atau file di dalam VM (misalnya lewat podman machine ssh), data itu hilang saat podman machine reset. Simpan data di volume yang di-mount dari host, atau salin keluar sebelum melakukan reset.

Koneksi Remote ke Machine

Yang terjadi di balik layar saat kalian mengetik perintah podman di host adalah protokol remote: CLI mengirimkan perintah ke VM lewat koneksi yang terdaftar sebagai system connection. Setiap VM yang dibuat dengan podman machine init otomatis mendaftarkan satu connection — ini juga alasan mengapa pengalaman di laptop terasa sama dengan server Linux.

Kalian bisa melihat dan mengelola connection ini dengan perintah podman system connection:

Melihat connection yang tersedia
podman system connection list
podman system connection default podman-machine-default

podman system connection list menampilkan nama connection beserta target SSH-nya. Konsep yang sama dipakai untuk mengelola server remote secara umum (dipelajari saat API service di episode sebelumnya): kalian bisa menambahkan connection ke server Linux mana pun, lalu menjalankan podman dari laptop untuk mengelola container di server itu. Machine hanyalah salah satu bentuk connection — dengan VM yang dikelola otomatis oleh Podman, alih-alih server yang diatur manual.

Karena mekanismenya sama, semua fitur yang kalian pelajari sepanjang seri — pods, volumes, Quadlet, hingga observability — berjalan identik di dalam machine. VM Fedora CoreOS yang dipakai machine sudah menyertakan runtime yang lengkap, sehingga kalian tidak perlu menyiapkan apa pun di dalam VM.

Podman Desktop

Podman Desktop adalah aplikasi GUI open-source untuk mengelola Podman (dan juga Docker). Bagi yang baru memulai atau bekerja di laptop, ini menyediakan pengalaman visual yang nyaman tanpa menghafal semua perintah CLI.

Container Management

Dashboard Podman Desktop menampilkan container, pods, dan image dalam tampilan grafis. Kalian bisa menjalankan, menghentikan, menghapus, melihat log, dan membuka terminal container hanya dengan klik — tanpa menulis satu perintah pun. Tab Images memperlihatkan image yang tersedia, tag-nya, dan ukurannya.

Kubernetes Deployment

Salah satu kekuatan Podman Desktop adalah integrasinya dengan Kubernetes. Kalian bisa mengubah container yang berjalan menjadi Kubernetes YAML, melihat preview-nya, lalu menerapkannya ke cluster — misalnya cluster Kind atau Minikube yang terpasang sebagai ekstensi. Ini menjadikan Podman Desktop semacam jembatan visual dari container ke orchestration:

Contoh YAML yang dihasilkan Podman Desktop
apiVersion: v1
kind: Pod
metadata:
  name: myapp-pod
spec:
  containers:
    - name: myapp
      image: myapp:latest
      ports:
        - containerPort: 8080

Compose

Podman Desktop juga memahami project Compose. Kalian bisa membuka folder berisi docker-compose.yml atau podman-compose.yml, dan GUI akan membaca, menampilkan, dan menjalankan layanan-layanan di dalamnya. Ini sangat membantu saat mengembangkan stack multi-service tanpa bolak-balik ke terminal.

Ekstensi

Kekuatan terakhir Podman Desktop ada di ekosistem ekstensi. Lewat marketplace-nya, kalian bisa menambahkan integrasi untuk Kind, Minikube, Podman-compose, Docker Compose, hingga tool Kubernetes seperti OpenShift Local. Ekstensi ini memperluas kemampuan GUI tanpa mengubah inti Podman itu sendiri.

Penutup

Pada episode 19 ini, kalian memahami konsep Podman Machine sebagai VM Linux untuk menjalankan Podman di macOS dan Windows; membandingkan provider libvirt/QEMU, WSL2, dan Apple Virtualization; mengelola VM OS images dan upgrade-nya; serta memanfaatkan Podman Desktop untuk manajemen container, deployment Kubernetes, Compose, dan ekstensi.

Inti yang harus dibawa pulang:

  • Podman Machine adalah jembatan ke Linux — VM berbasis Fedora CoreOS yang dikelola lewat podman machine.
  • Provider mengikuti platform — libvirt/QEMU di Linux, WSL2 di Windows, Apple Virtualization di macOS.
  • Upgrade VM itu rutin — pantau disk dan image, lakukan reset dengan hati-hati karena data di VM tidak ikut tersimpan.
  • Podman Desktop melengkapi CLI — GUI untuk container, Kubernetes YAML, Compose, dan ekstensi.

Di episode 20 berikutnya, kita masuk ke fase observability: Observability & Operations — bagaimana memantau container dengan podman stats, mengikuti aktivitas lewat podman events, memasang healthcheck, serta men-debug masalah seperti networking rootless.

Belajar Podman - Podman Machine & Desktop | Belajar Podman