GNU/Linux >> Belajar Linux >  >> Cent OS

Cara menginstal dan menggunakan Podman di Rocky Linux/Alma Linux/Centos 8

Podman melengkapi Buildah dan Skopeo dengan menawarkan pengalaman yang mirip dengan baris perintah Docker:memungkinkan pengguna menjalankan container mandiri (tidak diatur). Dan Podman tidak memerlukan daemon untuk menjalankan container dan pod, jadi kita dapat dengan mudah mengucapkan selamat tinggal pada daemon besar. Tidak ada daemon di latar belakang yang melakukan sesuatu, dan ini berarti Podman dapat diintegrasikan ke dalam layanan sistem melalui systemd .

Dalam panduan ini kita akan mempelajari cara menginstal Podman di Rocky Linux/Alma Linux/Centos 8. Posting ini juga berfungsi untuk turunan RHEL 8 seperti Oracle Linux.

Pos terkait

  • Cara menginstal dan menggunakan Podman di Debian 11
  • Cara menginstal dan menggunakan Podman di Fedora 34/35
  • Cara menginstal dan menggunakan Podman di OpenSUSE Leap 15.3
  • Cara menginstal dan mengkonfigurasi buruh pelabuhan Di Rocky Linux/Centos 8
  • Memulai Menulis Docker Dengan Contoh
  • Docker sebagai agen build – Jalankan build Jenkins di Docker

Prasyarat

Untuk mengikuti, pastikan Anda memiliki yang berikut:

  • Linux Rocky/Centos 8 yang diperbarui
  • Akses root atau Pengguna dengan akses sudo
  • Akses ke internet

Daftar isi

  1. Memastikan bahwa server selalu mutakhir
  2. Memasang podman
  3. Contoh baris perintah
  4. Jalankan container persisten postgres
  5. Mengelola container sebagai layanan sistem melalui systemd dan Podman

1. Memastikan bahwa server sudah diperbarui

Gunakan perintah ini untuk memastikan bahwa paket server kami diperbarui

sudo dnf update -y 

Biarkan kami memastikan paket umum telah diinstal

sudo dnf install -y vim 

2. Memasang Podman

Podman tersedia di repo AppStream default untuk CentOS 8 dan Stream. Instal menggunakan perintah ini:

sudo dnf install -y podman 

Perintah ini akan menginstal Podman dan juga dependensinya: atomic-registriesrunCskopeo-containers , dan kebijakan SELinux.

Itu saja. Sekarang kita bisa bermain dengan Podman.

3. Contoh baris perintah

Mari kita jelajahi menjalankan Rocky Linux Container menggunakan podman.

Di buruh pelabuhan kita akan menggunakan perintah ini untuk menjalankan wadah linux yang berbatu:

docker run -it rockylinux/rockylinux:8.4 sh

Ini akan gagal karena tidak ada docker perintah di Server Rocky Linux saya. Kita bisa mengganti buruh pelabuhan dengan podman:

podman run -it rockylinux/rockylinux:8.4 sh 

Mari kita jalankan beberapa perintah untuk mengonfirmasi bahwa itu berfungsi seperti yang diharapkan:

$ podman run -it rockylinux/rockylinux:8.4 dan docker.io/rockylinux/rockylinux:8.4Mencoba menarik docker.io/rockylinux/rockylinux:8.4...Mendapatkan tanda tangan sumber gambar Menyalin gumpalan 1b474f8e669 selesaiMenyalin konfigurasi 333da17614 selesaiMenulis manifes ke tujuan gambarMenyimpan tanda tangansh-4.4# ps ax PID TTY STAT TIME COMMAND 1 pts/0 Ss 0:00 sh 6 pts/0 R+ 0:00 ps axsh-4.4# exitexit 

Untuk memeriksa status container gunakan podman ps perintah

$ podman ps -aCONTAINER ID IMAGE COMMAND NAMA PORT STATUS YANG DIBUAT5f81814c698e docker.io/rockylinux/rockylinux:8.4 sh 3 menit yang lalu Keluar (0) 3 menit yang lalu kompeten_pasteur 

Untuk menghapus wadah, gunakan podman rm :

$ podman rm 5f81814c698e5f81814c698ef09484c66d4427fda5de21c4dca1766a67ee108d256117460d71$ podman imagesREPOSITORY TAG ID GAMBAR DIBUAT UKURANdocker.io/rockylinux/b633[rockylinux $14] ~rockylinux 8.4633dalinux 8.4 rockylinux/rockylinux:8.4 Dihapus:333da17614b642a228c30edcb2bddfdf17b2d713ae71b7930c44b714ff8b92e7

Untuk membuat daftar gambar:

$ podman imagesREPOSITORY TAG ID GAMBAR DIBUAT SIZEdocker.io/rockylinux/rockylinux 8.4 333da17614b6 4 bulan lalu 234 MB 

Kita dapat menghapus gambar menggunakan gambar podman image rm perintah:

$ gambar podman rm rockylinux/rockylinuxUntagged:docker.io/rockylinux/rockylinux:8.4Dihapus:333da17614b642a228c30edcb2bddfdf17b2d713ae71b7930c44b714ff8b92e7 

Dari penjelasan di atas, kita dapat mengonfirmasi bahwa perintah podman menggunakan sintaks yang sama dengan docker

Jalankan wadah persisten Postgres

Selanjutnya, mari kita jelajahi bagaimana kita dapat menjalankan wadah persisten. Dalam contoh ini, kita akan menjalankan container Postgres 14 dan me-mount data postgres ke volume lokal sehingga dapat terus dimulai ulang. Karena container bersifat sementara, data akan hilang jika kita tidak menyimpan dalam volume lokal.

Tarik docker.io/library/postgres:14.0-alpine gambar

$ podman tarik docker.io/library/postgres:14.0-alpine✔ docker.io/library/postgres:14.0-alpineMencoba menarik docker.io/library/postgres:14.0-alpine...Mendapatkan gambar sumber signaturesCopying gumpalan 82e9eb77798b doneCopying gumpalan c6b2245b2f36 doneCopying gumpalan a0d0a0d46f8b doneCopying gumpalan 3da258773353 doneCopying gumpalan ccd761727716 doneCopying gumpalan 5034a66b99e6 doneCopying gumpalan 2c7ee7bc69e8 doneCopying gumpalan 028554d3b6cc doneCopying config 87440f4e7f doneWriting manifest untuk destinationStoring gambar signatures87440f4e7f9e60607dc11a4f0590a1c69b3a1c075211df478e22b0c27fb263e6  

Konfirmasi gambar

$ podman imagesREPOSITORY TAG ID GAMBAR DIBUAT SIZEdocker.io/library/postgres 14.0-alpine 87440f4e7f9e 2 minggu lalu 198 MB 

Periksa gambar dengan

$ podman memeriksa 87440f4e7f9e 

Mari kita siapkan folder yang akan menangani data Postgres setelah kita memulai wadah kita:

$ mkdir -p ~/apps/postgres/data 

Jalankan

podman run -d \ -p 5432:5432 \ -v ~/apps/postgres/data:/var/lib/postgresql/data:Z \ -e POSTGRES_PASSWORD=Sup3rSecre7 \ -e POSTGRES_USER=citizix_user \ -e POSTGRES_DB=citizix_db \ ​​docker.io/library/postgres:14.0-alpine 

Ini hasil saya

$ podman run -d \> -p 5432:5432 \> -v ~/apps/postgres/data:/var/lib/postgresql/data:Z \> -e POSTGRES_PASSWORD=Sup3rSecre7 \> - e POSTGRES_USER=citizix_user \> -e POSTGRES_DB=citizix_db \> docker.io/library/postgres:14.0-alpine9aa1fb68beeeb7c68a9ea5afb4ca91bf07acf3fef92bf21249a6d8a4e43f5dbd 

Periksa proses:

$ podman psCONTAINER ID IMAGE COMMAND NAMA PORT STATUS DIBUAT9aa1fb68beee docker.io/library/postgres:14.0-alpine postgres 46 detik yang lalu Naik 47 detik yang lalu 0.0.0.0:5432->5432/tcp grace_jemison 

Konfirmasi log kontainer dengan ini. Anda dapat melihat bahwa inisialisasi db

$ log podman 9aa1fb68beee | headperforming post-bootstrap inisialisasi ... sh:locale:not found2021-11-11 09:05:00.481 UTC [30] PERINGATAN:tidak ditemukan lokal sistem yang dapat digunakan File-file milik sistem database ini akan dimiliki oleh "postgres" pengguna. Pengguna ini juga harus memiliki proses server.Kluster basis data akan diinisialisasi dengan lokal "en_US.utf8". Pengkodean basis data default telah disetel ke "UTF8".Konfigurasi pencarian teks default akan disetel ke "bahasa Inggris".Data checksum halaman dinonaktifkan. memperbaiki izin pada direktori yang ada /var/lib/postgresql/data ... ok

Mari kita terhubung ke database dan melakukan beberapa operasi

$ podman exec -it 9aa1fb68beee /bin/bashbash-5.1# psql -U citizix_user -d citizix_db;psql (14.0)Ketik "bantuan" untuk bantuan.citizix_db=# pilih versi(); Versi:kapan------------------------------------------------- -------------------------------------------------- ----------- PostgreSQL 14.0 pada x86_64-pc-linux-musl, dikompilasi oleh gcc (Alpine 10.3.1_git20210424) 10.3.1 20210424, 64-bit(1 baris)citizix_db=# 

Selanjutnya mari kita jelajahi membunuh dan mengeluarkan wadah. Kita bisa menggunakan podman kill untuk menghentikan wadah. Ini akan menghentikan wadah, tetapi akan tetap ada di sana. Gunakan podman ps -a untuk mendaftar. Untuk menghapusnya dengan benar, podman rm -f .

$ podman kill 9aa1fb68beee9aa1fb68beee$ podman ps -aCONTAINER ID IMAGE COMMAND NAMA PORT STATUS YANG DIBUAT NAMA PORTS9aa1fb68beee docker.io/library/postgres:14.0-alpine postgres 14 menit yang lalu Keluar (13.0.0:5432- 0.0.0.0:5432 yang lalu (137) 20 detik yang lalu>5432/tcp grace_jemison$ podman rm -f 9aa1fb68beee9aa1fb68beeeb7c68a9ea5afb4ca91bf07acf3fef92bf21249a6d8a4e43f5dbd 

Mengelola container sebagai layanan sistem melalui systemd dan Podman

Kami dapat mengelola wadah podman melalui systemd. Mari kita buat systemd file resource untuk menangani container postgres yang baru saja kita buat di atas.

Buat file podman postgres:

sudo vim /etc/systemd/system/postgres-podman.service 

Tambahkan konten ini

[Unit]Description=Custom Postgres Podman ContainerAfter=network.target[Service]Type=simpleTimeoutStartSec=5mExecStartPre=-/usr/bin/podman rm -f postgrespodmanExecStart=/usr/bin/podman run \ -p 5432:5432 \ -v /home/rocky/apps/postgres/data:/var/lib/postgresql/data:Z \ -e POSTGRES_PASSWORD=Sup3rSecre7 \ -e POSTGRES_USER=citizix_user \ -e POSTGRES_DB=citizix_db \ ​​docker.io/ library/postgres:14.0-alpineExecReload=-/usr/bin/podman stop postgrespodmanExecReload=-/usr/bin/podman rm postgrespodmanExecStop=-/usr/bin/podman stop postgrespodmanRestart=alwaysRestartSec=30[Install] 

Kemudian kita dapat memuat ulang systemd katalog dan mulai layanan:

Sudo systemctl daemon-reloadsudo systemctl start postgres-podman 

Konfirmasi status layanan

$ sudo systemctl status postgres-podman● postgres-podman.service - Wadah Podman Postgres Khusus Dimuat:dimuat (/etc/systemd/system/postgres-podman. layanan; statis; preset vendor:dinonaktifkan) Aktif:aktif (berjalan) sejak Kamis 11-11-11 10:07:09 UTC; 21 detik yang lalu Proses:71868 ExecStop=/usr/bin/podman stop postgrespodman (kode=keluar, status=125) Proses:71943 ExecStartPre=/usr/bin/podman rm -f postgrespodman (kode=keluar, status=1/FAILURE) PID Utama:71973 (podman) Tugas:11 (batas:23167) Memori:27.8M CGroup:/system.slice/postgres-podman.service 71973 /usr/bin/podman run -p 5432:5432 -v /home /rocky/apps/postgres/data:/var/lib/postgresql/data:Z -e POSTGRES_PASSWORD=Sup3rSecre7 -e POSTGRES_USER=citizix_user -e POSTGRE> 72073 /usr/bin/conmon --api-versi 1 -c 03e82c0f88fe4d69630b308f59f2e62bb23b19021a0de5ab0b267950c9367103 -u 03e82c0f88fe4d69630b308f59f2e62bb23b19021a0de5ab0b267950c9367103>Nov 11 November 10:07 09 ip-10-2-40-72.us-west-2.compute.internal podman[71943]:Kesalahan:tidak ada wadah dengan nama atau ID "postgrespodman" ditemukan:tidak ada wadah tersebutNov 11 10:07:09 ip-10 -2-40-72.us-west-2.compute.interna l systemd[1]:Memulai Custom Postgres Podman Container.Nov 11 10:07:10 ip-10-2-40-72.us-west-2.compute.internal podman[71973]:Direktori Database PostgreSQL tampaknya berisi a basis data; Melewati inisialisasi 11 Nov 10:07:10 ip-10-2-40-72.us-west-2.compute.internal podman[71973]:2021-11-11 10:07:10.428 UTC [1] LOG:memulai PostgreSQL 14.0 pada x86_64-pc-linux-musl, dikompilasi oleh gcc (Alpine 10>11 Nov 10:07:10 ip-10-2-40-72.us-west-2.compute.internal podman[71973]:2021- 11-11 10:07:10.429 UTC [1] LOG:mendengarkan alamat IPv4 "0.0.0.0", port 5432Nov 11 10:07:10 ip-10-2-40-72.us-west-2.compute. podman internal[71973]:2021-11-11 10:07:10.429 UTC [1] LOG:mendengarkan pada alamat IPv6 "::", port 5432Nov 11 10:07:10 ip-10-2-40-72.us -west-2.compute.internal podman[71973]:2021-11-11 10:07:10,432 UTC [1] LOG:mendengarkan di soket Unix "/var/run/postgresql/.s.PGSQL.5432" 11 Nov 10:07:10 ip-10-2-40-72.us-west-2.compute.internal podman[71973]:2021-11-11 10:07:10.437 UTC [20] LOG:sistem database dimatikan di 2021-11-11 10:07:09 UTCnov 11 10:07:10 ip-10-2-40-72.us-west-2.compute.internal podman[71973]:2021-11-11 10:07 :10.440 UTC [1] LOG:sistem database siap menerima c koneksi 

Kami baru saja menyiapkan layanan sistem khusus berdasarkan wadah yang dikelola melalui Podman!

Kesimpulan

Kami berhasil menjelajahi cara menginstal Podman di server Rocky Linux/Centos 8 kami dalam panduan ini.


Cent OS
  1. Cara Menginstal dan Menggunakan Komposer php di Rocky Linux/Centos 8

  2. Cara menginstal dan mengkonfigurasi buruh pelabuhan Di Rocky Linux/Centos 8

  3. Cara Menginstal dan Mengonfigurasi Ansible di Rocky Linux/CentOS 8

  1. Cara menginstal Erlang di Rocky Linux/Alma Linux/CentOS 8

  2. Cara Menginstal Klien FreeIPA di Rocky Linux/Alma Linux/CentOS 8

  3. Cara Menginstal dan Mengkonfigurasi Mono di Rocky Linux 8 dan CentOS 8

  1. Cara Instal Docker dan Docker-Compose di Rocky Linux 8

  2. Cara Menginstal dan Menggunakan Podman untuk menjalankan Container di Rocky Linux 8

  3. Cara Instal Docker di Rocky Linux 8 / CentOS 8 / RHEL 8 / AlmaLinux