Docker Compose adalah alat yang ampuh dan populer yang digunakan untuk mengelola dan menerapkan aplikasi berbasis Docker. Ini memungkinkan Anda untuk mendefinisikan, mengonfigurasi, dan menjalankan banyak Docker kontainer sebagai satu proyek, menyederhanakan penyebaran aplikasi dan memastikan konsistensi antara lingkungan pengembangan dan produksi.
Berikut adalah beberapa konsep dan contoh Docker Compose:
Tentukan proyek menggunakan file docker-compose.yml
Di dalam docker-compose.yml
file, Anda dapat menentukan layanan yang diperlukan untuk aplikasi Anda. Misalnya, untuk menerapkan aplikasi web PHP dengan database MySQL, Anda dapat menentukan dua layanan sebagai berikut:
version: "3"
services:
web:
image: php:7.4-apache
ports:
- "80:80"
volumes:
- ./app:/var/www/html
db:
image: mysql:5.7
environment:
MYSQL_ROOT_PASSWORD: password
MYSQL_DATABASE: my_database
Dalam cuplikan kode di atas, kami mendefinisikan dua layanan: web
dan db
. Layanan ini web
akan menggunakan PHP 7.4 image dengan Apache, mendengarkan pada port 80, dan me-mount ./app
direktori dari host ke /var/www/html
direktori di container. Layanan ini db
akan menggunakan MySQL 5.7 image dan menetapkan beberapa variabel lingkungan yang diperlukan untuk database.
Menggunakan Docker Compose perintah
Setelah Anda menentukan proyek dalam docker-compose.yml
file, Anda dapat menggunakan Docker Compose perintah untuk mengelola layanan.
-
Mulai proyek:
docker-compose up
Perintah ini akan memulai wadah untuk layanan yang ditentukan dalam
docker-compose.yml
file. -
Hentikan dan keluarkan wadah:
docker-compose down
Perintah ini menghentikan dan menghapus semua wadah yang terkait dengan proyek.
-
Daftar wadah yang sedang berjalan:
docker-compose ps
Perintah ini akan menampilkan status wadah dalam proyek.
-
Lihat log layanan:
docker-compose logs
Perintah ini menampilkan log layanan dalam proyek.
Variabel lingkungan dan kustomisasi
Docker Compose memungkinkan Anda menggunakan variabel lingkungan untuk menyesuaikan konfigurasi untuk lingkungan yang berbeda, seperti pengembangan dan produksi. Anda dapat menggunakan variabel lingkungan dalam docker-compose.yml
file dan menentukan nilainya dalam .env
file yang sesuai.
Misalnya, jika Anda ingin menentukan variabel lingkungan untuk port layanan web
, Anda dapat menambahkan baris ke .env
file seperti ini:
WEB_PORT=8080
Kemudian, di dalam docker-compose.yml
file, Anda dapat menggunakan variabel lingkungan seperti ini:
version: "3"
services:
web:
image: php:7.4-apache
ports:
- "${WEB_PORT}:80"
volumes:
- ./app:/var/www/html
Saat menjalankan docker-compose up
perintah, web
layanan akan mendengarkan pada port 8080, bukan port 80.
Mengintegrasikan dengan Docker Swam
Jika Anda ingin menerapkan aplikasi Anda pada lingkungan terdistribusi dengan banyak node, Docker Compose Anda dapat mengintegrasikannya dengan Docker Swarm. Ini memungkinkan Anda untuk mengelola layanan di beberapa node dalam sebuah Docker cluster.
Untuk menggunakan integrasi ini, Anda hanya perlu menambahkan opsi --orchestrate
or --with-registry-auth
saat menjalankan docker stack deploy
atau docker-compose up
perintah di Swarm lingkungan.
Docker Compose adalah alat yang berguna untuk pengembangan, pengujian, dan penerapan aplikasi yang mudah dan efisien. Ini meminimalkan perbedaan antara lingkungan pengembangan dan produksi, memastikan konsistensi dalam proses pengembangan perangkat lunak, dan meningkatkan produktivitas tim pengembangan.