انڈروئد

ڈاکفائل کے ساتھ ڈوکر کی تصاویر کیسے بنائیں

سوا - غابة المعمورة تواجه خطر الاندثار

سوا - غابة المعمورة تواجه خطر الاندثار

فہرست کا خانہ:

Anonim

ایک ڈاکر امیج ڈوکر کنٹینرز کا بلیو پرنٹ ہے جس میں ایپلی کیشن اور ہر وہ چیز شامل ہے جس میں آپ کو ایپلی کیشن چلانے کی ضرورت ہے۔ کنٹینر ایک شبیہہ کا رن ٹائم مثال ہے۔

اس ٹیوٹوریل میں ، ہم اس بات کی وضاحت کریں گے کہ ڈوکفائل کیا ہے ، ایک کیسے تیار کیا جائے ، اور ڈوک فائل کے ساتھ ڈوکر امیج کیسے بنایا جائے۔

ڈوکفائل کیا ہے؟

ڈاکفائل ایک ٹیکسٹ فائل ہے جس میں وہ تمام کمانڈز شامل ہیں جو صارف تصویر بنانے کے لئے کمانڈ لائن پر چلا سکتا ہے۔ اس میں ڈوکر کو امیج بنانے کے لئے درکار تمام ہدایات شامل ہیں۔

ڈوکر امیجز فائل سسٹم پرتوں کی ایک سیریز سے بنی ہیں جو امیج کی ڈوکفائل میں ہدایات کی نمائندگی کرتی ہیں جو ایک قابل عمل سافٹ ویئر ایپلی کیشن بناتی ہیں۔

ڈوکر فائل درج ذیل شکل لیتی ہے۔

# Comment INSTRUCTION arguments

INSTRUCTION معاملے سے حساس نہیں ہے ، لیکن کنونشن میں اپنے ناموں کے لئے اپپرکا استعمال کرنا ہے۔

ذیل میں فہرست میں دی گئی ہے جو کچھ سب سے زیادہ استعمال ہونے والی ڈوکفائل ہدایات کی مختصر وضاحت کے ساتھ ہے۔

  • اے آر جی - یہ ہدایات آپ کو متغیرات کی وضاحت کرنے کی اجازت دیتی ہے جو تعمیراتی وقت پر منتقل کی جاسکتی ہیں۔ آپ ڈیفالٹ ویلیو بھی مرتب کرسکتے ہیں۔ منجانب - ایک نئی شبیہہ بنانے کے لئے بیس امیج۔ یہ ہدایات ڈاکفائل میں پہلی بار غیر تبصرہ ہدایت ہونی چاہئے۔ اس اصول سے صرف ایک استثناء ہے جب آپ FROM دلیل میں متغیر استعمال کرنا چاہتے ہیں۔ اس معاملے میں ، ایک سے زیادہ اے ARG ہدایات کے ذریعہ ایف ARG ہوسکتا ہے۔ لیبل - کسی تصویر میں میٹا ڈیٹا شامل کرنے کے لئے استعمال کیا جاتا ہے ، جیسے تفصیل ، ورژن ، مصنف.. وغیرہ آپ ایک سے زیادہ LABEL کی وضاحت کرسکتے ہیں ، اور ہر LABEL ہدایات ایک اہم قدر کی جوڑی ہے۔ رن - اس ہدایت میں بتائے گئے احکامات کو تعمیراتی عمل کے دوران عمل میں لایا جائے گا۔ ہر RUN ہدایات موجودہ امیج کے اوپری حصے میں ایک نئی پرت بناتی ہیں۔ ADD - ڈاکر امیج پر مخصوص منبع سے فائلوں اور ڈائریکٹریوں کو مخصوص منزل تک کاپی کرنے کے لئے استعمال ہوتا ہے۔ منبع مقامی فائلیں یا ڈائریکٹریز یا یو آر ایل ہوسکتا ہے۔ اگر منبع مقامی ٹار آرکائو ہے تو پھر یہ خودبخود ڈاکر کی تصویر میں کھول دی جاتی ہے۔ کاپی - ADD طرح لیکن ذرائع صرف مقامی فائل یا ڈائریکٹری ہوسکتی ہے۔ ENV - یہ ہدایات آپ کو ماحولیاتی متغیر کی وضاحت کرنے کی اجازت دیتی ہے۔ سی ایم ڈی - کسی کمانڈ کی وضاحت کرنے کے لئے استعمال کیا جاتا ہے جو آپ کنٹینر چلاتے وقت عملدرآمد کیا جائے گا۔ آپ اپنے ڈاک فائل میں صرف ایک CMD ہدایت استعمال کرسکتے ہیں۔ ENTRYPOINT - CMD طرح ہی ، یہ ہدایات اس بات کی وضاحت کرتی ہے کہ کنٹینر چلاتے وقت کون سا حکم نافذ کیا جائے گا۔ ورکر - اس ہدایت نامہ کے لئے موجودہ ورکنگ ڈائرکٹری کا تعین کرتا ہے ، CMD ، ENTRYPOINT ، COPY ، اور شامل کریں ہدایات۔ صارف - استعمال ENTRYPOINT لئے استعمال ENTRYPOINT نام یا UID کو درج کریں جب کوئی بھی مندرجہ ذیل RUN ، CMD ، ENTRYPOINT ، COPY اور ADD ہدایات RUN ۔ VOLUME - آپ کو کنٹینر میں میزبان مشین ڈائرکٹری نصب کرنے کے قابل بناتا ہے۔ ایکسپوز - بندرگاہ کی وضاحت کرنے کے لئے استعمال کیا جاتا ہے جس پر کنٹینر رن ٹائم کے وقت سنتا ہے۔

، فائلوں اور ڈائریکٹریوں کو تصویر میں شامل کرنے سے خارج کرنے کے .dockerignore the ، سیاق و سباق کی ڈائریکٹری میں ایک .dockerignore فائل بنائیں۔ .dockerignore کا نحو Git کی .gitignore فائل میں سے ایک سے .dockerignore ہے۔

ڈاکففائل ہدایات کی مکمل حوالہ اور تفصیلی وضاحت کیلئے آفیشل ڈوکفائل ریفرنس پیج دیکھیں۔

ایک ڈوکفائل بنائیں

ڈوکر امیجز بناتے وقت سب سے عام منظر نامہ یہ ہے کہ کسی رجسٹری (عام طور پر ڈوکر حب سے) سے موجود تصویر کو کھینچنا اور بیس امیج میں جو تبدیلیاں لانا چاہتے ہو ان کی وضاحت کریں۔ ڈوکر کی تصاویر بناتے وقت عام طور پر استعمال شدہ بیس امیجائپ الائپائن ہوتی ہے کیونکہ یہ رام میں چلانے کے لئے چھوٹی اور بہتر ہے۔

ڈوکر حب کلاؤڈ بیسڈ رجسٹری سروس ہے جو دیگر خصوصیات کے علاوہ ڈوکر کی تصاویر کو عوامی یا نجی مخزن میں رکھنے کے لئے استعمال ہوتی ہے۔

اس مثال میں ، ہم ریڈیس سرور کے لئے ایک ڈوکر امیج بنائیں گے۔ ہم بیس امیج کے طور پر تازہ ترین اوبنٹو 18.04 استعمال کریں گے۔

پہلے ، ایک ڈائرکٹری بنائیں جس میں ڈاکففائل اور تمام ضروری فائلیں ہوں گی۔

mkdir ~/redis_docker

ڈائرکٹری پر جائیں اور درج ذیل ڈوکفائل بنائیں:

cd ~/redis_docker nano Dockerfile گودی

FROM ubuntu:18.04 RUN apt-get update && \ apt-get install -y redis-server && \ apt-get clean EXPOSE 6379 CMD

آئیے ڈوکفائل میں سے ہر ایک لائن کا مفہوم واضح کریں:

  • لائن 1 ہم بیس امیج کی وضاحت کر رہے ہیں۔ لائن 3 میں شروع ہونے والی RUN ہدایات آپٹ انڈیکس کو اپ ڈیٹ کریں گی ، "ریڈائس سرور" پیکج کو انسٹال کریں گی اور اپٹ کیشے کو صاف کریں گی۔ ہدایات میں استعمال ہونے والے کمانڈز ایک جیسے ہیں جو آپ اوبنٹو سرور پر EXPOSE انسٹال کرنے کے لئے استعمال کریں گے۔ EXPOSE ہدایات بندرگاہ کی وضاحت کرتی ہے جس پر ریڈیس سرور سنتا ہے۔ آخری لائن میں ، ہم ڈیفالٹ کمانڈ ترتیب دینے کے لئے CMD ہدایت کا استعمال کررہے ہیں۔ جب اس پر عملدرآمد کیا جائے گا جب کنٹینر چلتا ہے۔

فائل کو محفوظ کریں اور ایڈیٹر کو بند کریں۔

شبیہہ کی تعمیر

اگلا قدم شبیہہ کی تعمیر ہے۔ ایسا کرنے کے لئے ، ڈائرکفائل واقع ہے جہاں سے ڈائریکٹری سے مندرجہ ذیل کمانڈ چلائیں:

docker build -t linuxize/redis.

آپشن -t شبیہہ کا نام اور اختیاری طور پر صارف نام اور ٹیگ کو 'صارف نام / تصویری نام: ٹیگ' کی شکل میں بتاتا ہے۔

تعمیر کے عمل کی پیداوار کچھ اس طرح نظر آئے گی:

Sending build context to Docker daemon 3.584kB Step 1/4: FROM ubuntu:18.04 ---> 7698f282e524 Step 2/4: RUN apt-get update && apt-get install -y gosu redis-server && apt-get clean ---> Running in e80d4dd69263… Removing intermediate container e80d4dd69263 ---> e19fb7653fca Step 3/4: EXPOSE 6379 ---> Running in 8b2a45f457cc Removing intermediate container 8b2a45f457cc ---> 13b92565c201 Step 4/4: CMD ---> Running in a67ec50c7048 Removing intermediate container a67ec50c7048 ---> d8acc14d9b6b Successfully built d8acc14d9b6b Successfully tagged linuxize/redis:latest

جب تعمیر کا عمل مکمل ہوجائے گا تو نئی تصویر شبیہہ کی فہرست میں درج کی جائے گی۔

docker image ls

REPOSITORY TAG IMAGE ID CREATED SIZE linuxize/redis latest d8acc14d9b6b 4 minutes ago 100MB ubuntu 18.04 7698f282e524 5 days ago 69.9MB

کنٹینر چل رہا ہے

اب جب یہ تصویر بنائی گئی ہے تو آپ اس سے ایک کنٹینر چلاتے ہوئے چلاتے ہیں:

docker run -d -p 6379:6379 --name redis linuxize/redis

-d اختیارات ڈوکر کو کنٹینر کو علیحدہ موڈ میں چلانے کو کہتے ہیں ، -p 6379:6379 آپشن بندرگاہ 6379 میزبان مشین میں شائع کرے گا اور --name redis آپشن کنٹینر کا نام بتاتا ہے۔ آخری دلیل linuxize/redis کا نام ہے ، جو کنٹینر چلانے کے لئے استعمال ہوتا ہے۔

جب کنٹینر شروع ہوتا ہے تو ، تمام چلنے والے کنٹینرز کی فہرست کے لئے درج ذیل کمانڈ کا استعمال کریں:

docker container ls

CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 6b7d424cd915 linuxize/redis:v0.0.1 "redis-server '--pro…" 5 minutes ago Up 5 minutes 0.0.0.0:6379->6379/tcp redis

اس بات کی تصدیق کرنے کے لئے کہ ہر چیز کام کرتی ہے کیوں کہ اسے ڈوکر کنٹینر سے مربوط کرنے کے redis-cli کا استعمال کرنا چاہئے۔

redis-cli ping

redis سرور PONG ساتھ جواب دینا چاہئے۔

نتیجہ اخذ کرنا

اس ٹیوٹوریل میں تصویری تعمیر کے ل D ڈوکفائلس کے استعمال کی صرف بنیادی باتوں کا احاطہ کیا گیا ہے۔ ڈوکفائلس لکھنے کے بارے میں مزید جاننے کے لئے اور تجویز کردہ بہترین طریقوں کو دیکھیں ڈوکفائلس لکھنے کے بہترین عمل۔

گودی