Cara mengelola wadah menggunakan podman dan skopeo di rhel 8

Cara mengelola wadah menggunakan podman dan skopeo di rhel 8

Salah satu tantangan yang dihadapi pengembang di masa lalu adalah mendapatkan aplikasi untuk menjalankan dengan andal di berbagai lingkungan komputasi. Seringkali, aplikasi tidak berjalan seperti yang diharapkan atau mengalami kesalahan dan gagal sama sekali. Dan di situlah konsepnya wadah lahir.

Apa gambar wadah?

Wadah Gambar adalah file statis yang dikirimkan dengan kode yang dapat dieksekusi yang berjalan di lingkungan yang terisolasi. Gambar kontainer terdiri dari pustaka sistem, dependensi & pengaturan platform lain yang diperlukan oleh aplikasi untuk dijalankan di lingkungan yang beragam.

Linux topi merah Menyediakan satu set alat wadah yang berguna yang dapat Anda manfaatkan untuk bekerja secara langsung dengan wadah Linux menggunakan perintah Docker yang membutuhkan. Ini termasuk:

  • Podman - Ini adalah mesin wadah yang lebih sedikit daemon untuk menjalankan dan mengelola Oci wadah dalam mode root atau tanpa akar. Podman mirip dengan Buruh pelabuhan dan memiliki opsi perintah yang sama kecuali itu Buruh pelabuhan adalah daemon. Anda dapat menarik, menjalankan, dan mengelola gambar kontainer menggunakan podman dengan cara yang sama seperti Anda Buruh pelabuhan. Podman Dilengkapi dengan banyak fitur canggih, sepenuhnya terintegrasi dengan sistem, dan menawarkan dukungan namespace pengguna yang mencakup menjalankan wadah tanpa perlu pengguna root.
  • Skopeo: Ini adalah alat baris perintah yang digunakan untuk menyalin gambar kontainer dari satu registri ke yang lain. Anda dapat gunakan Skopeo Untuk menyalin gambar ke dan dari host tertentu serta menyalin gambar ke registri atau lingkungan kontainer lain. Selain menyalin gambar, Anda dapat menggunakannya untuk memeriksa gambar dari berbagai pendaftar dan menggunakan tanda tangan untuk membuat dan memverifikasi gambar.
  • Buildah: Ini adalah satu set alat baris perintah yang digunakan untuk membuat dan mengelola wadah Oci gambar menggunakan Buruh pelabuhan file.

Dalam artikel ini, kami akan fokus pada mengelola wadah menggunakan podman Dan Skopeo.

Mencari gambar kontainer dari registri jarak jauh

Itu Pencarian Podman Perintah memungkinkan Anda untuk mencari pendaftar jarak jauh yang dipilih untuk gambar kontainer. Daftar default pendaftar didefinisikan dalam pendaftar.conf file yang terletak di /etc/wadah/ direktori.

Pendaftar didefinisikan oleh 3 bagian.

  • [Daftar.mencari] - Bagian ini menentukan registrasi default itu podman dapat mencari gambar kontainer. Itu mencari gambar yang diminta di registri.mengakses.topi merah.com, registri.topi merah.io, Dan buruh pelabuhan.io pendaftar.
Pendaftar default
  • [Daftar.merasa tidak aman]- Bagian ini menentukan pendaftar yang tidak menerapkan enkripsi TLS i.E Daftar Registri yang tidak aman. Secara default, tidak ada entri yang ditentukan.
Pendaftar yang tidak aman
  • [Daftar.memblokir] - Ini memblokir atau menolak akses ke pendaftar yang ditentukan dari sistem lokal Anda. Secara default, tidak ada entri yang ditentukan.
Blok pendaftar

Sebagai biasa (non-root) Pengguna menjalankan perintah podman, Anda dapat mendefinisikan sendiri pendaftar.conf file di direktori home Anda ($ Rumah/.config/containers/registries.conf) untuk mengesampingkan pengaturan seluruh sistem.

Aturan saat menentukan pendaftar

Saat Anda menentukan pendaftar, perlu diingat hal -hal berikut:

  • Setiap registri harus dilampirkan dengan kutipan tunggal.
  • Pendaftar dapat ditentukan menggunakan nama host atau alamat IP.
  • Jika beberapa pendaftar ditentukan, maka mereka harus dipisahkan oleh koma.
  • Jika registri menggunakan port non -standar - baik port port TCP 443 untuk aman dan 80 untuk tidak aman, - nomor port harus ditentukan di samping nama registri e e.G. registri.contoh.com: 5566.

Untuk mencari registri untuk gambar kontainer menggunakan sintaks:

# Podman Search Registry/Container_image 

Misalnya, untuk mencari a Redis gambar di registri.topi merah.io Registry, Ambil perintah:

# Registry Pencarian Podman.topi merah.IO/REDIS 
Cari Registry untuk gambar kontainer

Untuk mencari a Mariadb Run Image Container.

# Registry Pencarian Podman.topi merah.io/mariadb 
Cari gambar wadah mariadb

Untuk mendapatkan deskripsi yang rumit tentang gambar wadah, gunakan --no-trunc opsi sebelum nama gambar wadah dari hasil yang Anda dapatkan. Misalnya, kami akan mencoba untuk mendapatkan deskripsi terperinci tentang gambar wadah mariadb seperti yang ditunjukkan:

# Pencarian Podman ---Trunc Registry.topi merah.IO/RHEL8/MARIADB-103 
Daftar Deskripsi Gambar Kontainer Mariadb

Menarik gambar wadah

Menarik atau mengambil gambar kontainer dari registri jarak jauh mengharuskan Anda mengotentikasi terlebih dahulu sebelum hal lain. Misalnya, untuk mengambil gambar wadah mariadb, masuk pertama ke registri redhat:

# Podman Login 

Berikan nama pengguna dan kata sandi Anda dan tekan 'MEMASUKI'Di keyboard Anda. Jika semuanya berjalan dengan baik, Anda harus mendapatkan pesan konfirmasi bahwa login ke registri berhasil.

Login berhasil! 

Sekarang, Anda dapat menarik gambar menggunakan sintaks yang ditampilkan:

# podman pull [:]/[/]: 

Itu mengacu pada host atau registri jarak jauh yang menyediakan gudang gambar wadah di TCP . Itu dan secara kolektif menentukan gambar wadah berdasarkan pada di registri. Akhirnya, Opsi Menentukan versi gambar kontainer. Jika tidak ada yang ditentukan, tag default - terbaru - digunakan.

Selalu disarankan untuk menambahkan pendaftar tepercaya, yaitu mereka yang memberikan enkripsi dan tidak mengizinkan pengguna anonim untuk menelurkan akun dengan nama acak.

Untuk menarik gambar mariadb, jalankan perintah:

# Podman Pull Registry.topi merah.IO/RHEL8/MARIADB-103 
  • Itu - registri.topi merah.io
  • Itu - RHEL8
  • Itu - Mariadb
  • Itu - 103
Tarik gambar mariadb

Untuk gambar wadah selanjutnya, tidak diperlukan logging lebih lanjut karena Anda sudah diautentikasi. Untuk menarik a Redis gambar kontainer, cukup jalankan:

# Podman Pull Registry.topi merah.IO/RHSCL/REDIS-5-RHEL7 
Tarik gambar wadah Redis

Daftar gambar kontainer

Setelah selesai menarik gambar, Anda dapat melihat gambar yang saat ini ada di host Anda dengan menjalankan perintah gambar podman.

# gambar podman 
Daftar gambar kontainer

Memeriksa gambar kontainer

Sebelum menjalankan wadah, selalu merupakan ide yang baik untuk menyelidiki gambar dan memahami apa yang dilakukannya. Itu Periksa podman Perintah mencetak lautan metadata tentang wadah seperti OS dan arsitektur.

Untuk memeriksa gambar, jalankan Periksa podman Perintah diikuti oleh ID gambar atau repositori.

# podman memeriksa ID gambar atau # podman memeriksa repositori 

Dalam contoh di bawah ini, kami sedang memeriksa Mariadb wadah.

# Podman memeriksa registri.topi merah.IO/RHEL8/MARIADB-103 
Memeriksa gambar wadah Mariadb

Untuk menarik metadata tertentu untuk wadah melewati --format Opsi diikuti oleh metadata dan identitas wadah (ID atau nama gambar).

Dalam contoh di bawah ini, kami mengambil informasi tentang arsitektur dan deskripsi wadah dasar RHEL 8 yang berada di bawah 'Label' bagian.

# podman inspect --format = '.Label.Arsitektur 'Id ID # Podman Inspect --format =' .Label.Deskripsi ID gambar 
Dapatkan info tentang arsitektur kontainer

Untuk memeriksa gambar jarak jauh dari registri lain, gunakan Skopeo memeriksa memerintah. Dalam contoh di bawah ini, kami sedang memeriksa gambar init rhel 8 yang dihosting di Buruh pelabuhan.

# Skopeo memeriksa Docker: // registri.topi merah.io/rhel8-beta/rhel-init 
Periksa gambar jarak jauh dari Docker Registry

Tagging gambar wadah

Seperti yang mungkin telah Anda catat, nama gambar biasanya bersifat generik. Misalnya, gambar Redis diberi label:

registri.topi merah.IO/RHSCL/REDIS-5-RHEL7 

Tagging gambar memberi mereka nama yang lebih intuitif untuk lebih memahami apa yang dikandungnya. Menggunakan Tag podman Perintah, Anda dapat membuat tag gambar yang pada dasarnya merupakan alias untuk nama gambar yang terdiri dari bagian yang berbeda.

Ini adalah:

Registry/Nama Pengguna/Nama: Tag 

Misalnya, untuk mengubah nama generik gambar Redis yang memiliki ID 646F2730318C , Kami akan menjalankan perintah:

# Podman Tag 646F2730318C Myredis 

Untuk menambahkan tag di akhir, tambahkan usus besar penuh diikuti oleh nomor tag:

# Podman Tag 646F2730318C Myredis: 5.0 

Tanpa menambahkan nomor tag, itu hanya akan diberikan atribut terbaru.

Setel nama untuk gambar wadah redis

Menjalankan gambar wadah

Untuk menjalankan wadah, gunakan Podman Run memerintah. Misalnya:

# podman run image_id 

Untuk menjalankan wadah secara diam -diam di latar belakang sebagai layanan daemon gunakan -D opsi seperti yang ditunjukkan.

# podman run -d image_id 

Misalnya, untuk menjalankan Redis gambar dengan ID 646F2730318C, Kami akan memohon perintah:

# podman run -d 646f2730318c 
Jalankan gambar wadah redis

Jika Anda menjalankan wadah berdasarkan sistem operasi seperti RHEL 8 gambar dasar, Anda bisa mendapatkan akses ke shell menggunakan -dia pengarahan. Itu -Saya opsi menciptakan sesi interaktif saat -T memunculkan sesi terminal. Itu --nama Opsi mengatur nama wadah ke mybash sementara itu ECBC6F53BBA0 ID gambar dari gambar dasar.

# podman run -it --name = mybash ecbc6f53bba0 

Setelah itu, Anda dapat menjalankan perintah shell apa pun. Dalam contoh di bawah ini, kami memverifikasi versi OS dari gambar kontainer.

# Cat /etc /OS-Release 
Verifikasi Versi OS Container Image OS

Untuk keluar dari wadah, cukup panggil perintah keluar.

# KELUAR 

Setelah wadah keluar, secara otomatis berhenti. Untuk memulai wadah lagi, gunakan Podman mulai Perintah dengan -ai bendera seperti yang ditunjukkan.

# podman start -ai mybash 

Sekali lagi, ini memberi Anda akses ke shell.

Mulai gambar kontainer

Mendaftar gambar kontainer yang berjalan

Untuk mendaftar saat ini menjalankan kontainer, gunakan Podman PS perintah seperti yang ditunjukkan.

# Podman PS 
Daftar gambar wadah yang menjalankan

Untuk melihat semua wadah termasuk yang telah keluar setelah berjalan, gunakan perintah:

# podman ps -a 
Lihat semua gambar kontainer

Konfigurasikan gambar kontainer ke Otomatis Mulai di bawah Layanan SystemD

Di bagian ini, kami fokus pada bagaimana wadah dapat dikonfigurasi untuk berjalan langsung pada sistem RHEL sebagai layanan SystemD.

Pertama, dapatkan gambar pilihan Anda. Dalam hal ini, kami telah menarik Redis Gambar dari Docker Hub:

# Podman Pull Docker.IO/REDIS 

Jika Anda memiliki selinux yang berjalan di sistem Anda, Anda perlu mengaktifkan container_manage_cgroup boolean untuk menjalankan kontainer dengan Systemd.

# setSebool -p container_manage_cgroup di 

Setelah itu, jalankan gambar wadah di latar belakang dan tetapkan ke nama gambar yang Anda sukai. Dalam contoh ini, kami telah menamai gambar kami redis_server dan memetakan port 6379 dari wadah ke kami RHEL 8 tuan rumah

# podman run -d --name redis_server -p 6379: 6379 redis 
Jalankan gambar wadah di latar belakang

Selanjutnya, kita akan membuat a Systemd file konfigurasi unit untuk redis di /etc/systemd/system/ direktori.

# vim/etc/systemd/system/redis-container.melayani 

Tempel konten di bawah ini ke file.

[Unit] description = redis container [service] restart = selalu execStart =/usr/bin/podman start -a redis_server execstop =/usr/bin/podman stop -t 2 redis_server [install] wantedby = local.target 

Simpan dan Keluar dari file.

Selanjutnya, konfigurasikan wadah untuk memulai secara otomatis saat bootup.

# Systemctl Mengaktifkan Redis-Container.melayani 

Selanjutnya, mulailah wadah dan verifikasi status berjalannya.

# systemctl mulai redis-container.Layanan # Systemctl Status Redis-Container.melayani 
Verifikasi status gambar kontainer

Konfigurasikan penyimpanan persisten untuk gambar wadah

Saat menjalankan wadah, lebih bijaksana untuk mengkonfigurasi penyimpanan eksternal yang persisten pada host. Ini memberikan cadangan jika kontainer macet atau dilepas secara tidak sengaja.

Untuk bertahan data, kami akan memetakan direktori yang terletak di host ke direktori di dalam wadah.

$ podman run -privileged -it -v/var/lib/containers/backup_storage:/mnt registry.topi merah.io/ubi8/ubi/bin/bash 

Itu --hak istimewa opsi dilewatkan saat Selinux diatur untuk menegakkan. Itu -v Opsi Menentukan volume eksternal yang terletak di host. Volume wadah di sini adalah /mnt direktori.

Setelah kami mengakses shell, kami akan membuat file sampel pengujian.txt dalam /mnt direktori seperti yang ditunjukkan.

$ echo "Ini menguji penyimpanan eksternal persisten"> /mnt /pengujian.txt 

Kami akan melakukannya KELUAR wadah dan periksa apakah ada file di penyimpanan eksternal yang berada di host

# Keluar # Cat/Var/Lib/Containers/Backup_Storage/Testing.txt 

KeluaranIni menguji penyimpanan eksternal yang persisten.

Konfigurasikan penyimpanan persisten untuk wadah

Menghentikan dan menghapus wadah

Setelah selesai menjalankan wadah, Anda dapat menghentikannya menggunakan Podman berhenti Perintah diikuti oleh container-id yang bisa Anda peroleh dari Podman PS memerintah.

# Podman Stop Container-ID 
Hentikan gambar wadah

Untuk menghapus wadah yang tidak Anda butuhkan lagi, pertama, pastikan Anda menghentikannya dan kemudian memohon Podman RM Perintah diikuti oleh ID atau nama kontainer sebagai opsi.

# Podman RM Container-ID 

Untuk menghapus beberapa kontainer saat giliran dalam satu perintah, tentukan wadah IDS dipisahkan oleh ruang.

# Podman RM Container-ID-1 Container-ID-2 Container-ID-3 
Hapus gambar wadah

Untuk menghapus semua wadah Anda, jalankan perintah:

# Podman RM -A 
Hapus semua wadah

Menghapus gambar

Untuk menghapus gambar, pertama, pastikan bahwa semua wadah yang dimuncang dari gambar dihentikan dan dihapus seperti yang dibahas dalam sub-topik sebelumnya.

Selanjutnya, lanjutkan dan jalankan podman -RMI Perintah diikuti oleh ID gambar seperti yang ditunjukkan:

# podman -rmi gambar -id 
Hapus gambar

Kesimpulan

Ini membungkus bab ini tentang mengelola dan bekerja dengan wadah di RHEL 8. Kami berharap panduan ini memberikan pemahaman yang layak tentang wadah dan bagaimana Anda dapat berinteraksi dan mengelolanya di RHEL menggunakan sistem podman Dan Skopeo.