Docker Compose เป็นเครื่องมือที่ทรงพลังและเป็นที่นิยมใช้สำหรับจัดการและปรับใช้แอปพลิเคชันตาม Docker. ช่วยให้คุณกำหนด กำหนดค่า และเรียกใช้ Docker คอนเทนเนอร์หลายรายการเป็นโครงการเดียว ลดความซับซ้อนในการปรับใช้แอปพลิเคชันและรับประกันความสอดคล้องระหว่างสภาพแวดล้อมการพัฒนาและการใช้งานจริง
ด้านล่างนี้คือแนวคิดและตัวอย่างของ Docker Compose:
กำหนดโครงการโดยใช้ไฟล์ docker-compose.yml
ใน docker-compose.yml ไฟล์ คุณสามารถกำหนดบริการที่จำเป็นสำหรับแอปพลิเคชันของคุณ ตัวอย่างเช่น หากต้องการปรับใช้เว็บแอปพลิเคชัน PHP กับฐานข้อมูล MySQL คุณสามารถกำหนดบริการได้สองอย่างดังนี้:
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
ในข้อมูลโค้ดข้างต้น เรากำหนดบริการสองรายการ: web และ db บริการ web จะใช้ PHP 7.4 image กับ Apache ฟังพอร์ต 80 และเมานต์ ./app ไดเร็กทอรีจากโฮสต์ไปยัง /var/www/html ไดเร็กทอรีในไฟล์ container. บริการ db จะใช้ MySQL 5.7 image และตั้งค่าตัวแปรสภาพแวดล้อมบางอย่างที่จำเป็นสำหรับฐานข้อมูล
โดยใช้ Docker Compose คำสั่ง
เมื่อคุณกำหนดโครงการใน docker-compose.yml ไฟล์แล้ว คุณสามารถใช้ Docker Compose คำสั่งเพื่อจัดการบริการได้
-
เริ่มโครงการ:
docker-compose upคำสั่งนี้จะเริ่มคอนเทนเนอร์สำหรับบริการที่กำหนดไว้ใน
docker-compose.ymlไฟล์ -
หยุดและนำคอนเทนเนอร์ออก:
docker-compose downคำสั่งนี้หยุดและลบคอนเทนเนอร์ทั้งหมดที่เกี่ยวข้องกับโปรเจ็กต์
-
แสดงรายการคอนเทนเนอร์ที่กำลังทำงานอยู่:
docker-compose psคำสั่งนี้จะแสดงสถานะของคอนเทนเนอร์ในโครงการ
-
ดูบันทึกการบริการ:
docker-compose logsคำสั่งนี้แสดงบันทึกของบริการในโครงการ
ตัวแปรสภาพแวดล้อมและการปรับแต่ง
Docker Compose อนุญาตให้คุณใช้ตัวแปรสภาพแวดล้อมเพื่อปรับแต่งการกำหนดค่าสำหรับสภาพแวดล้อมต่างๆ เช่น การพัฒนาและการผลิต คุณสามารถใช้ตัวแปรสภาพแวดล้อมใน docker-compose.yml ไฟล์และกำหนดค่าใน .env ไฟล์ ที่เกี่ยวข้อง
ตัวอย่างเช่น หากคุณต้องการกำหนดตัวแปรสภาพแวดล้อมสำหรับพอร์ตของบริการ web คุณสามารถเพิ่มบรรทัดใน .env ไฟล์ได้ดังนี้:
WEB_PORT=8080
จากนั้นใน docker-compose.yml ไฟล์ คุณสามารถใช้ตัวแปรสภาพแวดล้อมได้ดังนี้:
version: "3"
services:
web:
image: php:7.4-apache
ports:
- "${WEB_PORT}:80"
volumes:
- ./app:/var/www/html
เมื่อรัน docker-compose up คำสั่ง web บริการจะฟังที่พอร์ต 8080 แทนพอร์ต 80
การผสานรวมกับ Docker Swam
หากคุณต้องการปรับใช้แอปพลิเคชันของคุณในสภาพแวดล้อมแบบกระจายที่มีหลายโหนด คุณ สามารถ Docker Compose รวมเข้ากับ Docker Swarm สิ่งนี้ทำให้คุณสามารถจัดการบริการในหลาย ๆ โหนดใน Docker คลัสเตอร์
หากต้องการใช้การผสานรวมนี้ คุณเพียงแค่ต้องเพิ่ม --orchestrate หรือ --with-registry-auth ตัวเลือกเมื่อเรียกใช้ docker stack deploy หรือ docker-compose up คำสั่งใน Swarm สภาพแวดล้อม
Docker Compose เป็นเครื่องมือที่มีประโยชน์สำหรับการพัฒนา การทดสอบ และการปรับใช้แอปพลิเคชันที่ง่ายและมีประสิทธิภาพ ช่วยลดความแตกต่างระหว่างสภาพแวดล้อมการพัฒนาและการผลิต รับรองความสม่ำเสมอในกระบวนการพัฒนาซอฟต์แวร์ และเพิ่มประสิทธิภาพการทำงานของทีมพัฒนา

