Belajar Podman - Configuration & Storage
Episode 11 of 23

Belajar Podman - Configuration & Storage

Mengelola konfigurasi dan storage Podman: containers.conf, registries.conf, storage.conf, policy.json, registries.d, dan certs.d dengan rework lookup terpadu dan XDG_CONFIG_HOME di Podman 6, driver storage overlayfs, layout rootless versus rootful, serta perintah podman system.

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

Pendahuluan

Di episode 10 kalian mengelola container sebagai layanan systemd lewat Quadlet. Di balik semua itu ada lapisan yang selama ini berjalan senyap: konfigurasi dan storage. Episode 11 ini membedah file-file konfigurasi Podman — containers.conf, registries.conf, storage.conf, policy.json, registries.d, dan certs.d — termasuk rework besar di Podman 6 dengan lookup terpadu dan XDG_CONFIG_HOME, lalu berlanjut ke driver storage overlayfs dan layout rootless versus rootful.

Peta File Konfigurasi

Podman tidak memakai satu file pusat; konfigurasi tersebar di beberapa file dengan tanggung jawab berbeda:

FileFungsi
containers.confKonfigurasi runtime engine dan container
registries.confDaftar registry dan pencarian image
storage.confKonfigurasi driver dan layout storage
policy.jsonKebijakan verifikasi image
registries.dAturan signature per-registry
certs.dSertifikat kepercayaan per-registry

Keenamnya bisa didefinisikan per-user atau per-sistem. containers.conf, registries.conf, dan storage.conf menetapkan perilaku; policy.json, registries.d, dan certs.d menetapkan kepercayaan dan verifikasi. Membedakan kedua kelompok ini membantu kalian memutuskan file mana yang diubah untuk masalah tertentu.

containers.conf: Konfigurasi Runtime

File ini mengatur perilaku engine: default flag untuk podman run, batasan resource default, user namespace, dan banyak lagi:

Linux/etc/containers/containers.conf
[containers]
pids_limit = 2048
log_driver = "journald"
http_proxy = true
 
[engine]
cgroup_manager = "systemd"
events_logger = "journald"

Bagian [containers] mengatur default container — batas PID, driver log, penggunaan proxy — sementara [engine] mengatur runtime, cgroup manager, dan event. Nilai yang didefinisikan di sini menjadi default; flag CLI tetap bisa menimpanya. Lokasi umum: /etc/containers/containers.conf untuk sistem, dan containers.conf dalam XDG config untuk per-user.

Note

Di Podman 6, lookup konfigurasi terpadu dalam satu alur: file sistem dibaca, lalu file user containers.conf menggabungkan nilai di atasnya. Opsi tambahan bisa ditaruh sebagai drop-in di containers.conf.d — tanpa mengubah file utama, sehingga update paket tidak menimpa penyesuaian lokal.

registries.conf: Registry dan Pencarian

File ini menentukan registry mana yang boleh dipakai dan urutan pencarian saat kalian menjalankan podman pull nginx tanpa prefix domain:

Linux/etc/containers/registries.conf
[registries.search]
registries = ["docker.io", "quay.io"]
 
[registries.insecure]
registries = []
 
unqualified-search-registries = ["docker.io", "quay.io"]

unqualified-search-registries dan bagian [registries.search] menentukan registry yang dicoba saat nama image tidak berkualifikasi. [registries.insecure] mendaftarkan registry yang diizinkan tanpa TLS — sangat tidak disarankan untuk produksi, karena mengekspos image dan kredensial saat transit.

storage.conf: Driver dan Layout

File ini menentukan bagaimana image dan layer disimpan di disk:

Linux/etc/containers/storage.conf
[storage]
driver = "overlayfs"
graphroot = "/var/lib/containers/storage"
runroot = "/run/containers/storage"
 
[storage.options.overlay]
mount_program = "/usr/bin/fuse-overlayfs"

driver = "overlayfs" menetapkan driver storage default, graphroot lokasi penyimpanan lapisan dan image, runroot lokasi state sementara. mount_program memakai fuse-overlayfs dalam situasi rootless yang tidak punya akses penuh ke overlay kernel. Layout rootless ditaruh di bawah direktori home, bukan di sistem:

AspekRootfulRootless
Storage utama/var/lib/containers/storage~/.local/share/containers/storage
State runtime/run/containers/storage~/.local/share/containers/storage/...
Hak aksesRoot penuhUser namespace
MountOverlay kernelOverlay/fuse-overlayfs

Pemisahan ini memastikan dua user tidak saling mengganggu storage miliknya — satu konsekuensi langsung dari arsitektur daemonless yang dibahas di episode 5.

policy.json, registries.d, certs.d

Verifikasi image adalah lapisan keamanan penting. Ketiga file ini bekerja bersama untuk menentukan siapa yang dipercaya:

  • policy.json — kebijakan global verifikasi: apakah image harus ditandatangani, dari siapa, dan apa yang terjadi bila tidak cocok.
  • registries.d — aturan tambahan per-registry tentang lokasi kunci signature.
  • certs.d — sertifikat CA khusus untuk registry tertentu, misalnya registry internal perusahaan.
Linux/etc/containers/policy.json
{
  "default": [
    {
      "type": "insecureAcceptAnything"
    }
  ],
  "transports": {}
}

Contoh di atas menerima image apa pun — pengaturan default yang longgar. Kebijakan produksi yang sehat biasanya mengganti default dengan reject atau signedBy untuk registry penting, sehingga hanya image yang ditandatangani oleh kunci yang dipercaya yang bisa dijalankan. Detail selengkapnya akan dibahas bersama image signing di episode 14.

Rework Konfigurasi di Podman 6

Podman 6 membawa perubahan mendasar pada cara konfigurasi diproses:

  • Lookup terpaducontainers.conf, registries.conf, dan storage.conf dicari lewat satu alur konsisten yang sama untuk semua file.
  • XDG_CONFIG_HOME — konfigurasi per-user dicari dalam direktori sesuai standar XDG, bukan path lama yang tersebar.
  • Drop-in — opsi tambahan ditaruh sebagai file terpisah dalam direktori seperti containers.conf.d, memudahkan override tanpa menimpa file utama.

podman info adalah alat pertama untuk memverifikasi hasil lookup ini:

Memeriksa konfigurasi dan storage aktif
podman info
podman info --format "{{.Store.GraphDriverName}}"

podman info menampilkan konfigurasi efektif, storage driver, dan path yang sedang dipakai. Baris kedua menyaring hanya nama graph driver — cara cepat memastikan overlayfs benar-benar aktif.

Driver Storage Overlayfs

overlayfs adalah driver default dan paling efisien untuk container Linux. Ia memakai overlay mount kernel: setiap image berupa rangkaian layer hanya-baca, dan container memakai layer tulis tipis di atasnya. Saat container menulis file, overlayfs menyalin file yang diubah ke layer atas — menghindari duplikasi seluruh image. Trade-off utamanya adalah penggunaan ruang yang bisa membengkak bila banyak container menulis file besar; untuk itu podman system menyediakan alat bantu.

Perintah podman system

Kumpulan perintah podman system memberi kalian pandangan dan kendali atas keseluruhan storage dan resource:

Melihat pemakaian storage
podman system df
podman system prune
podman system reset
  • podman system df — menampilkan penggunaan disk per image, container, dan volume.
  • podman system prune — membersihkan image dan container yang tidak terpakai untuk merebut ruang.
  • podman system reset — menghapus semuanya: image, container, volume, dan konfigurasi local — kembali ke kondisi pabrik.
PerintahEfekTingkat risiko
podman system dfHanya membaca statistikAman
podman system pruneMenghapus yang tidak terpakaiSedang
podman system resetMenghapus seluruh data lokalTinggi

Caution

podman system reset menghapus semua image, container, dan volume — termasuk named volume yang berisi data. Pastikan data penting sudah di-backup sebelum perintah ini dijalankan, misalnya di mesin staging yang tidak dipakai untuk hal lain.

Penutup

Episode 11 membahas konfigurasi dan storage Podman: peta enam file konfigurasi, containers.conf untuk runtime, registries.conf untuk registry, storage.conf untuk storage, policy.json bersama registries.d dan certs.d untuk verifikasi, rework lookup terpadu dan XDG_CONFIG_HOME di Podman 6, driver overlayfs, perbedaan layout rootless dan rootful, serta perintah podman system.

Inti yang harus dibawa pulang:

  • Enam file konfigurasi punya peran masing-masing — bedakan file perilaku dan file kepercayaan.
  • Podman 6 memakai lookup terpadu dengan drop-in — ubah lewat containers.conf.d, bukan menimpa file utama.
  • Rootless dan rootful punya layout storage berbedapodman info menunjukkan mana yang aktif.
  • podman system reset adalah perintah paling destruktif — gunakan dengan kesadaran penuh.

Di episode 12 berikutnya, kalian menaikkan level dari satu container ke banyak container sekaligus: Compose dan orchestration — menjalankan docker-compose.yml dengan podman-compose, integrasi Podman Desktop, dan membuka socket Docker API lewat podman system service agar tooling docker-compatible tetap berfungsi.

Belajar Podman - Configuration & Storage | Belajar Podman