Devops, Tutorial, Webdev

Belajar Docker Bagian 6

Eko Susilo Harjo September 29, 2024
docker part 6
docker part 6

Dalam pengembangan aplikasi modern, sering kali kita tidak hanya membutuhkan satu container untuk menjalankan aplikasi, tetapi beberapa container yang saling berinteraksi. Docker Compose hadir sebagai solusi untuk mengotomatisasi dan mengelola multi-container aplikasi dengan mudah. Pada artikel ini, kita akan membahas apa itu Docker Compose, cara menulis file docker-compose.yml, serta contoh konkret penerapannya pada setup WordPress.

Apa itu Docker Compose?

Docker Compose adalah alat yang memungkinkan kita untuk mendefinisikan dan mengelola multi-container Docker dengan menggunakan file konfigurasi sederhana (docker-compose.yml). Dengan Docker Compose, kita bisa mengatur seluruh environment aplikasi, menjalankan, menghentikan, dan bahkan scaling containers hanya dengan satu perintah.

Docker Compose sangat berguna untuk aplikasi yang membutuhkan lebih dari satu service, seperti database dan web server. Daripada menjalankan setiap container secara manual, Docker Compose mengotomatisasi proses tersebut sehingga lebih efisien dan terstruktur.

Menulis File docker-compose.yml

File docker-compose.yml berfungsi sebagai blueprint atau cetak biru untuk aplikasi multi-container. Di dalam file ini, kita bisa mendefinisikan semua services (container), network, dan volumes yang dibutuhkan oleh aplikasi.

Berikut adalah contoh sederhana dari file docker-compose.yml yang mendefinisikan dua service: web dan db.

version: '3'
services:
  web:
    image: nginx
    ports:
      - "8080:80"
  db:
    image: mysql:5.7
    environment:
      MYSQL_ROOT_PASSWORD: example

Pada file di atas, kita mendefinisikan dua container:

  1. web menggunakan image nginx, yang akan memetakan port 8080 di host ke port 80 di container.
  2. db menggunakan image mysql:5.7 dengan variabel environment untuk mendefinisikan password root MySQL.

Dengan file docker-compose.yml seperti ini, Anda dapat menjalankan kedua container tersebut dengan satu perintah.

Membuat dan Menjalankan Multi-Container Aplikasi

Setelah file docker-compose.yml selesai dibuat, Anda bisa menjalankan seluruh aplikasi (multi-container) hanya dengan perintah berikut:

docker-compose up

Perintah ini akan membuat dan menjalankan semua container yang didefinisikan dalam file docker-compose.yml. Untuk menghentikan aplikasi, Anda bisa menggunakan:

docker-compose down

Perintah ini tidak hanya menghentikan, tetapi juga menghapus semua container yang terkait dengan aplikasi tersebut. Namun, jika Anda ingin mempertahankan volume dan network, perintah ini tetap menjaga data yang tersimpan di volume agar tidak hilang.

Scaling Containers

Salah satu fitur menarik dari Docker Compose adalah kemampuannya untuk scaling atau memperbanyak jumlah container untuk service tertentu. Misalnya, jika Anda ingin menjalankan lebih dari satu instance dari web server, Anda bisa menggunakan perintah:

docker-compose up --scale web=3

Dengan perintah ini, Docker Compose akan menjalankan tiga instance dari container web.

Studi Kasus: Setup WordPress dengan Docker Compose

Untuk lebih memahami bagaimana Docker Compose bekerja, mari kita lihat studi kasus sederhana: Setup WordPress dengan Docker Compose. WordPress membutuhkan dua container: satu untuk menjalankan aplikasi WordPress itu sendiri, dan satu lagi untuk database MySQL.

Berikut adalah contoh file docker-compose.yml untuk WordPress:

version: '3.3'

services:
  db:
    image: mysql:5.7
    volumes:
      - db_data:/var/lib/mysql
    restart: always
    environment:
      MYSQL_ROOT_PASSWORD: example
      MYSQL_DATABASE: wordpress
      MYSQL_USER: user
      MYSQL_PASSWORD: password

  wordpress:
    image: wordpress:latest
    ports:
      - "8080:80"
    restart: always
    environment:
      WORDPRESS_DB_HOST: db:3306
      WORDPRESS_DB_USER: user
      WORDPRESS_DB_PASSWORD: password
      WORDPRESS_DB_NAME: wordpress
    volumes:
      - wordpress_data:/var/www/html

volumes:
  db_data: {}
  wordpress_data: {}

Penjelasan File:

  • Service db: Menggunakan image mysql:5.7 dengan pengaturan environment untuk database seperti nama database, username, dan password. Volume db_data digunakan untuk menyimpan data MySQL secara persisten.
  • Service wordpress: Menggunakan image wordpressdan memetakan port 8080 di host ke port 80 di container. Variabel environment digunakan untuk menghubungkan container WordPress dengan container MySQL (db) di jaringan yang sama.
  • Volumes: Dua volume didefinisikan di sini, db_data untuk menyimpan data MySQL dan wordpress_data untuk menyimpan file WordPress.

Menjalankan Setup WordPress

Untuk menjalankan setup WordPress ini, cukup jalankan perintah berikut:

docker-compose up

Setelah perintah ini dijalankan, Anda bisa membuka browser dan mengakses WordPress di http://localhost:8080. Jika Anda melihat halaman setup WordPress, berarti setup berhasil.

Docker Compose akan secara otomatis mengelola hubungan antara container wordpress dan db, sehingga Anda tidak perlu melakukan konfigurasi jaringan manual. Bahkan ketika container di-restart, data di MySQL dan WordPress tetap tersimpan berkat penggunaan volume.

Best Practices Menggunakan Docker Compose

  1. Gunakan Named Volumes: Selalu gunakan named volumes untuk memastikan data yang penting tetap tersimpan meskipun container dihapus. Seperti yang kita lakukan pada studi kasus di atas, named volumes memastikan data WordPress dan MySQL tetap ada.
  2. Scaling Services: Jika aplikasi membutuhkan performa yang lebih tinggi, gunakan fitur scaling untuk menambah container pada service yang dibutuhkan, seperti menambah lebih banyak container web.
  3. Jaga Ukuran File docker-compose.yml: Untuk aplikasi yang kompleks, bagi file docker-compose.yml menjadi beberapa file terpisah atau gunakan docker-compose.override.yml untuk konfigurasi spesifik pada environment tertentu.

Kesimpulan

Docker Compose adalah alat yang powerful untuk mengelola aplikasi multi-container secara otomatis. Dengan menggunakan file docker-compose.yml, Anda bisa menjalankan, menghentikan, dan menskalakan aplikasi hanya dengan beberapa perintah sederhana. Studi kasus setup WordPress di atas menunjukkan bagaimana Docker Compose bisa mempermudah deployment aplikasi dengan dependensi yang kompleks.

Mulailah eksplorasi lebih lanjut dengan Docker Compose dan lihat bagaimana alat ini dapat menyederhanakan workflow DevOps Anda!


Discover more from teknologi now

Subscribe to get the latest posts sent to your email.

Polars adalah pustaka open-source untuk pemrosesan data yang ditulis dalam bahasa Rust, yang terkenal dengan efisiensi dan kecepatan. Polars dirancang untuk menangani analisis data secara paralel, memanfaatkan arsitektur modern komputer yang memiliki banyak inti CPU.

“Pelajari konsep Docker persistence dan teknik seperti Docker volumes, bind mounts, dan tmpfs untuk memastikan data tetap aman dan persisten dalam container. Dapatkan panduan lengkap di sini!”

AI dalam dunia fintech telah berkembang pesat, bukan sekadar teknologi baru yang tiba-tiba muncul. Teknologi ini telah lama digunakan untuk membantu pengambilan keputusan keuangan dan mendeteksi penipuan. Kini, AI dan subdomainnya, yaitu Machine Learning (ML), memberikan nilai tambah signifikan dalam berbagai aspek industri fintech. Apa saja manfaat utama teknologi ini bagi sektor keuangan dan perbankan? […]

Discover more from teknologi now

Subscribe now to keep reading and get access to the full archive.

Continue reading