DEV Community

Cover image for Setup Docker di VPS Linux: Menjaga Aplikasi Tetap Aktif 24/7 Tanpa Takut Reboot
maldiharyojudanto
maldiharyojudanto

Posted on Fully Autonomous

Setup Docker di VPS Linux: Menjaga Aplikasi Tetap Aktif 24/7 Tanpa Takut Reboot

Pernahkah Anda mengalami situasi di mana server VPS tiba-tiba melakukan reboot (misalnya karena pemeliharaan rutin oleh penyedia hosting), lalu semua bot atau aplikasi web Anda mati tanpa Anda sadari?

Menyalakan aplikasi satu per satu secara manual setiap kali server menyala tentu tidak efisien dan rentan gangguan. Di sinilah Docker hadir sebagai solusi standar industri untuk memastikan aplikasi berjalan konsisten, terisolasi, dan otomatis menyala kembali setiap saat.

Panduan ini membahas langkah-langkah konkret:

  1. Mengapa Docker menjadi solusi stabilitas aplikasi di VPS.
  2. Memahami peran Docker Engine dan Docker Compose.
  3. Instalasi resmi Docker di VPS Ubuntu.
  4. Kunci utama: Konfigurasi auto-restart agar aplikasi tahan reboot.
  5. Perintah dasar untuk memantau status aplikasi.

1. Mengapa Docker Menjadi Solusi?

Sebelum Docker populer, menjalankan aplikasi di VPS sering menghadapi dua masalah besar:

  • Konflik Lingkungan (Environment): Beda versi runtime (seperti Node.js atau Python) atau pustaka (library) yang bentrok dengan sistem operasi server.
  • Kerapuhan Layanan: Saat aplikasi mengalami galat (crash) atau server melakukan reboot, proses aplikasi langsung berhenti total.

Docker menyelesaikan masalah ini dengan mengemas kode, dependensi, dan sistem operasi mini ke dalam satu wadah terisolasi bernama Container.

Di dalam kontainer, semua kebutuhan aplikasi sudah tersedia secara mandiri. Anda tidak perlu lagi menginstal Node.js, Python, atau dependensi lain secara manual di VPS. Selama VPS memiliki Docker, aplikasi Anda dijamin dapat berjalan dengan identik.


2. Memahami Docker Engine vs Docker Compose

Dua komponen ini bekerja sama untuk menjaga aplikasi Anda:

  • Docker Engine: Mesin utama di latar belakang (background) yang bertugas membangun, menjalankan, dan mengawasi setiap kontainer.
  • Docker Compose: Alat pengatur (orkestrator) yang memudahkan Anda mengelola banyak kontainer sekaligus menggunakan satu berkas konfigurasi (docker-compose.yml). Misalnya, jika Anda memiliki Bot Telegram, aplikasi web, dan basis data, Anda dapat menyalakan atau memperbarui seluruhnya hanya dengan satu perintah.

3. Instalasi Resmi Docker di VPS Ubuntu

Gunakan metode instalasi langsung dari repositori resmi Docker agar sistem selalu memperoleh pembaruan yang stabil dan aman. Jalankan tahapan berikut di terminal VPS Anda:

Langkah 1: Pasang Kunci Pengaman (GPG Key)

sudo apt-get update
sudo apt-get install -y ca-certificates curl
sudo install -m 0755 -d /etc/apt/keyrings
sudo curl -fsSL https://download.docker.com/linux/ubuntu/gpg -o /etc/apt/keyrings/docker.asc
sudo chmod a+r /etc/apt/keyrings/docker.asc
Enter fullscreen mode Exit fullscreen mode

Langkah 2: Daftarkan Repositori Resmi Docker

echo \
  "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.asc] https://download.docker.com/linux/ubuntu \
  $(. /etc/os-release && echo "${UBUNTU_CODENAME:-$VERSION_CODENAME}") stable" | \
  sudo tee /etc/apt/sources.list.d/docker.list > /dev/null

sudo apt-get update
Enter fullscreen mode Exit fullscreen mode

Langkah 3: Pasang Paket Docker Engine dan Docker Compose

sudo apt-get install -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
Enter fullscreen mode Exit fullscreen mode

Langkah 4: Uji Coba Keberhasilan Instalasi

sudo docker run hello-world
Enter fullscreen mode Exit fullscreen mode

Jika muncul pesan "Hello from Docker!", berarti Docker sudah aktif dan siap digunakan di VPS Anda.


4. Kunci Stabilitas: Konfigurasi Auto-Restart 24/7

Inilah bagian terpenting agar aplikasi Anda tetap beroperasi tanpa perlu campur tangan manual. Konfigurasi ini diterapkan pada dua level:

Level 1: Pastikan Docker Otomatis Aktif Saat VPS Booting

Agar mesin Docker langsung hidup begitu server menyala:

sudo systemctl enable docker.service
sudo systemctl enable containerd.service
Enter fullscreen mode Exit fullscreen mode

Level 2: Terapkan Aturan restart: unless-stopped pada Aplikasi

Kebijakan unless-stopped adalah standar terbaik (best practice). Aturan ini menginstruksikan Docker: "Selalu hidupkan kembali aplikasi ini secara otomatis jika server melakukan reboot atau jika aplikasi mendadak crash, KECUALI jika administrator sengaja menghentikannya secara manual."

Penerapan pada Perintah docker run:

Tambahkan parameter --restart unless-stopped:

docker run -d --name bot-layanan --restart unless-stopped node:20-alpine
Enter fullscreen mode Exit fullscreen mode

Penerapan pada Berkas docker-compose.yml:

Tambahkan baris restart: unless-stopped di bawah nama layanan:

services:
  bot-layanan:
    image: node:20-alpine
    container_name: bot-layanan
    restart: unless-stopped
Enter fullscreen mode Exit fullscreen mode

💡 Manfaat Nyata: Anda tidak perlu khawatir lagi saat VPS Anda melakukan reboot otomatis di tengah malam. Dalam beberapa detik setelah server menyala kembali, seluruh kontainer aplikasi Anda akan otomatis berjalan normal.


5. Perintah Esensial untuk Memantau Status Aplikasi

Berikut adalah beberapa perintah penting yang sering digunakan untuk memantau kesehatan kontainer di VPS:

Perintah Fungsi
docker ps Memeriksa kontainer yang sedang beroperasi secara aktif.
docker ps -a Memeriksa seluruh kontainer (termasuk yang sedang berhenti/mati).
docker logs -f <nama_container> Memantau catatan aktivitas (log) aplikasi secara real-time.
docker stats Memantau penggunaan memori (RAM) dan prosesor (CPU) kontainer.
docker restart <nama_container> Memulai ulang kontainer tertentu secara cepat.
docker compose up -d Menerapkan konfigurasi dan menyalakan seluruh layanan di latar belakang.
docker compose down Menghentikan dan menonaktifkan seluruh layanan pada file compose.

Kesimpulan

Menjalankan aplikasi langsung di sistem operasi VPS tanpa kontainerisasi memiliki risiko downtime yang tinggi saat terjadi masalah sistem atau reboot.

Dengan mengadopsi Docker dan menerapkan kebijakan restart: unless-stopped:

  • Aplikasi Anda memiliki lingkungan yang terisolasi dan bebas dari konflik dependensi.
  • Sistem memiliki ketahanan tinggi (high availability) karena otomatis pulih setelah reboot.
  • Pengelolaan dan pemantauan server menjadi jauh lebih terstruktur dan tenang.

Semoga panduan ini membantu Anda membangun infrastruktur VPS yang stabil dan bebas khawatir!

Top comments (0)