Skip to content

auto startup container podman

Yhotie
Published date:
Edit this post

Berikut adalah langkah-langkah untuk menjalankan container Podman dengan systemd, sehingga container dapat berjalan otomatis setelah server restart.


1. Buat Container dengan Nama Unik

Pastikan Anda sudah memiliki container Podman yang dibuat dengan nama unik. Jika belum, buat container dengan nama (misalnya nodejs-container):

podman run -d --name nodejs-container -p 3000:3000 nodejs-app:alpine

2. Generate File Unit systemd

Podman memiliki fitur untuk menghasilkan file unit systemd. Gunakan perintah berikut:

podman generate systemd --name nodejs-container --files --new

Perintah ini akan menghasilkan file container-nodejs-container.service.


3. Pindahkan File Unit ke systemd

Pindahkan file unit yang telah dibuat ke direktori systemd (~/.config/systemd/user/ untuk rootless, atau /etc/systemd/system/ untuk root):

Jika menggunakan rootless:

mkdir -p ~/.config/systemd/user
mv container-nodejs-container.service ~/.config/systemd/user/

Jika menggunakan root:

sudo mv container-nodejs-container.service /etc/systemd/system/

4. Reload systemd Daemon

Setelah file unit dipindahkan, reload daemon systemd agar mengenali file baru:

Jika rootless:

systemctl --user daemon-reload

Jika root:

sudo systemctl daemon-reload

5. Enable dan Start Service

Aktifkan service agar berjalan otomatis saat server restart, lalu jalankan service:

Jika rootless:

systemctl --user enable container-nodejs-container
systemctl --user start container-nodejs-container

Jika root:

sudo systemctl enable container-nodejs-container
sudo systemctl start container-nodejs-container

6. Verifikasi

Cek status service untuk memastikan berjalan dengan baik:

Jika rootless:

systemctl --user status container-nodejs-container

Jika root:

sudo systemctl status container-nodejs-container

Output akan menunjukkan service aktif dan container berjalan.


7. Test Restart Server

Untuk memastikan container berjalan otomatis setelah restart, lakukan reboot:

sudo reboot

Setelah restart, periksa kembali status container:

Jika rootless:

systemctl --user status container-nodejs-container

Jika root:

sudo systemctl status container-nodejs-container

Catatan

  1. Rootless Podman: Gunakan -user untuk rootless setup.
  2. Log Service: Jika ada masalah, cek log service:

atau

```bash
journalctl --user -u container-nodejs-container

```

```bash
sudo journalctl -u container-nodejs-container

```

Dengan setup ini, container Anda akan otomatis berjalan saat server menyala ulang. 🚀

Podman memiliki kemampuan untuk mengintegrasikan container dengan systemd berkat desain arsitekturnya yang unik. Berikut penjelasan mengapa Podman bisa melakukan ini dan apa yang membuatnya berbeda:


1. Podman Tidak Membutuhkan Daemon

Perbedaannya:


2. Dukungan bawaan untuk Systemd

Podman memiliki fitur podman generate systemd, yang mempermudah pembuatan file unit systemd dari container. Fitur ini bekerja dengan:

Dengan ini, Podman memungkinkan:


3. Rootless Containers

Podman dirancang untuk mendukung rootless mode secara bawaan. Artinya, pengguna biasa (non-root) dapat menjalankan container tanpa perlu hak istimewa (privilege).

Integrasi dengan systemd di mode rootless dilakukan dengan:


4. Tidak Bergantung pada Proses Utama

Ini berbeda dari Docker, di mana systemd harus mengontrol dockerd sebagai perantara untuk mengelola container.


5. Keamanan Lebih Baik

Karena Podman mendukung rootless mode secara penuh:

Selain itu, setiap integrasi dengan systemd tetap memanfaatkan prinsip least privilege.


6. Fitur Tambahan dengan Podman Pods

Podman juga memiliki konsep pods (mirip dengan Kubernetes Pods). File unit systemd bisa dibuat untuk mengelola seluruh pod, sehingga:


Ringkasan: Mengapa Podman Mendukung Systemd dengan Baik?

  1. Tanpa daemon: Container langsung dikelola sebagai proses Linux.
  2. Integrasi bawaan: podman generate systemd otomatis membuat file unit systemd.
  3. Rootless mode: Container aman berjalan tanpa hak istimewa.
  4. Keamanan lebih baik: Tidak ada daemon, sehingga lebih sulit dieksploitasi.
  5. Pods: Kemampuan mengelola grup container sekaligus dengan systemd.

Dengan semua keunggulan ini, Podman menjadi pilihan yang ideal untuk sistem yang membutuhkan integrasi erat dengan systemd, terutama dalam lingkungan server yang stabil dan aman. 🚀

Previous
Modern CSS in 2026: container queries, :has() and anchor positioning
Next
menjalankan aplikasi berbasis nodejs dengan container podman