Docker Compose ایک طاقتور اور مقبول ٹول ہے جو کہ پر مبنی ایپلیکیشنز کے انتظام اور تعیناتی کے لیے استعمال ہوتا ہے Docker ۔ Docker یہ آپ کو ایک پروجیکٹ کے طور پر متعدد کنٹینرز کی وضاحت، ترتیب دینے اور چلانے کی اجازت دیتا ہے ، ایپلیکیشن کی تعیناتی کو آسان بناتا ہے اور ترقی اور پیداوار کے ماحول کے درمیان مستقل مزاجی کو یقینی بناتا ہے۔
ذیل میں کچھ تصورات اور مثالیں ہیں Docker Compose:
docker-compose.yml فائل کا استعمال کرتے ہوئے پروجیکٹ کی وضاحت کریں۔
فائل میں docker-compose.yml
، آپ اپنی درخواست کے لیے درکار خدمات کی وضاحت کر سکتے ہیں۔ مثال کے طور پر، ایک پی ایچ پی ویب ایپلیکیشن کو 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
پی ایچ پی 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
سروس پورٹ 80 کے بجائے پورٹ 8080 پر سنے گی۔
Docker سوام کے ساتھ انضمام
اگر آپ اپنی درخواست کو ایک سے زیادہ نوڈس کے ساتھ تقسیم شدہ ماحول پر تعینات کرنا چاہتے ہیں تو، Docker Compose کے ساتھ ضم کر سکتے ہیں Docker Swarm ۔ Docker یہ آپ کو کلسٹر میں متعدد نوڈس میں خدمات کا انتظام کرنے کی اجازت دیتا ہے ۔
اس انضمام کو استعمال کرنے کے لیے، آپ کو ماحول میں چلتے وقت --orchestrate
یا آپشنز کو شامل کرنے کی ضرورت ہے ۔ --with-registry-auth
docker stack deploy
docker-compose up
Swarm
Docker Compose آسان اور موثر ایپلیکیشن ڈویلپمنٹ، ٹیسٹنگ اور تعیناتی کے لیے ایک مفید ٹول ہے۔ یہ ترقی اور پیداواری ماحول کے درمیان فرق کو کم کرتا ہے، سافٹ ویئر کی ترقی کے عمل میں مستقل مزاجی کو یقینی بناتا ہے، اور ترقیاتی ٹیموں کی پیداواری صلاحیت کو بڑھاتا ہے۔