GNU/Linux >> Belajar Linux >  >> Rocky Linux

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

Podman adalah platform container sumber terbuka dan gratis yang dibuat untuk mengembangkan, mengelola, dan menyebarkan container dan pod di lingkungan Linux. Redhat mengembangkan Podman pada tahun 2018. Ini adalah mesin containerization yang bekerja secara berbeda dari Docker. Podman tidak bergantung pada daemon untuk bekerja, tidak seperti Docker yang menggunakan Docker CLI dan daemon Docker. Menjadi bergantung pada daemon mengarah ke satu titik kegagalan.

Podman dirancang menurut standar OCI (Open Container Initiative) yang memungkinkan Podman berinteraksi langsung dengan kernel, container, dan image. Ini juga lebih aman daripada Docker karena tidak memerlukan akses root. Podman dapat digunakan sebagai pengganti Docker karena keduanya sesuai dengan OCI.

Artikel ini akan menunjukkan cara menginstal Podman dan menggunakannya untuk membuat dan mengelola image dan container.

Prasyarat

  1. Server berbasis Rocky Linux

  2. Pengguna non-sudo dengan hak akses root.

  3. Pastikan server diperbarui.

    $ sudo dnf update
    

Instal Podman

Podman termasuk dalam container-tools modul, bersama dengan Buildah dan Skopeo. Ini juga tersedia di repositori AppStream untuk Rocky Linux 8. Kami akan menggunakan metode modul.

Instal Podman menggunakan dnf module perintah.

$ sudo dnf module install container-tools

Periksa versi Podman untuk melihat apakah sudah terpasang dengan benar.

$ podman --version
podman version 3.2.3

Telusuri dan Unduh Gambar Penampung

Untuk mencari gambar Nginx, gunakan perintah berikut.

$ podman search nginx

Pada output, Anda akan melihat nama registri asal gambar dan deskripsi gambar.

Untuk mengunduh gambar, gunakan salah satu perintah berikut.

$ podman pull docker.io/library/nginx

OR

$ podman pull nginx

Anda dapat melihat gambar yang diunduh melalui perintah berikut.

$ podman images
REPOSITORY               TAG         IMAGE ID      CREATED     SIZE
docker.io/library/nginx  latest      f8f4ffc8092c  3 days ago  138 MB

Jalankan Kontainer

Gunakan perintah berikut untuk menjalankan container menggunakan image Nginx. Kami telah menamai penampung sebagai server web .

$ podman run -d --name webserver nginx 

Kita dapat menggunakan gambar yang sama untuk meluncurkan wadah lain dengan nama yang berbeda.

$ podman run -d --name webserver2 nginx

Kami dapat meluncurkan wadah dalam jumlah tak terbatas menggunakan gambar yang sama.

Mendaftar dan Menghentikan Container

Untuk membuat daftar semua container yang sedang berjalan, gunakan perintah berikut.

$ podman ps
CONTAINER ID  IMAGE                           COMMAND               CREATED         STATUS             PORTS       NAMES
19b6668bc627  docker.io/library/nginx:latest  nginx -g daemon o...  31 seconds ago  Up 31 seconds ago              webserver
35a286ba5a55  docker.io/library/nginx:latest  nginx -g daemon o...  2 seconds ago   Up 3 seconds ago               webserver2

Hentikan container yang sedang berjalan.

$ podman stop webserver
webserver

Verifikasi apakah telah berhenti.

$ podman ps
CONTAINER ID  IMAGE                           COMMAND               CREATED             STATUS                 PORTS       NAMES
35a286ba5a55  docker.io/library/nginx:latest  nginx -g daemon o...  About a minute ago  Up About a minute ago              webserver2

Untuk membuat daftar semua wadah, termasuk yang dihentikan, Anda perlu menggunakan -a bendera.

$ podman ps -a
CONTAINER ID  IMAGE                           COMMAND               CREATED             STATUS                     PORTS       NAMES
19b6668bc627  docker.io/library/nginx:latest  nginx -g daemon o...  2 minutes ago       Exited (0) 35 seconds ago              webserver
35a286ba5a55  docker.io/library/nginx:latest  nginx -g daemon o...  About a minute ago  Up About a minute ago                  webserver2

Mulai Container yang dihentikan

Gunakan perintah berikut untuk memulai penampung yang dihentikan.

$ podman start webserver
webserver

Verifikasi apakah sudah dimulai.

$ podman ps
CONTAINER ID  IMAGE                           COMMAND               CREATED        STATUS             PORTS       NAMES
19b6668bc627  docker.io/library/nginx:latest  nginx -g daemon o...  3 minutes ago  Up 16 seconds ago              webserver
35a286ba5a55  docker.io/library/nginx:latest  nginx -g daemon o...  2 minutes ago  Up 2 minutes ago               webserver2

Hapus Penampung

Anda harus menghentikan penampung sebelum menghapusnya.

$ podman stop webserver2

Hapus penampung.

$ podman rm webserver2

Anda dapat menghapus container yang sedang berjalan dengan menggunakan --force bendera.

$ podman rm webserver2 --force
35a286ba5a553d5f88e3d9795780f893cfb58bf4a126c4912d1ec56b9d0e5a27

Bunuh Wadah

Menghentikan dan Membunuh Wadah adalah dua hal berbeda yang pada akhirnya mencapai hal yang sama. Perbedaannya adalah bahwa Menghentikan penampung akan mematikannya dengan anggun sementara Membunuh penampung berarti mengakhirinya secara paksa, yang mengakibatkan hilangnya data.

Gunakan perintah berikut untuk mematikan container.

$ podman kill -s 9 webserver2

Perintah di atas menggunakan SIGNAL 9 (SIGKILL) opsi untuk mematikan wadah.

Untuk mematikan semua wadah, gunakan --all atau -a bendera dan untuk mematikan hanya wadah terbaru, gunakan --latest atau -l bendera.

Hapus Gambar

Anda dapat menghapus gambar menggunakan rmi perintah.

$ podman rmi registry.redhat.io/rhel8/rsyslog

Anda dapat menghapus beberapa gambar dengan memisahkannya menggunakan koma.

$ podman rmi registry.redhat.io/rhel8/rsyslog registry.redhat.io/ubi8/ubi

Untuk menghapus semua gambar di sistem Anda, gunakan -a bendera.

$ podman rmi -a

Lihat Log Penampung

Untuk melihat log kontainer, gunakan perintah berikut.

$ podman logs webserver
/docker-entrypoint.sh: /docker-entrypoint.d/ is not empty, will attempt to perform configuration
/docker-entrypoint.sh: Looking for shell scripts in /docker-entrypoint.d/
/docker-entrypoint.sh: Launching /docker-entrypoint.d/10-listen-on-ipv6-by-default.sh
10-listen-on-ipv6-by-default.sh: info: Getting the checksum of /etc/nginx/conf.d/default.conf
10-listen-on-ipv6-by-default.sh: info: Enabled listen on IPv6 in /etc/nginx/conf.d/default.conf
/docker-entrypoint.sh: Launching /docker-entrypoint.d/20-envsubst-on-templates.sh
/docker-entrypoint.sh: Launching /docker-entrypoint.d/30-tune-worker-processes.sh
/docker-entrypoint.sh: Configuration complete; ready for start up
......

Anda dapat membatasi log hingga 5 baris terakhir dengan menggunakan --tail pilihan.

$ podman logs --tail=5 webserver
2021/10/05 10:13:52 [notice] 1#1: built by gcc 8.3.0 (Debian 8.3.0-6)
2021/10/05 10:13:52 [notice] 1#1: OS: Linux 4.18.0-305.19.1.el8_4.x86_64
2021/10/05 10:13:52 [notice] 1#1: getrlimit(RLIMIT_NOFILE): 262144:262144
2021/10/05 10:13:52 [notice] 1#1: start worker processes
2021/10/05 10:13:52 [notice] 1#1: start worker process 23

Secara default, Anda tidak akan mendapatkan stempel waktu apa pun di log. Gunakan -t tandai untuk menambahkan stempel waktu ke log Anda.

$ podman logs -t webserver
2021-10-05T09:25:02.026967459Z /docker-entrypoint.sh: /docker-entrypoint.d/ is not empty, will attempt to perform configuration
2021-10-05T09:25:02.026967459Z /docker-entrypoint.sh: Looking for shell scripts in /docker-entrypoint.d/
2021-10-05T09:25:02.033956297Z /docker-entrypoint.sh: Launching /docker-entrypoint.d/10-listen-on-ipv6-by-default.sh
2021-10-05T09:25:02.043751152Z 10-listen-on-ipv6-by-default.sh: info: Getting the checksum of /etc/nginx/conf.d/default.conf
2021-10-05T09:25:02.064561317Z 10-listen-on-ipv6-by-default.sh: info: Enabled listen on IPv6 in /etc/nginx/conf.d/default.conf
.....

Memeriksa Kontainer

Memeriksa sebuah kontainer akan mencetak informasi tentang sebuah kontainer.

$ podman inspect webserver
[
    {
        "Id": "19b6668bc6278a66b3ffc98ae1515af25f5bebcd20bf26de803cae41c4485f59",
        "Created": "2021-10-05T09:25:01.784949744Z",
        "Path": "/docker-entrypoint.sh",
        "Args": [
            "nginx",
            "-g",
            "daemon off;"
        ],
        "State": {
            "OciVersion": "1.0.2-dev",
            "Status": "running",
            "Running": true,
            "Paused": false,
            "Restarting": false,
            "OOMKilled": false,
            "Dead": false,
            "Pid": 4423,
....

Perintah default akan mencetak output panjang dalam format JSON. Untuk memfilter output, Anda perlu menggunakan --format pilihan. Untuk mengetahui kapan container dimulai, jalankan perintah berikut.

$ podman inspect webserver --format '{{.State.StartedAt}}'
2021-10-05 10:13:52.794806322 +0000 UTC

Mengakses Container Shell

Anda dapat mengakses prompt Shell dari wadah apa pun menggunakan exec pilihan.

$ podman exec -it webserver2 /bin/bash

Pod

Podman memiliki fitur unik yang tidak dimiliki Docker. Podman dapat membuat Pod dari container yang beroperasi bersama. Ini memungkinkan Anda mengelola beberapa penampung secara agregat.

Untuk membuat Pod, gunakan perintah berikut.

$ podman pod create --name mypod

Tambahkan Kontainer ke pod yang baru dibuat.

$ podman run --pod mypod --name myimage1 image:latest
$ podman run --pod mypod --name myimage2 diff-image:latest

Sekarang Anda dapat mengelola container menggunakan perintah satu baris sederhana.

$ podman kill mypod      # Kill all containers
$ podman restart mypod   # Restart all containers
$ podman stop mypod      # Stop all containers
$ podman pod ps			# List all pods
$ podman pod top mypod   # Display running processes in a pod
$ podman pod inspect mypod # Inspect a Pod
$ podman pod rm mypod    # Remove the pod

Kesimpulan

Ini menyimpulkan tutorial kami tentang menginstal dan menggunakan Podman untuk menjalankan Containers. Ada banyak hal yang dapat Anda lakukan dengan Podman yang belum kami bahas. Jika Anda memiliki pertanyaan, kirimkan di komentar di bawah.


Rocky Linux
  1. Apa Itu Podman Dan Bagaimana Cara Menginstal Podman Di Linux

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

  3. Cara Menginstal dan Mengkonfigurasi Elasticsearch di Rocky Linux 8

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

  2. Cara Install dan Konfigurasi HAProxy di Rocky Linux 8

  3. Cara menginstal dan mengatur Docker Container di Rocky Linux 8

  1. Cara Menginstal dan Menggunakan PostgreSQL 13 di Rocky Linux

  2. Cara Menginstal dan Menggunakan MongoDB di Rocky Linux 8

  3. Cara Menginstal dan Menggunakan pgAdmin 4 di Rocky Linux 8