Pendahuluan
Podman adalah mesin kontainer untuk menjalankan dan mengelola kontainer OCI di Linux. RedHat mengembangkannya sebagai alternatif langsung dari Docker, platform manajemen kontainer terkenal yang memulai semuanya.
Tutorial ini akan membantu Anda memahami cara kerja Podman dengan menjelaskan sintaks perintahnya, dan memberikan contoh nyata tentang cara menggunakan perintah Podman.
Prasyarat
- Akses ke baris perintah/jendela terminal.
- Podman diinstal dan dikonfigurasi (lihat Cara Menginstal Podman di macOS atau Cara Menginstal Podman di Ubuntu).
Perintah Podman
Podman memiliki sintaks perintah yang sangat mirip dengan Docker. podman
utama perintah diikuti oleh perintah dan opsi manajemen Podman:
podman [command] [options]
Di bawah ini adalah tabel yang berisi semua perintah Podman:
Perintah | Deskripsi |
---|---|
attach | Lampirkan ke container yang sedang berjalan menggunakan nama atau ID-nya. |
auto-update | Gunakan kebijakan pembaruan otomatis penampung untuk memperbarui penampung. |
build | Gunakan petunjuk Containerfiles untuk membuat gambar. |
commit | Buat gambar baru yang mencerminkan perubahan yang dibuat pada penampung. |
container | Mengelola wadah Podman. |
cp | Menyalin file/direktori dari wadah ke sistem file lokal dan sebaliknya. |
create | Buat wadah tanpa memulainya. |
diff | Menampilkan perubahan yang dibuat pada wadah atau gambar. |
events | Tampilkan acara podman. |
exec | Jalankan proses di dalam container yang sedang berjalan. |
export | Buat arsip tar yang berisi konten sistem file container. |
generate | Buat keluaran terstruktur berdasarkan wadah, volume, atau pod. |
healthcheck | Kelola pemeriksaan kesehatan penampung. |
history | Tampilkan riwayat gambar. |
image | Kelola gambar. |
image | Mencantumkan gambar yang tersedia di penyimpanan lokal. |
import | Impor tarball gambar sistem file. |
info | Tampilkan info sistem podman. |
init | Inisialisasi container. |
inspect | Tampilkan container atau konfigurasi gambar. |
kill | Bunuh wadah. |
load | Muat gambar yang tersedia di arsip penampung. |
login | Login registri penampung. |
logout | Keluar dari registri penampung. |
logs | Melihat log penampung. |
machine | Mengelola VM Podman. |
manifest | Membuat dan mengelola daftar manifes dan indeks gambar. |
mount | Pasang sistem file root dari wadah atau daftar wadah yang saat ini dipasang. |
network | Mengelola jaringan Podman. |
pause | Jeda proses penampung. |
play | Mainkan wadah, volume, atau pod. |
pod | Mengelola pod Podman. |
port | Mencantumkan pemetaan port atau membuat daftar pemetaan khusus container untuk container. |
ps | Mencantumkan container yang sedang berjalan. |
pull | Menyalin gambar dari registri ke penyimpanan lokal. |
push | Dorong gambar dari mesin lokal ke tujuan yang ditentukan. |
rename | Ganti nama wadah. |
restart | Mulai ulang penampung. |
rm | Hapus penampung. |
rmi | Hapus gambar dari penyimpanan lokal. |
run | Jalankan perintah dalam wadah. |
save | Simpan gambar ke file lokal. |
search | Cari gambar di registri. |
secret | Manipulasi rahasia. |
start | Memulai penampung. |
stats | Menampilkan statistik penggunaan sumber daya. |
stop | Hentikan penampung. |
system | Mengelola sistem Podman. |
tag | Tetapkan nama untuk gambar lokal. |
top | Tampilkan proses yang berjalan dalam wadah. |
unmount | Lepaskan sistem berkas root dari sebuah wadah. |
unpause | Membatalkan jeda proses penampung. |
unshare | Luncurkan proses di ruang nama pengguna baru. |
untag | Hapus tag dari gambar lokal. |
version | Melihat informasi versi. |
volume | Mengelola volume penampung. |
wait | Tunggu wadah berhenti. |
Tutorial Podman
Meskipun Podman pada dasarnya adalah mesin kontainer - dirancang untuk membuat dan menjalankan kontainer OCI, pengguna juga dapat menggunakan podman
perintah untuk mengelola gambar kontainer.
Bagian berikut menjelaskan cara menggunakan Podman untuk membuat dan memanipulasi gambar, wadah, dan pod.
Melihat Manual Bantuan Podman
Anda dapat mereferensikan dokumentasi Podman dengan cepat menggunakan baris perintah. Untuk melihat podman
. yang tersedia perintah di terminal Anda, ketik:
podman help
Untuk melihat manual Podman lengkap, gunakan perintah man:
Gambar Podman
Pembuatan dan pengelolaan gambar di Podman dilakukan dengan Buildah, alat pembuatan gambar yang menggunakan antarmuka coreutils tingkat rendah. Saat pengguna menjalankan podman
perintah yang terkait dengan gambar, Podman memanggil Buildah untuk melakukan tindakan.
Bagian berikut menunjukkan beberapa perintah manajemen gambar yang penting.
Menelusuri Gambar
Cari registry untuk gambar yang tersedia menggunakan search
memerintah.
podman search [search-term]
Batasi jumlah hasil dengan --limit
pilihan. Misalnya, untuk menghasilkan tiga hasil untuk "sento" istilah pencarian, ketik:
podman search --limit 3 centos
Periksa Gambar
Sebelum menarik gambar Podman, adalah praktik yang baik untuk memeriksanya. Gunakan podman inspect
perintah dan sistem mengeluarkan metadata gambar, seperti ukuran file, arsitektur, OS, dll.
podman inspect [repository or image ID]
Gunakan --format
opsi dengan podman inspect
perintah untuk mendapatkan metadata tertentu. Pada contoh di bawah, perintah hanya mengembalikan deskripsi gambar:
podman inspect --format=’{{.Labels.description}}’ [image ID]
Mengunduh Gambar
Menarik gambar dari repositori online dilakukan menggunakan podman pull
memerintah. Sintaksnya adalah:
podman pull [registry/image]
Contoh mengilustrasikan pengambilan gambar dari fedoraproject.org registri:
Menjalankan Gambar
Jalankan gambar Podman dengan podman run
:
podman run [image]
Jika gambar tidak tersedia secara lokal, Podman menariknya dari registri online dan kemudian menjalankannya sebagai wadah.
Melihat Gambar
podman images
sub-perintah digunakan untuk membuat daftar gambar yang tersedia secara lokal:
podman images
Gunakan opsi untuk mempersempit hasil pencarian. --filter
opsi menyaring output berdasarkan kondisi yang Anda berikan. Misalnya, perintah berikut mencari semua gambar yang mengandung "redhat" atas nama:
podman images --filter reference=redhat
Membuat Gambar Kustom
Untuk membuat gambar kustom dengan Podman, Anda memerlukan file docker atau file container. File-file ini berisi instruksi yang digunakan alat Buildah untuk membuat gambar.
Membangun file dilakukan dengan podman build
memerintah. Misalnya, untuk membuat gambar dari direktori yang berisi skrip instruksi, jalankan perintah berikut:
podman build .
Buildah mengumpulkan konteks file yang diperlukan dan membuat gambar.
Menghapus Gambar
podman rmi
perintah digunakan untuk menghapus gambar dari penyimpanan lokal. Sebelum menghapus gambar Podman, pastikan semua wadah terkait telah dihentikan dan dihapus.
Hapus gambar dengan menggunakan podman rmi
perintah diikuti dengan nama gambar atau ID:
podman rmi [image-name-or-id]
Keluaran mengonfirmasi bahwa gambar telah dihapus.
Wadah Podman
Membuat dan mengelola container adalah fungsi utama Podman. Temukan beberapa perintah pengelolaan container yang paling umum di bagian di bawah ini.
Menjalankan Kontainer
podman run
perintah memiliki fungsi yang sama dengan docker run. Opsi yang mengikuti perintah bergantung pada jenis wadah yang dijalankan. Contoh di bawah mengilustrasikan menjalankan httpd misalnya, menggunakan gambar yang tersedia di docker.io
penyimpanan:
podman run -p 8080:80/tcp docker.io/library/httpd
Perintah menjalankan container dan menampilkan command promptnya.
Keluar dari prompt penampung dengan menekan Ctrl + C . Perintah ini akan keluar dari container.
Menjalankan Kontainer di Latar Belakang
Untuk melewati prompt container dan menjalankan container di latar belakang, gunakan sintaks berikut:
podman run -dt -p 8080:80/tcp docker.io/library/httpd
Jika container berhasil dimulai, output dari perintah akan menampilkan ID panjang container.
Memasang ke Wadah
Masukkan wadah dengan podman attach
perintah:
podman attach [container-name-or-id]
Contoh menunjukkan melampirkan ke wadah Alpine Linux yang sedang berjalan menggunakan ID wadah.
Melihat Menjalankan Container
Lihat penampung yang sedang berjalan dengan ps
perintah:
podman ps
Keluaran perintah menunjukkan daftar yang berisi informasi dasar tentang menjalankan container.
Otomatis Menghapus Kontainer Setelah Menutup
Gunakan --rm
opsi dengan podman run
untuk menghapus penampung secara otomatis:
podman run --rm -dt -p 8080:80/tcp alpine:latest
Memulai dan Menghentikan Kontainer
Gunakan start
dan stop
perintah untuk memulai dan menghentikan container yang ada.
podman start [container-id]
Keluaran menunjukkan ID penampung.
podman stop [container-id]
ID penampung yang dihentikan akan ditampilkan.
Menetapkan Nama ke Wadah
Anda dapat memberi nama container yang sedang berjalan menggunakan opsi --name
dengan podman run
memerintah. Misalnya, untuk memberi nama wadah Alpine Linux, gunakan perintah berikut:
podman run --name AlpineTest -dt -p 8080:80/tcp alpine:latest
Gambar di bawah ini menunjukkan bahwa podman run
berhasil. Podman ps
daftar perintah yang menjalankan wadah Podman, dan namanya terlihat di NAMES
kolom.
Melihat Log Kontainer
Tampilkan log kontainer pada saat eksekusi dengan podman logs
perintah.
podman logs [container-name-or-id]
Gunakan -l
tandai untuk menampilkan log untuk wadah terbaru.
Menghapus Kontainer
Untuk menghapus container Podman, pastikan terlebih dahulu container tersebut telah dihentikan. Kemudian, gunakan podman rm
perintah diikuti dengan nama atau ID container.
podman rm [container-name-or-id]
Contoh di bawah ini menunjukkan penghapusan AlpineTest wadah.
Untuk menghapus penampung yang berjalan atau tidak dapat digunakan, tambahkan -f pilihan.
podman rm -f [container-name-or-id]
Untuk menghapus beberapa container sekaligus, buat daftar ID container yang dipisahkan dengan spasi:
podman rm [container-1-id container-2-id container-3-id]
Podman Pod
Pod adalah grup container yang berbagi resource. Podman Pod adalah fitur yang membedakan Podman dengan Docker. Bagian selanjutnya mengilustrasikan beberapa operasi pod yang umum di Podman.
Mencantumkan Pod
Gunakan perintah di bawah ini untuk membuat daftar semua pod yang tersedia di sistem:
podman pod ls
Daftar tersebut menunjukkan ID pod, nama, status, waktu pembuatan, ID infra, dan jumlah kontainer yang dikandungnya.
Membuat Pod Kosong
Buat pod kosong di Podman menggunakan sintaks berikut:
podman pod create
Outputnya menunjukkan ID dari pod yang baru dibuat.
Menambahkan Kontainer ke Pod
Untuk menambahkan wadah ke pod, gunakan --pod
label dengan docker run
:
podman run [options] --pod [pod-name-or-id] [image]
Pada contoh di bawah ini, container Alpine Linux diberikan ke pod dengan ID e06ed089b454 :
Membuat Pod dengan Container
Podman dapat membuat container dan menambahkannya ke pod baru dalam satu podman run
memerintah. Sintaksnya mencakup --pod
label:
podman run [options] --pod new:[pod-name] [image]
Contoh di bawah menjalankan container dengan alpine:latest
image dan menambahkannya ke pod baru bernama AlpineTest :
podman pod ls
keluaran perintah menunjukkan pod baru dengan dua kontainer.
Memulai, Menghentikan, dan Menghapus Pod
Mulai pod menggunakan perintah berikut:
podman pod start [pod-name-or-id]
Untuk menghentikan pod, jalankan:
podman pod stop [pod-name-or-id]
Untuk menghapus pod yang dihentikan dan wadahnya, gunakan:
podman pod rm [pod-name-or-id]
Untuk menghentikan dan menghapus container yang sedang berjalan lalu mengeluarkan pod, gunakan -f
pilihan:
podman pod rm -f [pod-name-or-id]
Untuk menghapus beberapa Pod yang dihentikan dengan satu perintah, buat daftar ID Pod yang dipisahkan dengan spasi:
podman pod rm -f [pod1-id pod2-id pod3-id]
Podensi Masalah Podman dan Cara Mengatasinya
Bagian ini mencantumkan beberapa masalah umum Podman dan memberikan solusi.
Tidak Dapat Mengekspos Port yang Diistimewakan
Podman memungkinkan pengguna non-root untuk menjalankan container. Namun, mereka terbatas untuk meneruskan hanya ke port yang tidak memiliki hak istimewa. Jika Anda mencoba meneruskan ke port yang diistimewakan sebagai pengguna non-root, Anda akan menerima kesalahan berikut:
Solusi untuk masalah ini adalah memilih port yang tidak memiliki hak istimewa atau menjalankan perintah menggunakan sudo.
Masalah pencarian podman
Masalah umum lainnya adalah podman search
perintah mengembalikan output kosong.
Masalah ini biasanya terkait dengan /etc/containers/registries.conf
mengajukan. Buka file dalam editor teks:
sudo nano /etc/containers/registries.conf
Gulir ke bagian bawah file dan pastikan Podman memiliki pendaftar untuk dicari.
Jika Anda tidak memiliki registry yang terdaftar dalam file, Anda dapat menambahkan registry yang umum, seperti RedHat, Fedora, dan Docker, dengan menggunakan sintaks berikut:
unqualified-search-registries=["registry.access.redhat.com", "registry.fedoraproject.org", "docker.io"]
Simpan file. podman search
daftar harus diisi dengan hasil dari pendaftar online yang terdaftar.
Kesalahan:konfigurasi yang disediakan tidak valid
Saat menambahkan kontainer ke pod, pesan berikut mungkin muncul:
Error: invalid config provided: published or exposed ports must be defined when the pod is created: network cannot be configured when it is shared with a pod
Masalah ini terjadi saat Anda mencoba menambahkan wadah dengan port yang tidak ditentukan pada pembuatan pod. Saat ini, Podman tidak mengizinkan ini.