
Daftar Isi
Anda merasa repot harus menjalankan banyak container Docker satu per satu setiap kali ingin memulai proyek? Misalnya, satu untuk database, satu untuk backend, satu lagi untuk frontend—dan semuanya perlu diatur ulang setiap kali restart server. Ribet, bukan?
Nah, di sinilah Docker Compose datang sebagai penyelamat. Dengan hanya satu file konfigurasi, Anda bisa menjalankan beberapa container sekaligus, lengkap dengan pengaturan jaringan, volume, dan dependensinya.
Namun, banyak pemula sering bingung saat pertama kali membuat Docker Compose file.
“Bagaimana formatnya?”
“Harus disimpan di mana?”
“Bagaimana cara menulisnya dengan benar agar tidak error?”
Tenang—artikel ini akan menjadi panduan lengkap Anda.
Setelah membaca sampai akhir, Anda akan memahami:
- Apa itu Docker Compose dan bagaimana cara kerjanya.
- Struktur dasar file
docker-compose.yml. - Langkah demi langkah membuat dan menjalankan Docker Compose.
- Tips agar file Compose Anda lebih mudah dikelola.
Apa Itu Docker Compose?
Docker Compose adalah alat yang digunakan untuk mendefinisikan dan menjalankan aplikasi multi-container di Docker menggunakan satu file konfigurasi berformat YAML (docker-compose.yml).
Dengan Compose, Anda hanya perlu satu perintah:
docker-compose up -d…dan semua container yang Anda definisikan akan langsung berjalan.
Tanpa perlu lagi menjalankan container satu per satu secara manual!
Struktur Dasar File Docker Compose
Sebelum membuat file Compose, pahami dulu struktur dasarnya:
version: '3'
services:
nama_service:
image: nama_image
ports:
- "host_port:container_port"
volumes:
- "host_path:container_path"
environment:
- VARIABLE=valueMari kita bahas sedikit:
- version → Menentukan versi format Compose (umumnya ‘3’ atau ‘3.8’).
- services → Daftar container yang akan dijalankan.
- image → Nama image Docker yang akan digunakan.
- ports → Menghubungkan port antara host dan container.
- volumes → Mengatur penyimpanan data agar tidak hilang.
- environment → Menentukan variabel lingkungan (seperti username, password, dll).
Langkah-Langkah Membuat Docker Compose File
1. Siapkan Lingkungan Docker
Pastikan Docker dan Docker Compose sudah terinstal. Cek dengan:
docker --version
docker-compose --versionJika belum terpasang, Anda bisa menginstalnya di Rocky Linux, Ubuntu, atau Windows melalui dokumentasi resmi Docker.
2. Buat File docker-compose.yml
Buat file baru di dalam folder proyek Anda:
nano docker-compose.ymlLalu masukkan konfigurasi dasar. Contoh sederhana untuk aplikasi web berbasis Nginx dan database MySQL:
version: '3.8'
services:
web:
image: nginx:latest
ports:
- "8080:80"
volumes:
- ./html:/usr/share/nginx/html
db:
image: mysql:5.7
environment:
- MYSQL_ROOT_PASSWORD=root123
- MYSQL_DATABASE=appdb
- MYSQL_USER=user
- MYSQL_PASSWORD=pass123
volumes:
- db_data:/var/lib/mysql
volumes:
db_data:
Penjelasan singkat:
- web → Menjalankan container berbasis Nginx dengan direktori
./htmldi host. - db → Container MySQL dengan variabel lingkungan dan volume untuk menyimpan data.
- volumes: di bagian bawah → Mendefinisikan volume bernama
db_data.
3. Jalankan Docker Compose
Setelah file selesai, jalankan perintah berikut untuk membuat dan menjalankan semua service:
docker-compose up -dOpsi -d artinya berjalan di background.
Untuk memastikan semua container sudah aktif:
docker-compose psJika Anda ingin menghentikannya:
docker-compose down4. Melihat Log dan Status
Ingin melihat log masing-masing service? Gunakan:
docker-compose logs -fAtau log spesifik untuk satu service:
docker-compose logs web5. Tips Penting Saat Membuat Docker Compose
- Gunakan indentasi (spasi) dengan benar. File YAML sangat sensitif terhadap spasi.
- Gunakan versi terbaru Compose (3.8) agar kompatibel dengan Docker modern.
- Pisahkan environment ke file
.envjika ingin menjaga keamanan variabel seperti password. - Gunakan volume terpisah agar data tidak hilang saat container dihapus.
Anda sudah tahu cara membuat Docker Compose file dari nol — mulai dari struktur, sintaks, hingga menjalankannya dengan perintah tunggal. Dengan Compose, pengelolaan aplikasi multi-container menjadi lebih efisien dan mudah diatur.
Ingin melangkah lebih jauh?
Baca juga: Cara Menghubungkan Beberapa Container Menggunakan Docker Network — agar setiap service Anda bisa saling berkomunikasi dengan aman dan cepat.
