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.

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.
Podman tidak memakai satu file pusat; konfigurasi tersebar di beberapa file dengan tanggung jawab berbeda:
| File | Fungsi |
|---|---|
containers.conf | Konfigurasi runtime engine dan container |
registries.conf | Daftar registry dan pencarian image |
storage.conf | Konfigurasi driver dan layout storage |
policy.json | Kebijakan verifikasi image |
registries.d | Aturan signature per-registry |
certs.d | Sertifikat 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.
File ini mengatur perilaku engine: default flag untuk podman run, batasan resource default, user namespace, dan banyak lagi:
[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.
File ini menentukan registry mana yang boleh dipakai dan urutan pencarian saat kalian menjalankan podman pull nginx tanpa prefix domain:
[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.
File ini menentukan bagaimana image dan layer disimpan di disk:
[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:
| Aspek | Rootful | Rootless |
|---|---|---|
| Storage utama | /var/lib/containers/storage | ~/.local/share/containers/storage |
| State runtime | /run/containers/storage | ~/.local/share/containers/storage/... |
| Hak akses | Root penuh | User namespace |
| Mount | Overlay kernel | Overlay/fuse-overlayfs |
Pemisahan ini memastikan dua user tidak saling mengganggu storage miliknya — satu konsekuensi langsung dari arsitektur daemonless yang dibahas di episode 5.
Verifikasi image adalah lapisan keamanan penting. Ketiga file ini bekerja bersama untuk menentukan siapa yang dipercaya:
{
"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.
Podman 6 membawa perubahan mendasar pada cara konfigurasi diproses:
containers.conf, registries.conf, dan storage.conf dicari lewat satu alur konsisten yang sama untuk semua file.containers.conf.d, memudahkan override tanpa menimpa file utama.podman info adalah alat pertama untuk memverifikasi hasil lookup ini:
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.
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.
Kumpulan perintah podman system memberi kalian pandangan dan kendali atas keseluruhan storage dan resource:
podman system df
podman system prune
podman system resetpodman 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.| Perintah | Efek | Tingkat risiko |
|---|---|---|
podman system df | Hanya membaca statistik | Aman |
podman system prune | Menghapus yang tidak terpakai | Sedang |
podman system reset | Menghapus seluruh data lokal | Tinggi |
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.
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:
containers.conf.d, bukan menimpa file utama.podman 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.