Cara Mengurus Bekas Menggunakan Podman dan Skopeo di RHEL 8
- 1393
- 239
- Daryl Wilderman
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.tidak selamat]- Bahagian ini menentukan pendaftaran yang tidak melaksanakan penyulitan TLS i.e Pendaftaran yang tidak selamat. Secara lalai, tiada entri ditentukan.
- [Pendaftaran.blok] - Ini menghalang atau menafikan akses kepada pendaftaran yang ditentukan dari sistem tempatan anda. Secara lalai, tiada entri ditentukan.
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/redisCari pendaftaran untuk gambar kontena
Untuk mencari a Mariadb Imej kontena dijalankan.
# Pendaftaran Cari Podman.topi merah.io/MariadbCari 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-103Senarai 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
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-RHEL7Tarik 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 PodmanSenaraikan 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-103Memeriksa 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 ImejDapatkan 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-initPeriksa 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 redisRunning 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 646F2730318cJalankan 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-ReleaseSahkan 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 kontenaMenyenaraikan gambar kontena yang dijalankan
Untuk menyenaraikan bekas yang sedang berjalan, gunakan Podman PS arahan seperti yang ditunjukkan.
# Podman PSSenaraikan gambar kontena yang dijalankan
Untuk melihat semua bekas termasuk orang -orang yang telah keluar selepas berlari, gunakan arahan:
# podman ps -aLihat 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 redisJalankan 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.perkhidmatanSahkan 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
Pengeluaran ⇒ Ini menguji storan luaran yang berterusan.
Konfigurasikan penyimpanan berterusan untuk bekasMenghentikan 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-IDHentikan 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-3Keluarkan imej kontena
Untuk membersihkan semua bekas anda, jalankan arahan:
# podman rm -aKosongkan 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 -idKeluarkan 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.
- « 20 perkara yang perlu dilakukan setelah memasang ubuntu 20.10 'Gorilla Groovy'
- Cara memasang oh-my-zsh di ubuntu 20.04 »