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 upPerintah ini akan memulakan bekas untuk perkhidmatan yang ditakrifkan dalam
docker-compose.ymlfail. -
Berhenti dan keluarkan bekas:
docker-compose downPerintah ini menghentikan dan mengalih keluar semua bekas yang berkaitan dengan projek.
-
Senaraikan bekas yang sedang berjalan:
docker-compose psPerintah ini akan memaparkan status bekas dalam projek.
-
Lihat log perkhidmatan:
docker-compose logsPerintah 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.

