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 upPerintah ini akan memulai wadah untuk layanan yang ditentukan dalam
docker-compose.ymlfile. -
Hentikan dan keluarkan wadah:
docker-compose downPerintah ini menghentikan dan menghapus semua wadah yang terkait dengan proyek.
-
Daftar wadah yang sedang berjalan:
docker-compose psPerintah ini akan menampilkan status wadah dalam proyek.
-
Lihat log layanan:
docker-compose logsPerintah 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.

