Docker Compose: Asas dan Penggunaan

Docker Compose ialah alat yang berkuasa dan popular yang digunakan untuk mengurus dan menggunakan aplikasi berdasarkan Docker. Ia membolehkan anda mentakrif, mengkonfigurasi dan menjalankan berbilang Docker bekas sebagai satu projek, memudahkan penggunaan aplikasi dan memastikan konsistensi antara pembangunan dan persekitaran pengeluaran.

Di bawah adalah beberapa konsep dan contoh Docker Compose:

Tentukan projek menggunakan fail docker-compose.yml

Dalam docker-compose.yml fail, anda boleh menentukan perkhidmatan yang diperlukan untuk aplikasi anda. Sebagai contoh, untuk menggunakan aplikasi web PHP dengan pangkalan data MySQL, anda boleh menentukan dua perkhidmatan seperti 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 coretan kod di atas, kami mentakrifkan dua perkhidmatan: web dan db. Perkhidmatan ini web akan menggunakan PHP 7.4 image dengan Apache, mendengar pada port 80 dan melekapkan ./app direktori daripada hos ke dalam /var/www/html direktori dalam container. Perkhidmatan ini db akan menggunakan MySQL 5.7 image dan menetapkan beberapa pembolehubah persekitaran yang diperlukan untuk pangkalan data.

 

Menggunakan Docker Compose arahan

Sebaik sahaja anda telah menentukan projek dalam docker-compose.yml fail, anda boleh menggunakan Docker Compose arahan untuk mengurus perkhidmatan.

  • Mulakan projek: docker-compose up

    Perintah ini akan memulakan bekas untuk perkhidmatan yang ditakrifkan dalam docker-compose.yml fail.

  • Berhenti dan keluarkan bekas: docker-compose down

    Perintah ini menghentikan dan mengalih keluar semua bekas yang berkaitan dengan projek.

  • Senaraikan bekas yang sedang berjalan: docker-compose ps

    Perintah ini akan memaparkan status bekas dalam projek.

  • Lihat log perkhidmatan: docker-compose logs

    Perintah ini menunjukkan log perkhidmatan dalam projek.

 

Pembolehubah persekitaran dan penyesuaian

Docker Compose membolehkan anda menggunakan pembolehubah persekitaran untuk menyesuaikan konfigurasi untuk persekitaran yang berbeza, seperti pembangunan dan pengeluaran. Anda boleh menggunakan pembolehubah persekitaran dalam docker-compose.yml fail dan menentukan nilainya dalam .env fail yang sepadan.

Sebagai contoh, jika anda ingin menentukan pembolehubah persekitaran untuk port perkhidmatan web, anda boleh menambah baris pada .env fail seperti ini:

WEB_PORT=8080

Kemudian, dalam docker-compose.yml fail, anda boleh menggunakan pembolehubah persekitaran ini seperti ini:

version: "3"  
services:  
  web:  
    image: php:7.4-apache  
    ports:  
   - "${WEB_PORT}:80"  
    volumes:  
   - ./app:/var/www/html  

Apabila menjalankan docker-compose up arahan, web perkhidmatan akan mendengar pada port 8080 dan bukannya port 80.

 

Bersepadu dengan Docker Swam

Jika anda ingin menggunakan aplikasi anda pada persekitaran yang diedarkan dengan berbilang nod, Docker Compose boleh disepadukan dengan Docker Swarm. Ini membolehkan anda mengurus perkhidmatan merentas berbilang nod dalam Docker kelompok.

Untuk menggunakan penyepaduan ini, anda hanya perlu menambah pilihan --orchestrate atau --with-registry-auth semasa menjalankan docker stack deploy atau docker-compose up mengarahkan dalam Swarm persekitaran.

 

Docker Compose ialah alat yang berguna untuk pembangunan, pengujian dan penggunaan aplikasi yang mudah dan cekap. Ia meminimumkan perbezaan antara persekitaran pembangunan dan pengeluaran, memastikan konsistensi dalam proses pembangunan perisian, dan meningkatkan produktiviti pasukan pembangunan.