ڈاکر کے ساتھ شروعات: اپنی ایپلیکیشن کو کنٹینرائز کرنے کا فوری طریقہ
ڈاکر کے ساتھ شروعات: اپنی ایپلیکیشن کو کنٹینرائز کرنے کا فوری طریقہ
ڈاکر جدید سافٹ ویئر کی ترقی اور تعیناتی کا ایک لازمی حصہ بن چکا ہے۔ اگرچہ Kubernetes کے بارے میں بحثیں بہت زیادہ ہیں، لیکن ڈاکر اب بھی بہت سی کمپنیوں کے لیے ایپلی کیشنز بنانے، جانچنے اور تعینات کرنے کا ایک ترجیحی ٹول ہے۔ یہ مضمون آپ کو ڈاکر کے ساتھ تیزی سے شروعات کرنے، اس کے بنیادی تصورات کو سمجھنے اور ایک عملی مثال فراہم کرے گا تاکہ آپ کو اپنی ایپلیکیشن کو کنٹینرائز کرنے میں مدد مل سکے۔
ڈاکر کے بنیادی تصورات
عملی طور پر شروع کرنے سے پہلے، ڈاکر کے کچھ بنیادی تصورات کو سمجھنا ضروری ہے:
-
امیج (Image): امیج ایک صرف پڑھنے والا ٹیمپلیٹ ہے، جس میں ایپلیکیشن کو چلانے کے لیے درکار ہر چیز شامل ہوتی ہے: کوڈ، رن ٹائم ماحول، سسٹم ٹولز، لائبریریاں اور انحصار۔ یہ ورچوئل مشین امیج سے ملتا جلتا ہے، لیکن زیادہ ہلکا پھلکا ہے۔
-
کنٹینر (Container): کنٹینر ایک امیج سے بنایا گیا ایک چلتا ہوا انسٹینس ہے۔ یہ امیج کا ایک رن ٹائم انسٹینس ہے، جس میں ایپلیکیشن اور اس کے تمام انحصار شامل ہیں۔ کنٹینرز ایک دوسرے سے الگ تھلگ ہیں، ان کے اپنے فائل سسٹم، عمل اور نیٹ ورک کی جگہ ہوتی ہے۔
-
ڈاکر ہب (Docker Hub): ڈاکر ہب ایک عوامی امیج ریپوزٹری ہے، جہاں سے آپ پہلے سے تیار کردہ امیجز ڈاؤن لوڈ کر سکتے ہیں، اور اپنی امیجز بھی اپ لوڈ کر سکتے ہیں۔ یہ GitHub کی طرح ہے، لیکن خاص طور پر ڈاکر امیجز کے لیے ہے۔
-
ڈاکر فائل (Dockerfile): ڈاکر فائل ایک ٹیکسٹ فائل ہے، جس میں ڈاکر امیج بنانے کے لیے تمام ہدایات شامل ہوتی ہیں۔ ڈاکر فائل لکھ کر، آپ امیج بنانے کے عمل کو خودکار بنا سکتے ہیں۔
-
ڈاکر کمپوز (Docker Compose): ڈاکر کمپوز ایک ایسا ٹول ہے جو ملٹی کنٹینر ڈاکر ایپلی کیشنز کو متعین اور چلانے کے لیے استعمال ہوتا ہے۔ یہ آپ کو YAML فائل کا استعمال کرتے ہوئے ایپلیکیشن کی سروسز کو ترتیب دینے کی اجازت دیتا ہے، اور پھر ایک ہی کمانڈ کے ساتھ تمام سروسز کو شروع یا بند کر دیتا ہے۔
ڈاکر کی تنصیب
سب سے پہلے، آپ کو ڈاکر انسٹال کرنے کی ضرورت ہے۔ ڈاکر مختلف آپریٹنگ سسٹمز کے لیے انسٹالیشن پیکجز فراہم کرتا ہے۔ ڈاکر کی سرکاری ویب سائٹ پر جائیں اور متعلقہ ہدایات پر عمل کرتے ہوئے انسٹال کریں۔
انسٹالیشن مکمل ہونے کے بعد، آپ docker --version کمانڈ چلا کر تصدیق کر سکتے ہیں کہ ڈاکر صحیح طریقے سے انسٹال ہوا ہے۔
ایک سادہ پائتھون ایپلیکیشن کو کنٹینرائز کرنا
ہم ایک سادہ پائتھون ایپلیکیشن بنائیں گے، اور اسے ڈاکر کا استعمال کرتے ہوئے کنٹینرائز کریں گے۔
1. پائتھون ایپلیکیشن بنائیں
app.py نامی ایک فائل بنائیں، جس میں درج ذیل کوڈ شامل ہو:
from flask import Flask
app = Flask(__name__)
@app.route("/")
def hello():
return "Hello, Docker!"
if __name__ == "__main__":
app.run(debug=True, host='0.0.0.0')
یہ سادہ Flask ایپلیکیشن روٹ پاتھ / پر "Hello, Docker!" واپس کرے گی۔
2. requirements.txt فائل بنائیں
ایپلیکیشن Flask لائبریری پر منحصر ہے، ہمیں ان انحصاروں کا اعلان کرنے کے لیے ایک requirements.txt فائل بنانے کی ضرورت ہے۔
Flask
3. ڈاکر فائل بنائیں
Dockerfile نامی ایک فائل بنائیں، اور اس میں درج ذیل مواد شامل کریں:
# سرکاری پائتھون امیج کو بنیادی امیج کے طور پر استعمال کریں
FROM python:3.9-slim-buster
# کام کرنے والی ڈائریکٹری سیٹ کریں
WORKDIR /app
# requirements.txt فائل کو کام کرنے والی ڈائریکٹری میں کاپی کریں
COPY requirements.txt .
# انحصار انسٹال کریں
RUN pip install --no-cache-dir -r requirements.txt
```# ایپلیکیشن کوڈ کو ورکنگ ڈائریکٹری میں کاپی کریں
COPY app.py .
# پورٹ 5000 کو ظاہر کریں
EXPOSE 5000
# اسٹارٹ کمانڈ کی وضاحت کریں
CMD ["python", "app.py"]
Dockerfile کی وضاحت:
FROM python:3.9-slim-buster: بنیادی امیج کو Python 3.9 کا سلم ورژن بتاتا ہے۔WORKDIR /app: کنٹینر کے اندر ورکنگ ڈائریکٹری کو/appپر سیٹ کرتا ہے۔COPY requirements.txt .: موجودہ ڈائریکٹری سےrequirements.txtفائل کو کنٹینر کی/appڈائریکٹری میں کاپی کرتا ہے۔RUN pip install --no-cache-dir -r requirements.txt: کنٹینر کے اندرpipکمانڈ چلا کرrequirements.txtفائل میں بتائی گئی انحصار کو انسٹال کرتا ہے۔--no-cache-dirپیرامیٹر امیج کے سائز کو کم کر سکتا ہے۔COPY app.py .: موجودہ ڈائریکٹری سےapp.pyفائل کو کنٹینر کی/appڈائریکٹری میں کاپی کرتا ہے۔EXPOSE 5000: اعلان کرتا ہے کہ کنٹینر 5000 پورٹ پر سنے گا۔CMD ["python", "app.py"]: کنٹینر کے شروع ہونے پر چلنے والی کمانڈ کی وضاحت کرتا ہے۔
4. ڈاکر امیج بنائیں
Dockerfile پر مشتمل ڈائریکٹری میں، ڈاکر امیج بنانے کے لیے درج ذیل کمانڈ چلائیں:
docker build -t my-python-app .
docker build: امیج بنانے کی کمانڈ۔-t my-python-app: امیج کے لیے ایک نام (my-python-app) بتاتا ہے۔.: Dockerfile پر مشتمل ڈائریکٹری (موجودہ ڈائریکٹری) بتاتا ہے۔
تعمیر کے عمل میں کچھ وقت لگ سکتا ہے، جو نیٹ ورک کی رفتار اور انحصار کے سائز پر منحصر ہے۔
5. ڈاکر کنٹینر چلائیں
ڈاکر کنٹینر چلانے کے لیے درج ذیل کمانڈ استعمال کریں:
docker run -d -p 5000:5000 my-python-app
docker run: کنٹینر چلانے کی کمانڈ۔-d: کنٹینر کو ڈیٹیچڈ موڈ میں چلاتا ہے (پس منظر میں چلتا ہے)۔-p 5000:5000: میزبان مشین کی 5000 پورٹ کو کنٹینر کی 5000 پورٹ پر میپ کرتا ہے۔my-python-app: استعمال کرنے کے لیے امیج کا نام بتاتا ہے۔
6. ایپلیکیشن کی تصدیق کریں
براؤزر میں http://localhost:5000 پر جائیں، آپ کو "Hello, Docker!" نظر آنا چاہیے۔
7. کنٹینر کو روکیں اور حذف کریں
کنٹینر کو روکنے کے لیے درج ذیل کمانڈ استعمال کریں:
docker stop
`` کو docker ps کمانڈ کے ذریعے دیکھا جا سکتا ہے۔
کنٹینر کو حذف کرنے کے لیے درج ذیل کمانڈ استعمال کریں:
docker rm
ڈاکر کمپوز کا تعارف
اگر آپ کی ایپلیکیشن متعدد سروسز پر مشتمل ہے، تو آپ ان کا انتظام کرنے کے لیے ڈاکر کمپوز استعمال کر سکتے ہیں۔
1. docker-compose.yml فائل بنائیں
docker-compose.yml نامی ایک فائل بنائیں اور درج ذیل مواد شامل کریں:
version: "3.9"
services:
web:
image: my-python-app
ports:
- "5000:5000"
docker-compose.yml کی وضاحت:* version: "3.9": ڈاکر کمپوز فائل کا ورژن متعین کرتا ہے۔
services: ایپلیکیشن کی سروسز کی تعریف کرتا ہے۔web: "web" نامی سروس کی تعریف کرتا ہے۔image: my-python-app: سروس کے زیر استعمال امیج کی وضاحت کرتا ہے۔ports: پورٹ میپنگ کی تعریف کرتا ہے۔
2. ایپلیکیشن شروع کرنا
docker-compose.yml فائل پر مشتمل ڈائریکٹری میں، ایپلیکیشن شروع کرنے کے لیے درج ذیل کمانڈ چلائیں:
docker-compose up -d
docker-compose up: ایپلیکیشن شروع کرنے کی کمانڈ۔-d: کنٹینر کو ڈیٹیچڈ موڈ میں چلاتا ہے۔
3. ایپلیکیشن کو روکنا
ایپلیکیشن کو روکنے کے لیے درج ذیل کمانڈ استعمال کریں:
docker-compose down
ڈاکر سیکیورٹی کے بہترین طریقے
جیسا کہ بحث سے ظاہر ہوتا ہے، ڈاکر امیج کی سیکیورٹی ایک اہم مسئلہ ہے۔ یہاں ڈاکر سیکیورٹی کے کچھ بہترین طریقے ہیں:
- آفیشل امیجز استعمال کریں: جہاں تک ممکن ہو آفیشل طور پر فراہم کردہ امیجز استعمال کریں، ان امیجز کو عام طور پر سیکیورٹی اسکین اور مینٹین کیا جاتا ہے۔
- امیج میں موجود کمزوریوں کو اسکین کریں: Trivy جیسے ٹولز کا استعمال کرتے ہوئے امیج میں موجود معلوم کمزوریوں کو اسکین کریں اور امیج کو بروقت اپ ڈیٹ کریں۔
- کم سے کم اجازت کا اصول استعمال کریں: کنٹینر کو روٹ صارف کے طور پر چلانے سے گریز کریں۔
- کنٹینر کے وسائل کو محدود کریں: cgroups کا استعمال کرتے ہوئے کنٹینر کے CPU اور میموری کے استعمال کو محدود کریں۔
- امیجز کو باقاعدگی سے اپ ڈیٹ کریں: سیکیورٹی کی کمزوریوں کو دور کرنے کے لیے امیجز کو اپ ڈیٹ رکھیں۔
- سیکیورٹی اسکیننگ ٹولز استعمال کریں: Snyk، Clair جیسے ٹولز کو آپ کے CI/CD کے عمل میں ضم کیا جا سکتا ہے تاکہ امیج میں موجود کمزوریوں کو خود بخود اسکین کیا جا سکے۔
نتیجہ
یہ مضمون ڈاکر کے لیے ایک فوری آغاز گائیڈ فراہم کرتا ہے، جس میں بنیادی تصورات، تنصیب کے مراحل اور ایک سادہ Python ایپلیکیشن کی کنٹینرائزیشن کی مثال شامل ہے۔ ان بنیادی باتوں کو سیکھ کر، آپ ڈاکر کا استعمال کرتے ہوئے اپنی ایپلیکیشنز کو بنانا، جانچنا اور تعینات کرنا شروع کر سکتے ہیں۔ یاد رکھیں، حفاظت سب سے اہم ہے، اور ہمیشہ ڈاکر امیجز کی حفاظت پر توجہ دیں، اور اپنی ایپلیکیشنز کی حفاظت کے لیے مناسب اقدامات کریں۔ اگرچہ Kubernetes بڑے پیمانے پر کنٹینر آرکیسٹریشن کے لیے طاقتور ہے، لیکن ڈاکر بہت سے منظرناموں میں اب بھی ایک آسان اور موثر حل ہے۔ ڈاکر میں مہارت حاصل کر کے، آپ جدید سافٹ ویئر ڈویلپمنٹ اور تعیناتی کے چیلنجوں سے بہتر طور پر نمٹ سکتے ہیں۔





