Skip to main content

Apa itu Docker Swarm?

Ketika aplikasi mulai membesar, menjalankan semuanya dalam satu server menggunakan docker compose tidak lagi cukup. Jika server tersebut mati, aplikasi akan down. Docker Swarm adalah alat orkestrasi bawaan dari Docker untuk menggabungkan banyak server Docker (Nodes) menjadi satu kesatuan (Cluster). Swarm bertugas mendistribusikan Container secara merata ke seluruh server, memastikan ketersediaan tinggi (High Availability), dan menyediakan mekanisme perbaikan mandiri (Self-Healing). Dalam Swarm, ada dua peran:
  1. Manager Node: Mengatur kluster, menyimpan konfigurasi, dan mendistribusikan tugas.
  2. Worker Node: Murni bertugas menjalankan Container yang diperintahkan oleh Manager.

Inisiasi Swarm

Langkah Konfigurasi

  1. Masuk ke server utama (yang akan jadi Manager) dan jalankan:
  2. Outputnya akan menampilkan perintah docker swarm join beserta token.
  3. Salin perintah tersebut dan tempel (paste) di terminal server-server Worker untuk menggabungkannya ke dalam cluster.

Deploy Aplikasi di Swarm (Stack & Service)

Di Docker Swarm, kita tidak menggunakan istilah docker run biasa, melainkan mendeploy sekumpulan layanan (Service) dalam bentuk Stack. Kita menggunakan konfigurasi YAML yang mirip dengan Docker Compose.

Konfigurasi Penting (Deploy Key)

Di file YAML, terdapat bagian deploy khusus untuk Swarm.
  • Restart Policy: Menentukan kapan Container harus otomatis di-restart jika crash.
  • Replicas: Jumlah salinan Container. (Misal diatur 3, maka Swarm akan menyebar 3 Container aplikasi ke berbagai Node).
Contoh YAML:

Operasional Swarm

Skalabilitas dan Update

Untuk mengubah konfigurasi lingkungan (ENV) atau memperbarui versi Image tanpa menimbulkan waktu henti (Zero Downtime):

Rollback (Kembali ke Versi Sebelumnya)

Jika pembaruan sistem menimbulkan masalah (bug), Swarm memungkinkan untuk mundur (backward) ke kondisi konfigurasi sebelumnya:

Menghentikan dan Migrasi

  • Untuk mematikan sebuah node agar tidak lagi menerima tugas Container (misal server mau dimatikan untuk maintenance):
    Ini disebut Migrasi, karena Swarm akan otomatis memindahkan semua Container di node tersebut ke node lain yang masih aktif.
  • Untuk menghentikan seluruh layanan aplikasi (Stack):
Last modified on July 22, 2026