Docker Compose: Dasar dan Penggunaan

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.