Cara Mengurus Bekas Menggunakan Podman dan Skopeo di RHEL 8

Cara Mengurus Bekas Menggunakan Podman dan Skopeo di RHEL 8

Salah satu cabaran pemaju yang dihadapi pada masa lalu ialah mendapatkan aplikasi untuk dijalankan dengan pasti merentasi pelbagai persekitaran pengkomputeran. Sering kali, aplikasi tidak berjalan seperti yang diharapkan atau ditemui kesilapan dan gagal sama sekali. Dan di situlah konsep bekas telah lahir.

Apa itu gambar kontena?

Bekas Imej adalah fail statik yang dihantar dengan kod yang boleh dilaksanakan yang berjalan dalam persekitaran terpencil. Imej kontena terdiri daripada perpustakaan sistem, kebergantungan & tetapan platform lain yang diperlukan oleh aplikasi untuk dijalankan dalam pelbagai persekitaran.

Red Hat Linux Menyediakan satu set alat kontena berguna yang anda boleh memanfaatkan untuk bekerja secara langsung dengan bekas Linux menggunakan arahan Docker. Ini termasuk:

  • Podman - Ini adalah enjin kontena daemon kurang untuk menjalankan dan menguruskan Oci bekas dalam mod akar atau tanpa akar. Podman sama dengan Docker dan mempunyai pilihan arahan yang sama kecuali itu Docker adalah daemon. Anda boleh menarik, menjalankan, dan menguruskan imej kontena menggunakan Podman dengan cara yang sama seperti yang anda lakukan Docker. Podman Dilengkapi dengan banyak ciri canggih, disatukan sepenuhnya sistem, dan menawarkan sokongan ruang nama pengguna yang merangkumi bekas yang berjalan tanpa memerlukan pengguna root.
  • Skopeo: Ini adalah alat baris arahan yang digunakan untuk menyalin imej kontena dari satu pendaftaran ke yang lain. Anda boleh menggunakan Skopeo Untuk menyalin gambar ke dan dari hos tertentu serta menyalin imej ke pendaftaran atau persekitaran kontena lain. Selain daripada menyalin gambar, anda boleh menggunakannya untuk memeriksa imej dari pelbagai pendaftaran dan menggunakan tandatangan untuk membuat dan mengesahkan imej.
  • Buildah: Ini adalah satu set alat baris arahan yang digunakan untuk membuat dan menguruskan bekas Oci imej menggunakan Docker fail.

Dalam artikel ini, kami akan memberi tumpuan kepada menguruskan bekas menggunakan Podman dan Skopeo.

Mencari gambar kontena dari pendaftaran jauh

The Carian Podman Perintah membolehkan anda mencari pendaftaran jauh terpilih untuk imej kontena. Senarai lalai pendaftaran ditakrifkan dalam pendaftaran.Conf fail yang terletak di /etc/bekas/ direktori.

Pendaftaran ditakrifkan oleh 3 bahagian.

  • [Pendaftaran.cari] - Bahagian ini menentukan pendaftaran lalai yang Podman boleh mencari gambar kontena. Ia mencari imej yang diminta di Pendaftaran.akses.topi merah.com, Pendaftaran.topi merah.io, dan Docker.io pendaftaran.
Pendaftaran lalai
  • [Pendaftaran.tidak selamat]- Bahagian ini menentukan pendaftaran yang tidak melaksanakan penyulitan TLS i.e Pendaftaran yang tidak selamat. Secara lalai, tiada entri ditentukan.
Pendaftaran yang tidak selamat
  • [Pendaftaran.blok] - Ini menghalang atau menafikan akses kepada pendaftaran yang ditentukan dari sistem tempatan anda. Secara lalai, tiada entri ditentukan.
Blok pendaftaran

Sebagai biasa (bukan akar) Pengguna menjalankan arahan podman, anda boleh menentukan sendiri pendaftaran.Conf fail di direktori rumah anda ($ Rumah/.konfigurasi/bekas/pendaftaran.Conf) untuk mengatasi tetapan seluruh sistem.

Peraturan semasa menentukan pendaftaran

Semasa anda menentukan pendaftaran, ingatlah perkara berikut:

  • Setiap pendaftaran harus disertakan dengan petikan tunggal.
  • Pendaftaran boleh ditentukan menggunakan nama hos atau alamat IP.
  • Sekiranya pelbagai pendaftaran ditentukan, maka mereka harus dipisahkan oleh koma.
  • Jika pendaftaran menggunakan port bukan standard - sama ada pelabuhan tcp port 443 untuk selamat dan 80 untuk tidak selamat, - nombor port harus ditentukan bersama dengan nama pendaftaran e.g. Pendaftaran.Contoh.com: 5566.

Untuk mencari pendaftaran untuk imej kontena menggunakan sintaks:

# Pendaftaran Carian Podman/Container_image 

Contohnya, untuk mencari a Redis imej dalam Pendaftaran.topi merah.io Pendaftaran, memohon arahan:

# Pendaftaran Cari Podman.topi merah.io/redis 
Cari pendaftaran untuk gambar kontena

Untuk mencari a Mariadb Imej kontena dijalankan.

# Pendaftaran Cari Podman.topi merah.io/Mariadb 
Cari gambar kontena Mariadb

Untuk mendapatkan penerangan terperinci mengenai imej kontena, gunakan --Tidak-Trunc pilihan sebelum nama imej kontena dari hasil yang anda dapat. Sebagai contoh, kami akan cuba mendapatkan penerangan terperinci mengenai imej kontena MariaDB seperti yang ditunjukkan:

# Carian Podman-No-Trunc Registry.topi merah.IO/RHEL8/MariaDB-103 
Senarai Penerangan Gambar Kontena MariaDB

Menarik imej kontena

Menarik atau mengambil gambar kontena dari pendaftaran jauh memerlukan anda terlebih dahulu mengesahkan sebelum apa -apa lagi. Sebagai contoh, untuk mendapatkan imej kontena MariaDB, log masuk pertama ke Redhat Registry:

# Log masuk podman 

Berikan nama pengguna dan kata laluan anda dan tekan 'Masukkan'Pada papan kekunci anda. Sekiranya semuanya berjalan lancar, anda perlu mendapatkan mesej pengesahan bahawa log masuk ke pendaftaran berjaya.

Log masuk berjaya! 

Sekarang, anda boleh menarik imej menggunakan sintaks yang ditunjukkan:

# podman tarik [:]/[/]: 

The merujuk kepada tuan rumah atau pendaftaran terpencil yang menyediakan repositori imej kontena di TCP . The dan juga secara kolektif menentukan imej kontena berdasarkan di pendaftaran. Akhirnya, Pilihan Menentukan versi imej kontena. Sekiranya tidak ada yang ditentukan, tag lalai - terbaru - digunakan.

Selalu disyorkan untuk menambah pendaftaran yang dipercayai, iaitu yang memberikan penyulitan dan tidak membenarkan pengguna tanpa nama untuk menanam akaun dengan nama rawak.

Untuk menarik imej MariaDB, jalankan arahan:

# Podman Tarik Pendaftaran.topi merah.IO/RHEL8/MariaDB-103 
  • The - Pendaftaran.topi merah.io
  • The - RHEL8
  • The - Mariadb
  • The - 103
Tarik imej MariaDB

Untuk gambar kontena berikutnya, tidak ada lagi pembalakan yang diperlukan kerana anda sudah disahkan. Untuk menarik a Redis Imej kontena, hanya jalankan:

# Podman Tarik Pendaftaran.topi merah.IO/RHSCL/REDIS-5-RHEL7 
Tarik gambar kontena Redis

Menyenaraikan imej kontena

Sebaik sahaja anda selesai menarik imej, anda boleh melihat imej yang ada sekarang di hos anda dengan menjalankan arahan imej podman.

# Imej Podman 
Senaraikan imej kontena

Memeriksa imej kontena

Sebelum menjalankan bekas, selalu ada idea yang baik untuk menyiasat imej dan memahami apa yang dilakukannya. The Memeriksa podman Perintah mencetak laut metadata mengenai bekas seperti OS dan seni bina.

Untuk memeriksa gambar, jalankan Memeriksa podman arahan diikuti oleh id imej atau repositori.

# Podman Memeriksa ID Imej atau # Podman Memeriksa repositori 

Dalam contoh di bawah, kami memeriksa Mariadb bekas.

# Podman Memeriksa Pendaftaran.topi merah.IO/RHEL8/MariaDB-103 
Memeriksa gambar kontena Mariadb

Untuk menarik metadata tertentu untuk lulus bekas --format pilihan diikuti oleh metadata dan identiti kontena (ID imej atau nama).

Dalam contoh di bawah, kami mengambil maklumat mengenai seni bina dan perihalan bekas asas RHEL 8 yang berada di bawah 'Label'Seksyen.

# Podman Inspect --Format = '.Label.Senibina 'ID Imej # Podman Inspect --Format =' .Label.Penerangan 'ID Imej 
Dapatkan maklumat mengenai seni bina kontena

Untuk memeriksa imej terpencil dari pendaftaran lain, gunakan SKOPEO INSPECT perintah. Dalam contoh di bawah, kami sedang memeriksa imej RHEL 8 INIT yang dihoskan pada Docker.

# Skopeo Memeriksa Docker: // Pendaftaran.topi merah.io/rhel8-beta/rhel-init 
Periksa gambar jauh dari pendaftaran docker

Tagging Images Container

Seperti yang anda ketahui, nama imej biasanya bersifat generik. Sebagai contoh, imej Redis dilabel:

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

Imej penandaan memberi mereka nama yang lebih intuitif untuk lebih memahami apa yang mereka ada. Menggunakan tag podman perintah, anda boleh membuat tag imej yang pada dasarnya merupakan alias kepada nama imej yang terdiri daripada bahagian yang berbeza.

Ini adalah:

Pendaftaran/Nama Pengguna/Nama: Tag 

Contohnya, untuk menukar nama generik imej redis yang mempunyai ID 646F2730318C , Kami akan melaksanakan arahan:

# tag podman 646f2730318c myredis 

Untuk menambah tag pada akhir tambakan kolon penuh diikuti dengan nombor tag:

# Podman Tag 646F2730318c Myredis: 5.0 

Tanpa menambah nombor tag, ia hanya akan diberikan atribut yang terkini.

Tetapkan nama untuk gambar kontena redis

Running Images Container

Untuk menjalankan bekas, gunakan Podman Run perintah. Sebagai contoh:

# podman run image_id 

Untuk menjalankan bekas dengan senyap di latar belakang sebagai perkhidmatan daemon menggunakan -d pilihan seperti yang ditunjukkan.

# podman run -d image_id 

Contohnya, untuk menjalankan Redis gambar dengan ID 646F2730318C, Kami akan memanggil arahan:

# Podman Run -D 646F2730318c 
Jalankan gambar kontena Redis

Sekiranya anda menjalankan bekas berdasarkan sistem operasi seperti RHEL 8 imej asas, anda boleh mendapatkan akses ke shell menggunakan -ia arahan. The -i pilihan membuat sesi interaktif semasa -t Menanam sesi terminal. The --nama Pilihan menetapkan nama kontena ke mybash sementara itu ECBC6F53BBA0 ID gambar gambar asas.

# podman run -it --name = mybash ecbc6f53bba0 

Selepas itu, anda boleh menjalankan arahan shell. Dalam contoh di bawah, kami mengesahkan versi OS imej kontena.

# Cat /etc /OS-Release 
Sahkan versi OS Imej Container

Untuk keluar dari bekas, cuma gunakan perintah keluar.

# Keluar 

Setelah bekas itu keluar, ia berhenti secara automatik. Untuk memulakan bekas lagi, gunakan Podman bermula perintah dengan -ai bendera seperti yang ditunjukkan.

# podman start -ai mybash 

Sekali lagi, ini memberi anda akses ke cangkang.

Mulakan imej kontena

Menyenaraikan gambar kontena yang dijalankan

Untuk menyenaraikan bekas yang sedang berjalan, gunakan Podman PS arahan seperti yang ditunjukkan.

# Podman PS 
Senaraikan gambar kontena yang dijalankan

Untuk melihat semua bekas termasuk orang -orang yang telah keluar selepas berlari, gunakan arahan:

# podman ps -a 
Lihat semua gambar kontena

Konfigurasikan imej kontena ke Auto START di bawah Perkhidmatan Systemd

Dalam bahagian ini, kami memberi tumpuan kepada bagaimana bekas boleh dikonfigurasikan untuk dijalankan secara langsung pada sistem RHEL sebagai perkhidmatan sistemD.

Pertama, dapatkan gambar pilihan anda. Dalam kes ini, kami telah menarik Redis Imej dari Docker Hub:

# podman tarik docker.io/redis 

Sekiranya anda mempunyai selinux yang berjalan pada sistem anda, anda perlu mengaktifkan container_manage_cgroup boolean untuk menjalankan bekas dengan sistemd.

# setsebool -p container_manage_cgroup pada 

Selepas itu, jalankan imej kontena di latar belakang dan berikannya kepada nama gambar pilihan anda. Dalam contoh ini, kami telah menamakan gambar kami redis_server dan memetakan pelabuhan 6379 dari bekas ke kami RHEL 8 Tuan rumah

# podman run -d -nama redis_server -p 6379: 6379 redis 
Jalankan imej bekas di latar belakang

Seterusnya, kami akan membuat a sistemd fail konfigurasi unit untuk redis di /etc/Systemd/System/ direktori.

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

Tampal kandungan di bawah ke fail.

[Unit] Description = Redis Container [Service] Restart = Sentiasa execstart =/usr/bin/podman start -a redis_server execstop =/usr/bin/podman stop -t 2 redis_server [install] wanty = local.sasaran 

Simpan dan keluar dari fail.

Seterusnya, konfigurasikan bekas untuk memulakan secara automatik pada bootup.

# Systemctl Dayakan Redis-Container.perkhidmatan 

Seterusnya, mulakan bekas dan sahkan status berjalannya.

# Systemctl Mula Redis-Container.Perkhidmatan # Systemctl Status Redis-Container.perkhidmatan 
Sahkan status gambar kontena

Konfigurasikan penyimpanan berterusan untuk imej kontena

Semasa menjalankan bekas, berhemat untuk mengkonfigurasi storan luaran yang berterusan di tuan rumah. Ini memberikan sandaran sekiranya berlaku kontena atau dikeluarkan secara tidak sengaja.

Untuk meneruskan data, kami akan memetakan direktori yang terletak di tuan rumah ke direktori di dalam bekas.

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

The --istimewa pilihan diluluskan ketika Selinux ditetapkan untuk menguatkuasakan. The -v Pilihan Menentukan jumlah luaran yang terletak di tuan rumah. Jumlah kontena di sini adalah /mnt direktori.

Sebaik sahaja kami mengakses shell, kami akan membuat fail sampel ujian.txt di dalam /mnt direktori seperti yang ditunjukkan.

$ echo "Ujian ini Penyimpanan Luaran Berterusan"> /MNT /Ujian.txt 

Kami akan keluar bekas dan periksa sama ada fail itu wujud dalam storan luaran yang tinggal di tuan rumah

# keluar # kucing/var/lib/kontena/backup_storage/ujian.txt 

PengeluaranIni menguji storan luaran yang berterusan.

Konfigurasikan penyimpanan berterusan untuk bekas

Menghentikan dan mengeluarkan bekas

Sebaik sahaja anda selesai dengan menjalankan bekas anda, anda boleh menghentikannya menggunakan berhenti podman arahan diikuti oleh Container-ID yang boleh anda peroleh dari Podman PS perintah.

# Podman Stop Container-ID 
Hentikan imej kontena

Untuk membuang bekas yang anda tidak lagi perlukan, terlebih dahulu, pastikan anda menghentikannya dan kemudian memohon Podman RM arahan diikuti oleh id atau nama bekas sebagai pilihan.

# Podman RM Container-ID 

Untuk mengeluarkan pelbagai bekas dalam satu arahan, tentukan bekas ID dipisahkan oleh ruang.

# Podman RM Container-ID-1 Container-ID-2 Container-ID-3 
Keluarkan imej kontena

Untuk membersihkan semua bekas anda, jalankan arahan:

# podman rm -a 
Kosongkan semua bekas

Mengeluarkan imej

Untuk mengeluarkan imej, pertama, pastikan semua bekas yang dihasilkan dari imej dihentikan dan dikeluarkan seperti yang dibincangkan di sub-topik sebelumnya.

Seterusnya, teruskan dan jalankan podman -RMI Perintah diikuti oleh ID imej seperti yang ditunjukkan:

# podman -rmi image -id 
Keluarkan gambar

Kesimpulan

Ini membungkus bab ini mengenai menguruskan dan bekerja dengan bekas di RHEL 8. Kami berharap panduan ini memberikan pemahaman yang baik tentang bekas dan bagaimana anda dapat berinteraksi dan menguruskannya pada anda RHEL menggunakan sistem Podman dan Skopeo.