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.