GNU/Linux >> Belajar Linux >  >> Linux

Tutorial Podman – Memulai Dengan Podman

Tutorial ini menjelaskan cara memulai Podman di sistem operasi Linux. Di akhir tutorial Podman ini, Anda akan mempelajari dasar-dasar Podman, seperti cara mencari dan mengunduh gambar, membuat wadah baru dari gambar, menjalankan wadah, menghapus wadah, dan membuat gambar Anda sendiri dari wadah dan banyak lagi.

Sebelum kita mulai menggunakan Podman, pastikan Anda telah menginstal Podman di mesin Linux Anda.

  • Apa Itu Podman Dan Cara Menginstal Podman Di Linux

Mulai Menggunakan Podman

Podman menyediakan antarmuka baris perintah (CLI) yang mirip dengan Docker mesin kontainer. Faktanya, Podman bertujuan untuk menjadi pengganti drop-in untuk klien buruh pelabuhan yang disediakan oleh Docker.

Perintah Podman dan Docker hampir sama. Anda cukup mengganti docker dengan podman di sebagian besar perintah buruh pelabuhan. Misalnya, docker run perintah menjadi podman run dan docker build menjadi podman build dan seterusnya.

Anda bahkan dapat membuat docker alias untuk podman seperti di bawah ini:

$ alias buruh pelabuhan=podman

Mulai sekarang, Anda dapat menggunakan keduanya docker dan podman perintah secara bersamaan. Misalnya, jika Anda menjalankan docker ps, secara otomatis akan mengeksekusi podman perintah ps. Transisi dari Docker ke Podman menjadi jauh lebih mudah!

1. Mendapatkan bantuan Podman

Hal pertama yang mungkin ingin Anda lakukan setelah menginstal aplikasi apa pun adalah melihat ke bagian bantuan mereka.

Untuk melihat manual bantuan Podman bersama dengan ist dari sub-perintah dan opsi umum yang tersedia, jalankan:

$ podman --help

Untuk mempelajari penggunaan sub-perintah apa pun, misalnya attach , cukup lakukan:

$ podman lampirkan --help

2. Telusuri gambar

Untungnya, gambar yang dibuat oleh Docker dan Podman kompatibel dengan standar OCI. Jadi Podman dapat mendorong dan menarik gambar dari pendaftar penampung seperti Docker Hub dan Quay.io .

Mari kita cari gambar Alpine Linux menggunakan perintah:

$ pencarian podman alpine

Seperti yang Anda lihat, Podman mencantumkan gambar Alpine dari hub Docker dan Quay.

Saat mengunduh gambar, Anda dapat memilih dari mana Anda ingin mendapatkannya.

Demikian pula, Anda dapat mencari gambar berdasarkan Arch Linux seperti di bawah ini:

$ podman search archlinux

Hub Docker dan Quay memiliki banyak jenis gambar yang berbeda. Baik itu aplikasi, atau sistem operasi, Anda akan menemukan image container yang dibuat sebelumnya dari registry ini.

3. Unduh gambar

Untuk tujuan panduan ini, saya akan mengunduh Redhat 8 Universal base image (UBI).

Untuk mengunduh gambar Redhat dengan Podman, jalankan:

$ podman tarik redhat/ubi8

Anda akan diminta untuk memilih penampung registri untuk mengunduh. Saya memilih hub Docker. Anda akan melihat panah kecil di depan registri yang dipilih.

? Silakan pilih gambar:registry.fedoraproject.org/redhat/ubi8:registri terbaru.access.redhat.com/redhat/ubi8:latest docker.io/redhat/ubi8:latest quay.io/redhat/ubi8:latest 

Gambar kontainer akan diunduh dari registri yang dipilih.

✔ docker.io/redhat/ubi8:latestMencoba menarik docker.io/redhat/ubi8:latest...Mendapatkan tanda tangan sumber gambar Menyalin gumpalan a50df8fd88fe selesai Menyalin gumpalan 1cadda38f72d selesai Menyalin config 0ced1c7c9b selesai Menulis manifes ke tujuan gambarMenyimpan tanda tangan 0ced1c98becfac67017dbb94cfac007b89951079b201c pra>

Anda dapat mengunduh dan menjalankan berbagai jenis gambar terlepas dari jenis distribusi yang Anda gunakan. Misalnya, Anda dapat mengunduh dan menggunakan gambar Alpine di host Fedora dan sebaliknya.

$ podman tarik alpine

Anda bahkan dapat mengunduh versi gambar tertentu. Perintah berikut mengunduh gambar Ubuntu versi 20.04:

$ podman tarik ubuntu:20.04

Karena kami menggunakan Podman sebagai pengguna non-root, semua gambar kontainer disimpan di bawah direktori home pengguna, yaitu $HOME/.local/share/containers/storage , alih-alih /var/lib/containers .

$ ls ~/.local/share/containers/storage/ cache libpod mount overlay overlay-containers overlay-images overlay-layers storage.lock tmp userns.lock

4. Lihat gambar

Untuk melihat daftar gambar yang diunduh secara lokal, jalankan:

$ gambar podman

Contoh keluaran:

TAG REPOSITORY ID GAMBAR DIBUAT SIZEdocker.io/library/ubuntu 20.04 1318b700e415 7 hari yang lalu 75.2 MBdocker.io/redhat/ubi8 terbaru 0ced1c7c9b23 13 hari yang lalu 234 MBdocker.io/library/alpine d4ff818577bc terbaru 5.87bc 6 minggu lalu pra>  

Seperti yang Anda lihat, output di atas mencantumkan nama repositori tempat kami mengunduh gambar, tag gambar, id gambar, kapan gambar dibuat dan ukuran gambar.

Bagi mereka yang bertanya-tanya, TAG mengacu pada snapshot tertentu dari gambar Ubuntu (Misalnya 20,04 dan terbaru). TAG hanyalah nama tambahan untuk gambar lokal. ID GAMBAR (Misalnya 1318b700e415 ) adalah pengidentifikasi unik gambar Ubuntu.

5. Jalankan container

Wadah dapat dimulai baik menggunakan tag gambar atau id gambar.

Mari kita mulai wadah baru dengan gambar Redhat UBI menggunakan tag:

$ podman run -it ubi8:latest

Perintah ini membuat wadah Redhat 8 menggunakan ubi8:latest image dan menghubungkan kontainer ke terminal sehingga Anda dapat berinteraksi dengannya.

Di sini,

  • -i : Memungkinkan kita membuat koneksi interaktif dengan mengambil standar di (STDIN) penampung.
  • -t :Menetapkan Terminal Pseudo baru di dalam kontainer Redhat 8.
  • ubi8:latest :Wadah Redhat 8 dengan TAG "terbaru".

Setelah memulai penampung, Anda akan secara otomatis mendarat di cangkang Penampung (Command prompt):

Apakah Anda memperhatikan nomor 607a288c810d pada keluaran di atas? Ini adalah ID Penampung.

Perhatian: Harap perhatikan bahwa ID Penampung dan ID gambar Docker berbeda .

Anda dapat mulai bermain dengan Container Anda sekarang.

Untuk kembali ke Terminal host Anda tanpa keluar dari Penampung, tekan CTRL+p diikuti oleh CTRL+q .

Sekarang Anda akan terlepas dari wadah dan dikembalikan ke konsol mesin host. Penampung akan tetap berjalan di latar belakang.

Untuk keluar dari wadah, cukup ketik exit dari konsol Penampung dan tekan tombol ENTER:

# keluar

Perintah ini akan mematikan Container yang sedang berjalan.

Jika ingin menjalankan container dengan IMAGE ID, cukup ganti image TAG (ubi8:latest) dengan image ID (0ced1c7c9b23) pada perintah sebelumnya:

$ podman run -it 0ced1c7c9b23

Ini akan memulai wadah Redhat 8.

6. Jalankan container di latar belakang

Anda juga dapat menjalankan Kontainer di latar belakang terlepas.

Untuk menjalankan Wadah dalam mode terpisah, kami menggunakan -d bendera:

$ podman run -it -d ubi8:latest

Saat kita menjalankan Container dalam mode detached, Podman akan menampilkan ID Container dalam output standar.

a4846b2454b1eb63e6d532b0f7ef4a05ca19f965caf9cd0d4a2ce17131a05e29

Mari kita verifikasi container yang sedang berjalan menggunakan perintah:

$ podman ps

Sekarang Kontainer berjalan di latar belakang.

Anda dapat melampirkannya seperti yang dijelaskan di bagian berikut.

7. Pasang dan lepas dari wadah

Seperti yang dinyatakan di bagian sebelumnya, Anda dapat melepaskan dengan aman dari Container yang sedang berjalan dengan menekan CTRL+p diikuti oleh CTRL+q . Ini akan memungkinkan Anda kembali ke Terminal host.

Untuk melampirkan ke Container lagi, pertama cari ID Container yang sedang berjalan atau namanya menggunakan podman ps perintah:

$ podman ps

Contoh keluaran:

PERINTAH GAMBAR ID PENAMPUNG DIBUAT NAMA PORT STATUS607a288c810d docker.io/redhat/ubi8:latest /bin/bash 2 jam yang lalu Naik 2 jam yang lalu cool_cannon

Di sini, 607a288c810d adalah ID Penampung.

Dan kemudian cukup ketik podman attach perintah diikuti oleh ID Penampung seperti di bawah ini:

$ podman lampirkan 607a288c810d

Anda juga dapat melampirkannya menggunakan nama Wadah seperti di bawah ini:

$ podman pasang cool_cannon

Untuk melepaskan dari Wadah, cukup tekan CTRL+p dan CTRL+q .

8. Lihat container yang sedang berjalan

Untuk menemukan atau membuat daftar Container yang sedang berjalan, ketik:

$ podman ps

Contoh keluaran:

PERINTAH GAMBAR ID PENAMPUNG NAMA PORT STATUS YANG DIBUAT SE783c0202b7d docker.io/library/alpine:latest /bin/sh 37 detik yang lalu Naik 38 detik yang lalu optimis_murdock

Ini hanya akan mencantumkan container yang sedang berjalan. Jika Anda ingin membuat daftar container yang sedang berjalan dan yang dihentikan, gunakan -a bendera.

$ podman ps -a

Contoh keluaran:

PERINTAH GAMBAR ID PENAMPUNG NAMA PORT STATUS YANG DIBUAT56c20497cbcd docker.io/redhat/ubi8:latest /bin/bash 3 jam yang lalu Keluar (0) 3 jam yang lalu wizardly_albattanid23672b15cff docker.io/redhat/ubi8:latest /bin/bash 3 jam yang lalu Keluar (0) 3 jam yang lalu nifty_merkle89b2c038e1ba docker.io/redhat/ubi8:latest /bin/bash 3 jam yang lalu Keluar (0) 2 jam yang lalu xenodochial_euler607a288c810d docker.io/redhat/ubi8:latest /bin/bash 2 jam yang lalu Keluar (0) Sekitar satu menit yang lalu cool_cannone783c0202b7d docker.io/library/alpine:latest /bin/sh 43 detik yang lalu Naik 43 detik yang lalu optimis_murdock

9. Hapus wadah secara otomatis setelah menutupnya

Anda mungkin ingin menguji sebuah Container dan cukup menghapusnya segera setelah Anda selesai dengan Container tersebut. Jika demikian, Anda dapat menghapus Wadah secara otomatis setelah menutupnya dengan menggunakan --rm bendera:

$ podman run -it --rm ubi8:latest

Setelah Anda keluar dari Penampung, itu akan dihapus secara otomatis.

10. Memulai dan menghentikan container

Seperti yang sudah dinyatakan, kita dapat membuat beberapa Wadah menggunakan gambar yang sama. Ini adalah salah satu keuntungan terbesar dari Container dibandingkan dengan mesin fisik atau virtual.

Untuk membuat beberapa Container baru, kita dapat menggunakan podman run perintah seperti yang dijelaskan dalam "5. Jalankan kontainer" bagian.

Untuk memulai (menghidupkan) Container yang ada, kita cukup melakukan:

$ podman mulai 

Demikian pula, kita dapat menghentikan (mematikan) perintah yang sedang berjalan dengan perintah:

$ podman berhenti 

Mari saya tunjukkan sebuah contoh, sehingga Anda akan lebih mengerti.

Pertama, temukan daftar semua Kontainer:

$ podman ps -a PERINTAH GAMBAR ID KONTAINER DIBUAT PORT STATUS NAMA 56c20497cbcd docker.io/redhat/ubi8:latest /bin/bash 2 hari yang lalu Keluar (0) 2 hari yang lalu wizardly_albattani d23672b15cff docker.io/redhat/ubi8:latest /bin/bash 2 hari yang lalu Keluar (0) 2 hari yang lalu nifty_merkle 89b2c038e1ba docker.io/redhat/ubi8:latest /bin/bash 2 hari yang lalu Keluar (0) 2 hari yang lalu xenodochial_euler 607a288c810d docker.io/redhat/ubi8:latest /bin/bash 2 hari yang lalu Keluar (0) 2 hari yang lalu cool_cannon e783c0202b7d docker.io/library/alpine:latest /bin/sh 2 hari yang lalu Keluar (0) 2 hari yang lalu optimistic_murdock 

Nama Kontainer ditampilkan di NAMES bagian (kolom terakhir) dari output di atas.

Saya akan memulai Wadah bernama wizardly_albattani menggunakan perintah:

$ podman mulai wizardly_albattani

Mari kita periksa apakah sudah dimulai:

$ podman ps CONTAINER ID IMAGE COMMAND NAMA PORT STATUS YANG DIBUAT56c20497cbcd docker.io/redhat/ubi8:latest /bin/bash 2 hari yang lalu Naik 7 detik yang lalu wizardly_albattani 

Ya, sudah terbit 7 detik yang lalu.

Untuk menghentikan Container, cukup lakukan:

$ podman berhenti wizardly_albattani

11. Tetapkan nama ke wadah

Jika Anda melihat lebih dekat ke output dari perintah sebelumnya, Podman memberikan nama acak setiap kali Anda memulai sebuah wadah. Jika Anda tidak menamai Kontainer Anda, Podman akan menamainya untuk Anda secara otomatis.

Lihat tangkapan layar berikut. Saya telah memulai Wadah yang sama dengan gambar yang sama dua kali. Setelah saya keluar dari wadah dan memulai kembali untuk kedua kalinya, itu mendapat nama baru meskipun saya menggunakan gambar yang sama.

Wadah mendapat nama baru setiap kali kami menutup dan memulainya setiap kali.

Namun, Anda dapat menetapkan nama statis ke wadah dengan --name tandai seperti di bawah ini:

$ podman run -it -d --name ostechnix_redhat ubi8:latest

Perintah di atas akan membuat menjalankan Container baru dalam mode terpisah dan menamakannya sebagai ostechnix_redhat .

Untuk melihat daftar Container yang sedang berjalan, kita lakukan:

$ podman ps

Contoh keluaran:

PERINTAH GAMBAR ID PENAMPUNG NAMA PORT STATUS YANG DIBUAT6fa78116dcb7 docker.io/redhat/ubi8:latest /bin/bash 4 detik yang lalu Naik 5 detik yang lalu ostechnix_redhat 

Apakah Anda memperhatikan nama Kontainer? Kami telah memberikan nama khusus (yaitu ostechnix_redhat ) ke Wadah.

12. Buat gambar khusus

Podman tidak hanya untuk mengunduh dan menjalankan Kontainer dari Gambar yang telah dikonfigurasi sebelumnya. Anda juga dapat membuat gambar khusus dari gambar yang ada.

Pertama, mulai Container yang sudah ada atau jalankan yang baru.

Saya akan membuat wadah Ubuntu baru:

$ podman run -it 1318b700e415

Sekarang Anda berada di dalam Container.

[dilindungi email]:/#

Cukup instal, perbarui, atau hapus aplikasi apa pun di Wadah.

Untuk tujuan panduan ini, saya akan menginstal server web Apache:

[email protected]:/# apt update
[email protected]:/# apt install apache2 -y
[email protected]:/# service apache2 start

Setelah selesai, lepaskan dari Penampung dan kembali ke terminal host dengan menekan CTRL+p dan CTRL+q .

Harap perhatikan bahwa Kontainer masih berjalan di latar belakang!

Sekarang, buat Gambar dari Wadah yang ada menggunakan perintah:

$ podman komit b871b0fd5810 ostechnix/ubuntu_apache

Di sini,

  • b871b0fd5810 - ID penampung Ubuntu.
  • ostechnix – Nama pengguna yang membuat wadah.
  • ubuntu_apache – Nama gambar yang dibuat oleh pengguna ostechnix.

Sekarang periksa apakah gambar baru dibuat dengan mencantumkan gambar yang tersedia:

$ gambar podman

Contoh keluaran:

REPOSITORY TAG ID GAMBAR UKURAN YANG DIBUATlocalhost/ostechnix/ubuntu_apache terbaru 6c9b2fb66400 25 detik yang lalu 222 MB docker.io/library/ubuntu 20.04 1318b700e415 10 hari yang lalu 75,2 MBdocker.io/redhat/ubi8 terbaru 0ced1c7c9b23 2 minggu yang lalu 234 MBdocker.io/library/alpine terbaru d4ff818577bc 7 minggu yang lalu 5,87 MB

Seperti yang Anda lihat pada output di atas, gambar baru bernama ubuntu_apache dibuat.

Mari kita mulai Wadah baru dengan gambar ini:

$ podman run -it --rm --name Apache_webserver -p 8080:80 localhost/ostechnix/ubuntu_apache

Di sini, saya menjalankan Container dengan Image yang baru dibuat pada langkah sebelumnya. Saya juga memetakan port lokal 8080 pada sistem lokal ke port 80 di dalam wadah.

Setelah Wadah dimulai, pastikan server web Apache mulai menggunakan perintah:

[email protected]:/# service apache2 start

Sekarang, buka browser Anda di sistem host Anda dan navigasikan ke http://localhost:8080 untuk memverifikasi apakah server web Apache berjalan di Container.

13. Lihat log kontainer

Untuk melihat semua yang Anda lakukan di dalam Container, Anda cukup memeriksa log Container menggunakan perintah:

$ podman mencatat apache_webserver

14. Hapus wadah

Pastikan Kontainer dihentikan:

$ podman berhenti ostechnix_redhat

Setelah menghentikan Container, hapus dengan perintah:

$ podman rm ostechnix_redhat

Demikian pula, hapus semua Kontainer satu per satu seperti yang ditunjukkan di atas.

Menghapus beberapa kontainer satu per satu bisa menjadi tugas yang membosankan jika Anda memiliki sejumlah besar Kontainer. Alih-alih menghapus satu demi satu, Anda dapat menghapus sekaligus. Hati-hati! Tidak ada cara untuk memulihkan Kontainer yang dihapus!

Untuk menghapus semua kontainer yang dihentikan sekaligus, jalankan saja:

$ pangkas wadah podman

Ketik "Y" untuk mengonfirmasi dan tekan ENTER untuk menghapus wadah.

PERINGATAN! Ini akan menghapus semua penampung yang tidak berjalan.Yakin ingin melanjutkan? [y/T] y 2124a1fbc85a6be7d516e747723129bd7bb9c39d3a54951c9a81407d30ded1ab54884f3375947026d4e87b99cb3a09e114c89120b101f5c8c1e614aca963975c56c20497cbcdd9599c2fa729277ecf679ac29f79a0b06af3ae1a135726465ba7607a288c810d2e605d9ba7590f8f7558ef5f96e87897a1cdde471ae9a74b36ad69bbd87b44cb6c9a582749f4ad010b6b273e65f9fe424058fdc0bc55b188d7e489b2c038e1baf6ac59f0da8e43a7efedc7ba73a18ed8d704c879ffdbc7eb7f28a4846b2454b1eb63e6d532b0f7ef4a05ca19f965caf9cd0d4a2ce17131a05e29aa14879baf0919323730539dd949231d5bb89ca4207dd36c02a741316e6d0f18b871b0fd5810f55e75bdd480d5fb34b09b0e293604f88896002a9368a607bf7ed23672b15cffc0a774227dc6b457a8bff5347073a112f6729d63ddf400f19dc7e783c0202b7d7a6664e731feeff4bdb57a79df79080046ed2b728df4bce789d2ebfd6210a6beedce43af0c41296e329d416128752ab603abd44c73117bf5dfd0 

15. Hapus gambar

Anda dapat menghapus Gambar yang tidak lagi diperlukan!

Daftar semua gambar yang diunduh dengan perintah:

$ gambar podman

Contoh keluaran:

TAG REPOSITORY ID GAMBAR DIBUAT UKURANlocalhost/ostechnix/ubuntu_apache terbaru 6c9b2fb66400 37 menit yang lalu 222 MBdocker.io/library/ubuntu 20.04 1318b700e415 10 hari yang lalu 75.2 MBdocker.io/redhat/ubi8 terbaru 0ced1c7c7c9b23 2 minggu yang lalu /alpine d4ff818577bc terbaru 7 minggu lalu 5,87 MB

Sekarang, hapus gambar baik menggunakan ID Gambar atau Nama, seperti di bawah ini:

$ podman rmi 6c9b2fb66400

Contoh keluaran:

Tidak ditandai:localhost/ostechnix/ubuntu_Apache:latestDihapus:6c9b2fb66400138738ad12643d8461fbbb859f33d3be3c35181bb9ee9b11748d

Demikian pula, hapus semua gambar lain yang tidak digunakan,

Perhatian: Anda tidak dapat menghapus Gambar yang sedang digunakan dengan menjalankan atau menghentikan Container.

Kesimpulan

Dalam tutorial Podman yang komprehensif ini, kami menyediakan 15 contoh praktis tentang cara memulai Podman di Linux. Jika Anda seorang developer, mempelajari Podman sangat penting untuk memajukan karir Anda. Pelajari cara menggunakan Podman secara menyeluruh. Ini sepadan dengan waktu Anda!


Linux
  1. Bagaimana Memulai Dengan Server Cloud FreeBSD

  2. Mulai dengan Server Cloud

  3. Memulai Magento di Debian 10

  1. Memulai NetworkManager di Linux

  2. Bagaimana Memulai Dengan Juju?

  3. Memulai Tasksel di Debian

  1. 10 cara untuk memulai dengan Linux

  2. Tutorial Istio:Memulai dengan Dasar-dasar Istio

  3. Mulailah dengan Lateks di Linux