Masdika Loading..
Masdika.ID

DevOps Engineer

Cloud Engineer

System Administrator

  • Home
  • Portfolio
  • Services
  • Resume
  • Skills
  • Blog
  • Contact
Masdika.ID

DevOps Engineer

Cloud Engineer

System Administrator

Download CV

Recent Posts

  • Dari Laptop Bekas Jadi Server Pribadi: Cara Membangun Home Server Murah Menggunakan ISP MyRepublic dengan Public IP
  • Pembuatan Subnet dan Alokasi IP Address pada Amazon Web Service VPC
  • Instalasi dan Konfigurasi AWS CLI pada EC2 (Lab Guide)
  • Membangun Arsitektur Web + Database Highly Available di AWS (RDS Multi-AZ)
  • Cara Reset Password OpenBSD di Proxmox via VNC

Recent Comments

  1. Alif on Jangan Gunakan latest Tag pada Docker Images! Ini Alasannya
  2. Sahrull on Panduan Lengkap Anti-DDoS: Installasi Iptables, Hardening, dan Cloudflare Proxy
  3. VSTRA on Cara Cerdas Menguasai Kubernetes (K8s): Panduan Lengkap Orkestrasi Kontainer untuk Developer Modern
  4. Rikiy on Cara Mudah Deploy Website Node.js Menggunakan Docker
  5. Masdika.BIZ.ID on Disaster Recovery Cluster (DRC) WordPress dengan MariaDB Galera dan Load Balancer Caddy

Categories

  • Tutorial

Masdika.ID

  • About
  • Terms & Conditions
  • Privacy Policy
BLOG POST

Update Docker Image Tanpa Hentikan Layanan: Solusi untuk Production!

July 24, 2025 Tutorial by Masdika.ID
Update Docker Image Tanpa Hentikan Layanan: Solusi untuk Production!

Menjaga agar layanan tetap berjalan tanpa henti adalah kunci keberhasilan sebuah sistem production. Artikel ini membahas cara update Docker container tanpa downtime, serta mengotomatisasi proses tersebut menggunakan Watchtower. Pendekatan ini sangat cocok untuk layanan penting seperti email server, database, ataupun web server berbasis Docker.

❌ Masalah Umum Saat Update Container

Kebanyakan pengguna melakukan update seperti ini:

docker compose down
docker compose pull
docker compose up -d

Sayangnya, ini menyebabkan downtime karena container dimatikan dulu sebelum dijalankan kembali.

✅ Solusi: Update Tanpa Downtime

Gunakan perintah berikut agar container direstart dengan image terbaru tanpa menghentikan service lainnya:

docker compose up -d --no-deps --force-recreate

Contoh struktur direktori:

/home/andika/mail.masdika.biz.id/
├── data/
└── docker-compose.yml

Isi docker-compose.yml:

services:
  mailserver:
    image: analogic/poste.io
    container_name: poste
    restart: always
    hostname: mail.masdika.biz.id
    ports:
      - "25:25"
      - "465:465"
      - "587:587"
      - "110:110"
      - "143:143"
      - "993:993"
      - "80:80"
      - "443:443"
      - "4190:4190"
    environment:
      - HTTPS=ON
    volumes:
      - ./data:/data
    healthcheck:
      test: ["CMD", "wget", "--spider", "-q", "http://localhost"]
      interval: 30s
      timeout: 10s
      retries: 5

  watchtower:
    image: containrrr/watchtower
    container_name: watchtower
    volumes:
      - /var/run/docker.sock:/var/run/docker.sock
    command: --cleanup --rolling-restart

🔧 Langkah Update Manual Tanpa Downtime

  1. Masuk ke direktori project:
cd /home/andika/mail.masdika.biz.id
  1. Tarik image terbaru:
docker compose pull
  1. Jalankan ulang container dengan image baru:
docker compose up -d --no-deps --force-recreate
  1. Cek status container:
docker ps
  1. (Opsional) Hapus image lama yang tidak digunakan:
docker image prune -f

🧠 Kenapa Wajib Pakai healthcheck:?

Healthcheck memberi tahu Docker kapan container siap digunakan. Ini penting untuk:

  • Load balancer
  • Monitoring tools seperti Prometheus
  • Restart otomatis yang aman dengan Watchtower

🤖 Otomatisasi Update dengan Watchtower

Watchtower adalah tool yang memantau container Docker, dan jika image terbaru tersedia, dia akan otomatis:

  • Pull image
  • Restart container dengan aman
  • Menghapus image lama

Watchtower juga mendukung rolling-restart, jadi tidak semua container dimatikan bersamaan.

Setelah semua dijalankan:

docker compose up -d

Cek hasil:

docker ps
CONTAINER ID   IMAGE                   ...   NAMES
9f3e878893da   containrrr/watchtower        watchtower
fe5c4ab54d9f   analogic/poste.io           poste

⚙️ Tips Produksi

  • Gunakan tag :latest hanya jika siap menerima update otomatis
  • Backup volume secara berkala
  • Aktifkan logging dan pemantauan (Promtail, Grafana, dsb)
  • Gunakan VPS dengan kernel modern dan I/O cepat

📌 Kesimpulan

Dengan kombinasi docker compose dan Watchtower, kamu bisa melakukan update container tanpa downtime, dan bahkan mengotomatisasinya. Ini sangat penting terutama jika kamu menjalankan layanan yang bersifat kritikal seperti email, database, reverse proxy, atau monitoring.

Tidak hanya mempermudah deployment, pendekatan ini juga memperkuat postur keamanan dengan selalu menggunakan image terbaru yang sudah ditambal keamanannya.

Share:
Tags: dockerimageslinux
Related Posts
Cara Reset Password OpenBSD di Proxmox via VNC

Kalau kamu lupa password OpenBSD di VM Proxmox, kamu tidak perlu reinstall. Cukup masuk lewat VNC console dan reset dari…

Panduan Download ISO dan Aktivasi Red Hat No-Cost

Panduan ini menjelaskan cara mendapatkan Red Hat Enterprise Linux (RHEL) secara gratis (resmi) menggunakan Developer Subscription, mulai dari download ISO…

Post navigation

Prev
Next
Write a comment Cancel Reply


© 2025 www.masdika.id — Semua hak cipta dilindungi