GNU/Linux >> Belajar Linux >  >> OpenSuse

Cara menginstal dan menggunakan Podman di OpenSUSE Leap 15.3

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 OpenSUSE Leap.

Pos terkait

  • Cara menginstal dan menggunakan Podman di Debian 11
  • Cara menginstal dan menggunakan Podman di Rocky Linux/Alma Linux/Centos 8
  • Cara menginstal dan menggunakan Podman di Fedora 34/35
  • 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:

  • Server/Workstation OpenSUSE LEAP 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. Runa postgres container persisten
  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 zypper ref
sudo zypper update -y

Biarkan kami memastikan paket umum telah diinstal

sudo zypper install -y vim

2. Memasang Podman

Podman tersedia di repositori default untuk OpenSUSE. Instal menggunakan perintah ini:

sudo zypper install -y podman

Perintah ini akan menginstal Podman dan juga dependensinya.

Itu saja. Sekarang kita bisa bermain dengan Podman.

3. Contoh baris perintah

Mari kita jelajahi menjalankan OpenSUSE Leap Container menggunakan podman.

Di buruh pelabuhan kita akan menggunakan perintah ini untuk menjalankan wadah OpenSUSE Leap:

docker run -it opensuse/leap:15.3 sh

Ini akan gagal karena tidak ada docker perintah pada mesin OpenSUSE saya. Kita bisa mengganti buruh pelabuhan dengan podman:

podman run -it opensuse/leap:15.3 sh

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

~> podman run -it opensuse/leap:15.3 sh
Trying to pull registry.opensuse.org/opensuse/leap:15.3...
Getting image source signatures
Copying blob 7bc46307c67f done
Copying config 09d5e2cf44 done
Writing manifest to image destination
Storing signatures
sh-4.4# whoami
root
sh-4.4# cat /etc/os-release
NAME="openSUSE Leap"
VERSION="15.3"
ID="opensuse-leap"
ID_LIKE="suse opensuse"
VERSION_ID="15.3"
PRETTY_NAME="openSUSE Leap 15.3"
ANSI_COLOR="0;32"
CPE_NAME="cpe:/o:opensuse:leap:15.3"
BUG_REPORT_URL="https://bugs.opensuse.org"
HOME_URL="https://www.opensuse.org/"
sh-4.4#

Untuk memeriksa status penampung, gunakan podman ps perintah

~> podman ps -a
CONTAINER ID  IMAGE                                     COMMAND  CREATED         STATUS                     PORTS   NAMES
eaa09408b382  registry.opensuse.org/opensuse/leap:15.3  sh       53 seconds ago  Exited (0) 13 seconds ago          priceless_curran

Untuk menghapus penampung, gunakan podman rm :

~> podman rm eaa09408b382
eaa09408b382ceb33a4696fed282e76df5130abf556b085ddc199eb30af54c8c

Untuk membuat daftar gambar:

~> podman images
REPOSITORY                           TAG     IMAGE ID      CREATED      SIZE
registry.opensuse.org/opensuse/leap  15.3    09d5e2cf44af  2 weeks ago  111 MB

Kami dapat menghapus gambar menggunakan gambar podman image rm perintah:

~> podman image rm opensuse/leap:15.3
Untagged: registry.opensuse.org/opensuse/leap:15.3
Deleted: 09d5e2cf44af39c62b803e65991d700d8300dc34d82ff03c9cf359b9e092177a

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

4. 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 image rm opensuse/leap:15.3
Untagged: registry.opensuse.org/opensuse/leap:15.3
Deleted: 09d5e2cf44af39c62b803e65991d700d8300dc34d82ff03c9cf359b9e092177a
[email protected]:~> podman pull docker.io/library/postgres:14.0-alpine
Trying to pull docker.io/library/postgres:14.0-alpine...
Getting image source signatures
Copying blob 82e9eb77798b done
Copying blob 5034a66b99e6 done
Copying blob 3da258773353 done
Copying blob c6b2245b2f36 done
Copying blob a0d0a0d46f8b done
Copying blob ccd761727716 done
Copying blob 028554d3b6cc done
Copying blob 2c7ee7bc69e8 done
Copying config 87440f4e7f done
Writing manifest to image destination
Storing signatures
87440f4e7f9e60607dc11a4f0590a1c69b3a1c075211df478e22b0c27fb263e6

Konfirmasi gambar

~> podman images
REPOSITORY                  TAG          IMAGE ID      CREATED      SIZE
docker.io/library/postgres  14.0-alpine  87440f4e7f9e  2 weeks ago  198 MB

Periksa gambar dengan

$ podman inspect 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 \
    -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 \
>     -e POSTGRES_PASSWORD=Sup3rSecre7 \
>     -e POSTGRES_USER=citizix_user \
>     -e POSTGRES_DB=citizix_db \
>     docker.io/library/postgres:14.0-alpine
1607081ed241073e20e6186543c1882e977f2a91c9c061ccdd36a3e357051a44

Periksa proses:

~> podman ps
CONTAINER ID  IMAGE                                   COMMAND   CREATED         STATUS             PORTS                   NAMES
1607081ed241  docker.io/library/postgres:14.0-alpine  postgres  11 seconds ago  Up 10 seconds ago  0.0.0.0:5432->5432/tcp  happy_jang

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

~> podman logs 1607081ed241 | head
The files belonging to this database system will be owned by user "postgres".
This user must also own the server process.

The database cluster will be initialized with locale "en_US.utf8".
The default database encoding has accordingly been set to "UTF8".
The default text search configuration will be set to "english".

Data page checksums are disabled.

fixing permissions on existing directory /var/lib/postgresql/data ... ok

Mari kita terhubung ke database dan melakukan beberapa operasi

$ podman exec -it 1607081ed241 /bin/bash
bash-5.1# psql -U citizix_user -d citizix_db;
psql (14.0)
Type "help" for help.

citizix_db=# select version();
                                                   version
--------------------------------------------------------------------------------------------------------------
 PostgreSQL 14.0 on x86_64-pc-linux-musl, compiled by gcc (Alpine 10.3.1_git20210424) 10.3.1 20210424, 64-bit
(1 row)

citizix_db=#

Selanjutnya mari kita jelajahi membunuh dan mengeluarkan wadah. Kita dapat 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 1607081ed241
1607081ed241073e20e6186543c1882e977f2a91c9c061ccdd36a3e357051a44

~> podman ps -a
CONTAINER ID  IMAGE                                   COMMAND   CREATED             STATUS                       PORTS                   NAMES
1607081ed241  docker.io/library/postgres:14.0-alpine  postgres  About a minute ago  Exited (137) 15 seconds ago  0.0.0.0:5432->5432/tcp  happy_jang

~> podman rm -f 1607081ed241
1607081ed241073e20e6186543c1882e977f2a91c9c061ccdd36a3e357051a44

5. 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 Container
After=network.target

[Service]
Type=simple
TimeoutStartSec=5m
ExecStartPre=-/usr/bin/podman rm -f postgrespodman

ExecStart=/usr/bin/podman run \
    -p 5432:5432 \
    -v /home/ec2-user/apps/postgres/data:/var/lib/postgresql/data \
    -e POSTGRES_PASSWORD=Sup3rSecre7 \
    -e POSTGRES_USER=citizix_user \
    -e POSTGRES_DB=citizix_db \
    docker.io/library/postgres:14.0-alpine

ExecReload=-/usr/bin/podman stop postgrespodman
ExecReload=-/usr/bin/podman rm postgrespodman
ExecStop=-/usr/bin/podman stop postgrespodman
Restart=always
RestartSec=30

[Install]

Kemudian kita dapat memuat ulang systemd katalog dan mulai layanan:

sudo systemctl daemon-reload
sudo systemctl start postgres-podman

Konfirmasi status layanan

~> sudo systemctl status postgres-podman
● postgres-podman.service - Custom Postgres Podman Container
     Loaded: loaded (/etc/systemd/system/postgres-podman.service; static)
     Active: active (running) since Mon 2021-11-15 05:40:34 UTC; 12s ago
    Process: 23658 ExecStartPre=/usr/bin/podman rm -f postgrespodman (code=exited, status=1/FAILURE)
   Main PID: 23687 (podman)
      Tasks: 12 (limit: 4587)
     CGroup: /system.slice/postgres-podman.service
             ├─23687 /usr/bin/podman run -p 5432:5432 -v /home/ec2-user/apps/postgres/data:/var/lib/postgresql/data -e POSTGRES_PASSWORD=Sup3rSecre7 -e POSTG>
             └─23828 /usr/bin/conmon --api-version 1 -c 8a18a63727ecd19d03710544e3e7ee9241e886d9fed45c1f25e29547ab61d600 -u 8a18a63727ecd19d03710544e3e7ee924>

Nov 15 05:40:35 ip-10-2-40-188 podman[23687]: 2021-11-15 05:40:35.477 UTC [1] LOG:  starting PostgreSQL 14.0 on x86_64-pc-linux-musl, compiled by gcc (Alpine>
Nov 15 05:40:35 ip-10-2-40-188 podman[23687]: 2021-11-15 05:40:35.478 UTC [1] LOG:  listening on IPv4 address "0.0.0.0", port 5432
Nov 15 05:40:35 ip-10-2-40-188 podman[23687]: 2021-11-15 05:40:35.478 UTC [1] LOG:  listening on IPv6 address "::", port 5432
Nov 15 05:40:35 ip-10-2-40-188 podman[23687]: 2021-11-15 05:40:35.482 UTC [1] LOG:  listening on Unix socket "/var/run/postgresql/.s.PGSQL.5432"
Nov 15 05:40:35 ip-10-2-40-188 podman[23687]: 2021-11-15 05:40:35.486 UTC [22] LOG:  database system was interrupted; last known up at 2021-11-15 05:35:02 UTC
Nov 15 05:40:35 ip-10-2-40-188 podman[23687]: 2021-11-15 05:40:35.497 UTC [22] LOG:  database system was not properly shut down; automatic recovery in progre>
Nov 15 05:40:35 ip-10-2-40-188 podman[23687]: 2021-11-15 05:40:35.499 UTC [22] LOG:  redo starts at 0/16FAD98
Nov 15 05:40:35 ip-10-2-40-188 podman[23687]: 2021-11-15 05:40:35.499 UTC [22] LOG:  invalid record length at 0/16FADD0: wanted 24, got 0
Nov 15 05:40:35 ip-10-2-40-188 podman[23687]: 2021-11-15 05:40:35.499 UTC [22] LOG:  redo done at 0/16FAD98 system usage: CPU: user: 0.00 s, system: 0.00 s, >
Nov 15 05:40:35 ip-10-2-40-188 podman[23687]: 2021-11-15 05:40:35.509 UTC [1] LOG:  database system is ready to accept connections

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

Kesimpulan

Kami berhasil menjelajahi cara menginstal Podman di server OpenSUSE Leap kami dalam panduan ini.


OpenSuse
  1. Cara Menginstal PostgreSQL dan phpPgAdmin di OpenSUSE Leap 42.1

  2. Bagaimana menginstal Mongodb 5 di Opensuse Leap 15.3

  3. Bagaimana menginstal Mysql Server 8 pada OpenSUSE Leap 15.3

  1. Cara menginstal &mengkonfigurasi Redis 6 pada OpenSUSE Leap 15.3

  2. Bagaimana cara menginstal Erlang di Opensuse Leap 15.3

  3. Cara Menginstal dan mengatur Nginx sebagai proxy OpenSUSE Leap 15.3

  1. Cara Menginstal dan Mengkonfigurasi Mariadb 10 di OpenSUSE Leap 15.3

  2. Cara Menginstal dan mengatur PHP dan Nginx (LEMP) di OpenSUSE Leap 15.3

  3. Bagaimana menginstal dan mengkonfigurasi Proxy Squid di OpenSUSE Leap 11