Menguasai perintah dasar pengelolaan container Podman: pull, run, ps, logs, exec, inspect, stop, rm, dan stats, memahami siklus hidup container dari create sampai restart, membaca exit code, serta membersihkan sisa container dengan prune.

Di episode 2 kalian memahami arsitektur: tanpa daemon, fork/exec, dan ekosistemnya. Episode 3 ini mengoper tangan kalian — semua perintah dasar yang akan dipakai setiap hari dalam mengelola container. Kalian akan menjalankan image, mengintip proses dan log, masuk ke dalam container, menghentikan dan menghapusnya, hingga membersihkan sisa-sisa yang tidak terpakai.
Perintah-perintah inti Podman bisa dikelompokkan sesuai pekerjaannya:
| Perintah | Fungsi |
|---|---|
podman run | Menjalankan container baru dari sebuah image |
podman pull | Mengunduh image dari registry |
podman ps | Menampilkan container yang berjalan |
podman logs | Menampilkan log container |
podman exec | Menjalankan perintah di dalam container yang berjalan |
podman inspect | Menampilkan detail metadata container atau image |
podman stop | Menghentikan container |
podman rm | Menghapus container |
podman stats | Menampilkan pemakaian resource container |
podman info | Menampilkan informasi lingkungan runtime |
Mulai dari mengambil image dan menjalankan container pertama:
podman pull nginx:latest
podman run -d --name web -p 8080:80 nginx:latestpodman pull mengambil image ke storage lokal; podman run -d --name web -p 8080:80 nginx:latest membuat container bernama web, menjalankannya di background, dan memetakan port 8080 host ke port 80 container.
Untuk melihat apa yang sedang berjalan dan mengintip isinya:
podman ps
podman ps -a
podman logs web
podman stats
podman exec -it web bashpodman ps menampilkan container yang sedang aktif. Tambahkan -a untuk menyertakan container yang sudah berhenti — berguna saat melacak container yang gagal. podman logs membuka log container, podman stats memantau pemakaian CPU dan memori, dan podman exec -it web bash membuka shell interaktif di dalam container untuk mengecek kondisi internalnya.
Saat butuh detail yang tidak muncul di podman ps — seperti mount, environment variable, atau status — gunakan inspect:
podman inspect webOutputnya berupa JSON lengkap. Kalian bisa mencari satu bagian saja dengan podman inspect --format dan expression Go template, atau cukup cari kata kuncinya di output. podman inspect juga bekerja untuk image, sehingga cocok dipakai sebagai sumber kebenaran saat membedah container maupun image.
Container punya siklus hidup yang jelas, dan Podman menyediakan perintah untuk tiap tahapnya:
| State | Perintah | Keterangan |
|---|---|---|
| Dibuat | podman create | Container dibuat tapi belum dijalankan |
| Berjalan | podman start | Memulai container yang sudah dibuat |
| Berjalan | podman restart | Menghentikan lalu memulai ulang |
| Berhenti | podman stop | Menghentikan secara graceful |
| Dihapus | podman rm | Menghapus container beserta filenya |
Perhatikan perbedaan run dan create: run menggabungkan create dan start dalam satu langkah, sedangkan create hanya menyiapkan container. Pola create lalu start berguna saat kalian ingin menyiapkan container terlebih dahulu, misalnya untuk dijadikan unit systemd di episode lanjutan.
Dua perintah penutup yang sering dipakai bersamaan:
podman stop web
podman rm web
podman stop -t 10 webpodman stop mengirim sinyal berhenti dan menunggu proses berhenti dengan anggun. Flag -t 10 memberi batas waktu tunggu 10 detik sebelum dipaksa. podman rm lalu menghapus container beserta filenya; untuk container yang masih berjalan, tambahkan -f agar dihentikan dulu lalu dihapus.
Setiap kali container berhenti, ia meninggalkan exit code. Podman meneruskan kode itu ke shell kalian:
| Exit Code | Arti |
|---|---|
| 0 | Proses berhasil |
| 125 | Kegagalan umum pada sisi Podman |
| 126 | Perintah di dalam container tidak bisa dieksekusi |
| 127 | Perintah tidak ditemukan |
| Lainnya | Exit code proses yang dijalankan di dalam container |
podman run --rm nginx:latest nginx -t
echo $?podman run --rm otomatis menghapus container setelah berhenti — praktis untuk sekali jalan. Baris echo di akhir blok di atas menampilkan exit code dari perintah sebelumnya, yang bisa kalian jadikan indikator keberhasilan di dalam skrip.
Container yang dihentikan tidak hilang — mereka menumpuk dan memakai ruang. Untuk membersihkannya:
podman container prune
podman system prunepodman container prune menghapus semua container yang berhenti; podman system prune membersihkan lebih luas — termasuk image yang tidak terpakai dan cache build. Jalankan dengan hati-hati, karena tidak bisa diundur.
Caution
podman system prune menghapus container berhenti dan image tanpa tag. Pastikan tidak ada yang masih kalian butuhkan sebelum menjalankannya, atau gunakan flag --filter untuk mempersempit cakupan.
Tip
Biasakan memberi nama container lewat --name seperti podman run --name web. Nama jauh lebih mudah dibaca daripada deretan ID acak di ps, logs, dan inspect — dan mencegah kalian salah target saat banyak container berjalan.
Episode 3 melatih otot kalian: mulai dari pull dan run, memantau dengan ps, logs, dan stats, mengintip lewat exec, membedah metadata dengan inspect, menghentikan dengan stop dan menghapus dengan rm, sampai memahami exit code dan membersihkan sisa dengan prune.
Inti yang harus dibawa pulang:
podman system prune menjaga storage tetap bersih.podman inspect adalah sumber kebenaran untuk metadata container.Episode 4 berikutnya fokus ke sisi image: mengambil dan mengirim image, menandai dengan tag, menyimpan dan memuat sebagai file, membongkar layer, hingga manifest multi-arsitektur.