Cara mengelola wadah menggunakan podman dan skopeo di rhel 8
- 1483
- 219
- Ian Parker
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.
- [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.
- [Daftar.memblokir] - Ini memblokir atau menolak akses ke pendaftar yang ditentukan dari sistem lokal Anda. Secara default, tidak ada entri yang ditentukan.
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/REDISCari Registry untuk gambar kontainer
Untuk mencari a Mariadb Run Image Container.
# Registry Pencarian Podman.topi merah.io/mariadbCari 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-103Daftar 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
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-RHEL7Tarik 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 podmanDaftar 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-103Memeriksa 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 gambarDapatkan 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-initPeriksa 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 redisMenjalankan 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 646f2730318cJalankan 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-ReleaseVerifikasi 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 kontainerMendaftar gambar kontainer yang berjalan
Untuk mendaftar saat ini menjalankan kontainer, gunakan Podman PS perintah seperti yang ditunjukkan.
# Podman PSDaftar gambar wadah yang menjalankan
Untuk melihat semua wadah termasuk yang telah keluar setelah berjalan, gunakan perintah:
# podman ps -aLihat 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 redisJalankan 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.melayaniVerifikasi 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
Keluaran ⇒ Ini menguji penyimpanan eksternal yang persisten.
Konfigurasikan penyimpanan persisten untuk wadahMenghentikan 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-IDHentikan 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-3Hapus gambar wadah
Untuk menghapus semua wadah Anda, jalankan perintah:
# Podman RM -AHapus 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 -idHapus 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.
- « 20 hal yang harus dilakukan setelah menginstal Ubuntu 20.10 'Gorilla Groovy'
- Cara menginstal oh-my-zsh di ubuntu 20.04 »