![ڈاکر فائل میں 'کاپی' اور 'ایڈی ڈی' کمانڈز کے درمیان فرق کو سمجھنا](https://www.tempmail.us.com/images/04/04169ca3324eaf23caed5fea669d96e1-836px.webp/%DA%88%D8%A7%DA%A9%D8%B1-%D9%81%D8%A7%D8%A6%D9%84-%D9%85%DB%8C%DA%BA-%DA%A9%D8%A7%D9%BE%DB%8C-%D8%A7%D9%88%D8%B1-%D8%A7%DB%8C%DA%88%DB%8C-%DA%88%DB%8C-%DA%A9%D9%85%D8%A7%D9%86%DA%88%D8%B2-%DA%A9%DB%92-%D8%AF%D8%B1%D9%85%DB%8C%D8%A7%D9%86-%D9%81%D8%B1%D9%82-%DA%A9%D9%88-%D8%B3%D9%85%D8%AC%DA%BE%D9%86%D8%A7-836px.webp)
ڈاکر فائل کمانڈز کی وضاحت کی گئی۔
Dockerfile میں 'COPY' اور 'ADD' کمانڈز آپ کے کنٹینر کے فائل سسٹم میں فائلوں کو متعارف کرانے کے لیے کام کرتی ہیں، لیکن وہ الگ الگ خصوصیات اور بہترین استعمال کے منظرناموں کے ساتھ آتے ہیں۔ ان اختلافات کو سمجھنا Dockerfile کے موثر انتظام اور اس بات کو یقینی بنانے کے لیے ضروری ہے کہ آپ کی کنٹینرائزڈ ایپلی کیشنز توقع کے مطابق کارکردگی کا مظاہرہ کریں۔
جبکہ 'COPY' بنیادی طور پر سیدھی فائل کاپی کرنے کے لیے استعمال ہوتا ہے، 'ADD' اضافی صلاحیتیں پیش کرتا ہے، جیسے کہ ریموٹ یو آر ایل کو سنبھالنا اور کمپریسڈ فائلوں کو نکالنا۔ یہ مضمون ہر کمانڈ کی باریکیوں کو تلاش کرے گا، آپ کی رہنمائی کرے گا کہ آپ کے ڈوکر کی تعمیر کو بہتر بنانے کے لیے ایک دوسرے کو کب استعمال کرنا ہے۔
کمانڈ | تفصیل |
---|---|
FROM | ڈوکر امیج بننے کے لیے استعمال کرنے کے لیے بیس امیج کی وضاحت کرتا ہے۔ |
WORKDIR | کنٹینر کے اندر ورکنگ ڈائرکٹری سیٹ کرتا ہے۔ |
COPY | فائلوں یا ڈائریکٹریز کو میزبان سے کنٹینر کے فائل سسٹم میں کاپی کرتا ہے۔ |
ADD | فائلوں، ڈائریکٹریز، یا ریموٹ یو آر ایل کو کنٹینر کے فائل سسٹم میں شامل کرتا ہے اور فائل نکالنے کو سنبھال سکتا ہے۔ |
RUN | کنٹینر کے ماحول میں کمانڈ پر عمل کرتا ہے۔ |
EXPOSE | ڈوکر کو مطلع کرتا ہے کہ کنٹینر رن ٹائم پر مخصوص نیٹ ورک پورٹس پر سنتا ہے۔ |
ڈاکر فائل کمانڈز کی تفصیلی وضاحت
پہلا اسکرپٹ کے استعمال کو ظاہر کرتا ہے۔ COPY ڈوکر فائل میں کمانڈ۔ دی COPY ہدایت سیدھی ہے اور میزبان سسٹم سے فائلوں یا ڈائریکٹریوں کو ڈاکر کنٹینر کے فائل سسٹم میں کاپی کرنے کے لیے استعمال ہوتی ہے۔ اس مثال میں، اسکرپٹ کے ساتھ شروع ہوتا ہے FROM کمانڈ، جو بیس امیج کو بطور بیان کرتا ہے۔ python:3.8-slim-buster . دی WORKDIR کمانڈ کنٹینر کے اندر ورکنگ ڈائرکٹری کو سیٹ کرتا ہے۔ /app . اس کے بعد ہے۔ COPY کمانڈ، جو موجودہ ڈائرکٹری کے مندرجات کو میزبان پر کاپی کرتا ہے۔ /app کنٹینر میں ڈائریکٹری. فائلوں کو کاپی کرنے کے بعد، RUN کمانڈ کا استعمال ضروری Python پیکجوں کو انسٹال کرنے کے لیے کیا جاتا ہے requirements.txt فائل آخر میں، EXPOSE کمانڈ پورٹ 80 کو بیرونی دنیا کے لیے دستیاب کراتی ہے۔
اس کے برعکس، دوسرا اسکرپٹ کے استعمال کو نمایاں کرتا ہے۔ ADD ڈوکر فائل میں کمانڈ۔ پہلے اسکرپٹ کی طرح، اس کی شروعات سے ہوتی ہے۔ FROM بیس امیج سیٹ کرنے کا کمانڈ اور WORKDIR ورکنگ ڈائرکٹری کی وضاحت کرنے کے لئے کمانڈ۔ یہاں کلیدی فرق یہ ہے۔ ADD کمانڈ، جو ریموٹ یو آر ایل سے فائلیں شامل کرنے کے لیے استعمال ہوتی ہے، اس صورت میں، https://example.com/data/archive.tar.gz . دی ADD کمانڈ نہ صرف فائلوں کو کاپی کرتا ہے بلکہ اس میں کمپریسڈ فائلوں کو خود بخود نکالنے کی صلاحیت بھی ہوتی ہے، جیسا کہ اس کے بعد کی طرف سے ظاہر ہوتا ہے۔ RUN کمانڈ جو نکالتا ہے۔ archive.tar.gz میں فائل کریں /app ڈائریکٹری اس کے بعد، دی RUN کمانڈ مطلوبہ ازگر پیکجوں کو انسٹال کرتی ہے، اور EXPOSE کمانڈ پورٹ 80 کو دستیاب کرتا ہے۔
ڈاکر فائل میں کاپی کا استعمال
ڈاکر فائل کی مثال
# Use an official Python runtime as a parent image
FROM python:3.8-slim-buster
# Set the working directory in the container
WORKDIR /app
# Copy the current directory contents into the container at /app
COPY . /app
# Install any needed packages specified in requirements.txt
RUN pip install --no-cache-dir -r requirements.txt
# Make port 80 available to the world outside this container
EXPOSE 80
ڈاکر فائل میں ADD کا استعمال
ڈاکر فائل کی مثال
# Use an official Python runtime as a parent image
FROM python:3.8-slim-buster
# Set the working directory in the container
WORKDIR /app
# Add files from a remote URL
ADD https://example.com/data/archive.tar.gz /app/
# Extract the archive file
RUN tar -xzf /app/archive.tar.gz -C /app
# Install any needed packages specified in requirements.txt
RUN pip install --no-cache-dir -r requirements.txt
# Make port 80 available to the world outside this container
EXPOSE 80
ڈاکر فائل میں کاپی اور ADD کا گہرائی سے تجزیہ
جبکہ دونوں COPY اور ADD کمانڈز فائلوں کو میزبان سسٹم سے کنٹینر کے فائل سسٹم میں کاپی کرنے کا مقصد پورا کرتی ہیں، ان میں الگ خصوصیات ہیں اور ایسے کیسز استعمال کرتے ہیں جو ہر ایک کو مختلف منظرناموں میں مناسب بناتے ہیں۔ دی COPY کمانڈ آسان اور زیادہ متوقع ہے۔ یہ بنیادی فائل کاپی کرنے کے لیے بہترین طور پر استعمال کیا جاتا ہے جہاں کسی اضافی پروسیسنگ کی ضرورت نہیں ہے، جیسے کہ آرکائیوز کو نکالنا یا ریموٹ فائلوں کو بازیافت کرنا۔ یہ کمانڈ اس بات کو یقینی بناتی ہے کہ کنٹینر میں صرف مقامی فائلیں اور ڈائریکٹریز کاپی کی جائیں، اس طرح ایک صاف اور محفوظ ماحول کو برقرار رکھا جائے۔
دوسری طرف، the ADD کمانڈ زیادہ فعالیت فراہم کرتا ہے لیکن اضافی پیچیدگی اور ممکنہ حفاظتی خطرات کے ساتھ۔ دی ADD کمانڈ یو آر ایل ڈاؤن لوڈ کو سنبھال سکتا ہے اور خود بخود کمپریسڈ فائلوں کو نکال سکتا ہے جیسے .tar، .gzip، اور .bzip2. یہ ان صورتوں میں فائدہ مند ہو سکتا ہے جہاں آپ کی تعمیر کے عمل کے لیے ریموٹ اثاثوں یا آرکائیوز کی ضرورت ہوتی ہے جنہیں تصویر بنانے کے دوران نکالنے کی ضرورت ہوتی ہے۔ تاہم، یہ اضافی خصوصیات خطرات کے ساتھ آتی ہیں، جیسے کہ دور دراز کے مقامات سے ڈاؤن لوڈ کرتے وقت فائلوں کی غیر ارادی طور پر اوور رائٹنگ اور سیکیورٹی کے خطرات۔ لہذا، ان عوامل کے درمیان فیصلہ کرتے وقت احتیاط سے غور کرنا بہت ضروری ہے۔ COPY اور ADD.
Dockerfile میں COPY اور ADD کے بارے میں عام سوالات اور جوابات
- کا بنیادی استعمال کیا ہے؟ COPY ڈوکر فائل میں کمانڈ؟
- دی COPY کمانڈ بنیادی طور پر مقامی فائلوں اور ڈائریکٹریوں کو میزبان سسٹم سے ڈوکر کنٹینر میں کاپی کرنے کے لیے استعمال کیا جاتا ہے۔
- آپ کو کب استعمال کرنا چاہئے۔ ADD اس کے بجائے کمانڈ COPY?
- آپ کو استعمال کرنا چاہئے۔ ADD کمانڈ جب آپ کو کسی URL سے فائلوں کو کاپی کرنے کی ضرورت ہو یا جب آپ کو تعمیراتی عمل کے دوران کمپریسڈ فائلیں نکالنے کی ضرورت ہو۔
- استعمال کرنے کے حفاظتی مضمرات کیا ہیں۔ ADD کمانڈ؟
- دی ADD کمانڈ سیکیورٹی کے خطرات کو متعارف کروا سکتی ہے، خاص طور پر جب ریموٹ یو آر ایل سے فائلیں ڈاؤن لوڈ کرتے ہیں، کیونکہ یہ ممکنہ طور پر موجودہ فائلوں کو اوور رائٹ کر سکتا ہے یا کمزوریوں کو متعارف کرا سکتا ہے۔
- کر سکتے ہیں COPY کمانڈ ایکسٹریکٹ کمپریسڈ فائلز؟
- نہیں، دی COPY کمانڈ میں کمپریسڈ فائلوں کو نکالنے کی صلاحیت نہیں ہے۔ یہ صرف ان کی نقل کرتا ہے جیسا کہ وہ ہیں۔
- وہ کیسے ADD کمپریسڈ فائلوں کو مختلف طریقے سے ہینڈل کریں۔ COPY?
- دی ADD کمانڈ خود بخود کمپریسڈ فائلوں کو نکالتا ہے جیسے .tar، .gzip، اور .bzip2 جب وہ کنٹینر میں شامل ہوتے ہیں۔
- کیا اس کے ساتھ وائلڈ کارڈ استعمال کرنا ممکن ہے؟ COPY کمانڈ؟
- جی ہاں، آپ وائلڈ کارڈ کے ساتھ استعمال کر سکتے ہیں۔ COPY ایک سے زیادہ فائلوں یا ڈائرکٹریوں کو کاپی کرنے کا حکم جو ایک پیٹرن سے میل کھاتا ہے۔
- اگر یو آر ایل کو فراہم کیا جائے تو کیا ہوتا ہے۔ ADD کیا حکم قابل رسائی نہیں ہے؟
- اگر کو ایک URL فراہم کیا گیا ہے۔ ADD کمانڈ قابل رسائی نہیں ہے، ڈوکر بنانے کا عمل ناکام ہو جائے گا۔
- ایک سادہ، مقامی فائل کاپی آپریشن کے لیے آپ کو کون سا کمانڈ استعمال کرنا چاہیے؟
- سادہ، مقامی فائل کاپی آپریشنز کے لیے، آپ کو استعمال کرنا چاہیے۔ COPY کمانڈ کیونکہ یہ زیادہ سیدھا اور محفوظ ہے۔
- کر سکتے ہیں ADD کمانڈ مقامی اور دور دراز دونوں ذرائع سے فائلوں کو شامل کرنے کے لئے استعمال کیا جائے؟
- جی ہاں، ADD کمانڈ مقامی ذرائع اور ریموٹ یو آر ایل دونوں سے فائلوں کو شامل کر سکتا ہے، جس سے یہ کچھ مخصوص حالات میں زیادہ ورسٹائل بن جاتا ہے۔
ڈوکر کاپی اور ADD کمانڈز کو لپیٹنا
یہ سمجھنا کہ کب استعمال کرنا ہے۔ COPY اور ADD آپ کے ڈوکر فائل میں آپ کے کنٹینر کی تعمیر کو بہتر بنانے کے لیے ضروری ہے۔ جبکہ COPY مقامی فائلوں کے لیے سیدھا اور محفوظ ہے، ADD اضافی پیچیدگی اور ممکنہ حفاظتی خدشات کی قیمت پر اضافی صلاحیتیں فراہم کرتا ہے۔ اپنی مخصوص ضروریات کی بنیاد پر صحیح کمانڈ کا انتخاب آپ کی Docker امیجز کی کارکردگی اور حفاظت کو بڑھا سکتا ہے۔