GNU/Linux >> Belajar Linux >  >> Linux

Cara Menjalankan Container sebagai Layanan Systemd dengan Podman

Seperti yang kita ketahui podman adalah alat tanpa daemon open-source yang menyediakan lingkungan untuk membangun, menjalankan, dan mengelola container. Menjalankan container sebagai layanan systemd berarti container akan otomatis dimulai saat sistem di-boot ulang.

Dalam posting ini, kita akan belajar bagaimana menjalankan container sebagai layanan systemd dengan podman pada distribusi berbasis RHEL seperti RHEL 8, CentOS 8 dan Rocky Linux 8.

Prasyarat :

  • Instalasi OS berbasis RHEL minimal.
  • Koneksi Internet Stabil
  • Pengguna Sudo dengan hak akses root

Dalam demonstrasi ini, saya menggunakan minimal RHEL 8.5, tetapi langkah-langkah ini juga berlaku untuk CentOS 8 dan Rocky Linux 8.  Mari langsung ke langkah-langkahnya,

Langkah 1) Instal Podman

Untuk menginstal podman di RHEL 8 , jalankan

$ sudo dnf install @container-tools -y

Untuk CentOS 8 / Rocky Linux 8, jalankan

$ sudo dnf install -y podman

Verifikasi instalasi podman

Untuk memeriksa apakah podman berhasil diinstal atau tidak, coba putar container 'hello-world' menggunakan perintah podman di bawah.

$ podman -v
podman version 3.3.1
$
$ podman run 'hello-world'

Catatan:Saat kami menjalankan podman pertama kali, kami akan diminta untuk memilih registri tempat Anda ingin mengunduh gambar kontainer.

Output dari perintah di atas akan seperti di bawah ini:

Prefek di atas mengkonfirmasi bahwa podman berhasil diinstal. Mari kita lanjutkan ke langkah berikutnya.

Langkah 2) Buat Layanan Systemd dari sebuah wadah

Mari kita asumsikan kita ingin membuat layanan systemd untuk wadah rsyslog. Putar wadah rsyslog pertama menggunakan perintah podman berikut,

$ podman run -d --name <Container-Name>  <Image-Name>

Catatan:Jika Anda ingin mengunduh gambar wadah rsyslog dari registri tertentu, gunakan sintaks berikut:

$ podman run -d --name container-name  <registry-URL>/<image-name>

Dalam demonstrasi ini, saya telah menggunakan registri Red hat. Jadi login dulu ke registry

$ podman login registry.access.redhat.com
Username: <Specify-User-Name>
Password: <Enter-Password>
Login Succeeded!
$

Sekarang coba putar container menggunakan perintah podman berikut,

$ podman run -d --name rsyslog-server registry.access.redhat.com/rhel7/rsyslog
$ podman ps

Sekarang buat layanan systemd untuk wadah rsyslog-server, jalankan perintah berikut

$ mkdir -p .config/systemd/user
$ cd .config/systemd/user/
$ podman generate systemd --name rsyslog-server --files --new
/home/sysops/.config/systemd/user/container-rsyslog-server.service
$

Seperti yang kami dapat di atas, layanan systemd dibuat.

Untuk detail lebih lanjut tentang perintah 'podman generate systemd', lihat halaman bantuannya

$ podman generate systemd --help

Langkah 3) Mulai dan Aktifkan Layanan Container Systemd

Jalankan perintah systemctl berikut untuk memulai dan mengaktifkan layanan systemd untuk wadah rsyslog-server.

$ cd .config/systemd/user/
$ systemctl --user daemon-reload
$ systemctl --user enable container-rsyslog-server.service
$ systemctl --user restart container-rsyslog-server.service

Sekarang verifikasi status layanan systemd dan status wadah, jalankan

$ systemctl --user status container-rsyslog-server.service
$ podman ps

Sekarang, Ketika sistem di-boot ulang, wadah akan secara otomatis dimulai melalui layanan systemd-nya. Jadi mari kita reboot sekali dan verifikasi layanan container.

$ sudo reboot

Setelah sistem kembali online, login ke sistem dan verifikasi layanan container

$ podman ps
$ cd .config/systemd/user/
$ systemctl --user status container-rsyslog-server.service

Bagus, ini mengonfirmasi bahwa wadah rsyslog-server dimulai secara otomatis memposting reboot melalui layanan systemdnya.

Itu saja dari posting ini, saya harap Anda telah menemukannya informatif. Silakan bagikan umpan balik dan pertanyaan Anda.

Baca Juga :Cara Menjalankan Jenkins Container sebagai Layanan Systemd dengan Docker


Linux
  1. Cara membuat layanan Systemd di Linux

  2. Cara mengarahkan output dari layanan systemd ke file

  3. Bagaimana cara menjalankan skrip dengan systemd tepat sebelum dimatikan?

  1. Cara Mengelola Layanan Systemd dengan Systemctl di Linux

  2. Linux – Bagaimana Mendapatkan Lebih Sedikit Ttys Dengan Systemd?

  3. Bagaimana cara mengirim email jika layanan systemd di-restart?

  1. Bagaimana menghentikan layanan systemd

  2. Bagaimana cara menjalankan skrip sebelum yang lainnya dimatikan dengan systemd?

  3. Bagaimana cara mendapatkan lebih sedikit tty dengan Systemd?