Recraftory

Docker Compose

Mengelola multi-container dengan Docker Compose

Apa itu Docker Compose

  • Alat untuk menjalankan dan mengelola banyak container sekaligus
  • Menggunakan file konfigurasi docker-compose.yml
  • Memudahkan orkestrasi aplikasi yang terdiri dari beberapa layanan

Konsep Dasar

Service

  • Definisi container yang akan dijalankan
  • Setiap service memiliki nama dan konfigurasi sendiri
  • Service dapat berkomunikasi satu sama lain dalam satu network

Volume

  • Penyimpanan persisten yang dibagikan antar container
  • Data tetap tersimpan meski container dihapus
  • Didefinisikan di bagian volumes

Network

  • Jaringan internal untuk komunikasi antar service
  • Service dalam satu network dapat saling berkomunikasi dengan nama service

Contoh docker-compose.yml

version: '3.8'

services:
  web:
    build: .
    ports:
      - "3000:3000"
    environment:
      - NODE_ENV=production
    depends_on:
      - db

  db:
    image: postgres:15-alpine
    environment:
      POSTGRES_USER: user
      POSTGRES_PASSWORD: password
      POSTGRES_DB: mydb
    volumes:
      - db-data:/var/lib/postgresql/data

volumes:
  db-data:

Perintah Docker Compose

  • docker compose up — membuat dan menjalankan semua service
  • docker compose up -d — menjalankan di background
  • docker compose down — menghentikan dan menghapus container
  • docker compose ps — melihat status service
  • docker compose logs — melihat log dari service
  • docker compose build — membuild ulang image

Keuntungan Menggunakan Docker Compose

  • Satu file konfigurasi untuk seluruh aplikasi
  • Mudah menjalankan lingkungan development yang kompleks
  • Service dapat saling bergantung dengan depends_on
  • Konfigurasi environment terpusat dalam satu file