Docker Invalide ریفرنس فارمیٹ

Docker Invalide Ryfrns Farmy



Docker امیجز یا Dockerfile کے ساتھ کام کرتے وقت، آپ کو 'غلط حوالہ فارمیٹ' کی خرابی کا سامنا کرنا پڑ سکتا ہے۔

اس ٹیوٹوریل میں، ہم سیکھیں گے کہ اس غلطی کا کیا مطلب ہے، یہ کیوں ہوتی ہے، اور آپ اسے اپنے Docker کے استعمال میں کیسے حل کر سکتے ہیں۔

ڈوکر میں تصویری حوالہ کیا ہے؟

Docker میں، ایک تصویری حوالہ سے مراد Docker رجسٹری (Docker Hub) یا مقامی Docker میزبان کے اندر کسی مخصوص Docker امیج کی شناخت اور اس کا پتہ لگانے کا طریقہ ہے۔







پہلے سے طے شدہ طور پر، تصویر کا حوالہ دو اہم اجزاء پر مشتمل ہے:



ذخیرہ - پہلا حصہ ہدف کی تصویر کے لیے ذخیرہ کی وضاحت کرتا ہے۔ یہ ڈوکر امیج کے لیے اعلیٰ سطحی تنظیمی اکائی ہے، جو بنیادی طور پر تنظیم یا تصویر کا انتظام کرنے والے فرد کی نمائندگی کے لیے استعمال ہوتی ہے۔ مثال کے طور پر، آپ کو Microsoft/SQL-server نامی ایک تصویر مل سکتی ہے۔ اس صورت میں، پہلا حصہ تصویر کو برقرار رکھنے والی تنظیم کی نمائندگی کرتا ہے۔



ٹیگ - تصویر کا دوسرا حصہ مخزن کے اندر موجود تصویر کے مخصوص ورژن یا مختلف قسم سے وابستہ ایک لیبل ہے۔ تصویری ٹیگز ایک ہی تصویر کے مختلف ورژن، مختلف ریلیز، یا مختلف مطابقت کی نمائندگی کر سکتے ہیں۔ مثال کے طور پر، nginx کی تصویر میں:latest جہاں تازہ ترین ٹیگ سے مراد Nginx تصویر کے تازہ ترین ورژن کا ہے۔





Dockerfile یا docker کمانڈ میں تصویر کی وضاحت کرتے وقت، تصویر کے نام کو درج ذیل ناموں کے اصولوں پر عمل کرنا چاہیے:

  • مخزن کا نام چھوٹے حروف میں ہونا چاہیے۔
  • ریپوزٹری میں حروف، نمبر، ہائفن (-)، انڈر سکور (_)، یا فارورڈ سلیش (/) بھی شامل ہو سکتے ہیں تاکہ رجسٹری کے اندر تنظیم یا گروپ بندی کی نشاندہی کی جا سکے۔
  • تصویر کے نام میں کوئی وائٹ اسپیس کریکٹر (اسپیس یا ٹیبز) نہیں ہونا چاہیے۔

ڈوکر غلط حوالہ فارمیٹ

جب آپ کو Dockerfile یا Docker کمانڈ چلاتے وقت 'غلط حوالہ فارمیٹ' کی خرابی ملتی ہے، تو اس کا مطلب ہے کہ آپ کے نام نے مندرجہ بالا اصولوں پر عمل نہیں کیا ہے۔



مثال کے طور پر دکھایا گیا ہے:

$ docker پل BusyBox

اگر ہم مندرجہ بالا کمانڈ کو چلاتے ہیں، تو یہ ایک غلطی واپس کرے گا جیسا کہ دکھایا گیا ہے:

غلط حوالہ فارمیٹ: مخزن کا نام چھوٹا ہونا چاہیے۔

اس صورت میں، یہ ہمیں بتاتا ہے کہ تصویری نام کی شکل غلط ہے، کیونکہ تصویر کا نام ہمیشہ چھوٹے حروف میں ہونا چاہیے۔

ڈوکر غلط حوالہ فارمیٹ کی خرابی کو کیسے ٹھیک کریں۔

جیسا کہ آپ اندازہ لگا سکتے ہیں، پہلا طریقہ یہ یقینی بنا رہا ہے کہ تصویری حوالہ فارمیٹ درست ہے۔ اس میں یہ تصدیق کرنا بھی شامل ہے کہ تصویر کا نام درست ہے۔

مثال کے طور پر، اوپر دی گئی کمانڈ میں، ہم تصویر کا نام بتا کر غلطی کو ٹھیک کر سکتے ہیں:

$ sudo ڈوکر پل مصروف باکس: تازہ ترین

اس صورت میں، کمانڈ کو Busybox امیج کا تازہ ترین ورژن کھینچنا چاہیے۔

طریقہ 2 - لانگ ڈوکر کمانڈز کو تقسیم کریں۔

کچھ دوسرے معاملات میں، آپ کو ایک لمبی ڈوکر کمانڈ چلاتے وقت 'غلط حوالہ فارمیٹ' کی خرابی کا سامنا کرنا پڑ سکتا ہے۔

ایسی صورت میں، کمانڈ کو متعدد لائنوں میں تقسیم کرنا اچھا عمل ہے۔ کمانڈ کی تقسیم کا طریقہ آپ کے شیل اور سسٹم پر منحصر ہوگا۔

  • تاہم، Bash شیل کے لیے، ملٹی لائن فرار کردار یا بیک سلیش (\) استعمال کریں۔
  • پاور شیل کے لیے، آپ بیک ٹک کریکٹر (`) استعمال کر سکتے ہیں۔
  • آخر میں، اگر آپ کمانڈ پرامپٹ پر ہیں، تو آپ کیریٹ کیریکٹر کو بطور ^ استعمال کر سکتے ہیں۔

مثال کے طور پر، Bash پر، کمانڈ کو اس طرح چلائیں:

$ sudo ڈاکر کی تعمیر \

-یہ \

مصروف خانہ \

ایسیچ

پاور شیل پر، آپ کمانڈ چلا سکتے ہیں جیسا کہ دکھایا گیا ہے:

$ sudo ڈاکر کی تعمیر `

-یہ `

مصروف خانہ `

ایسیچ

اور آخر میں، اگر آپ کمانڈ پرامپٹ پر ہیں، تو کمانڈ کا استعمال کریں جیسا کہ دکھایا گیا ہے:

$ sudo docker کی تعمیر ^

-یہ ^

busybox ^

ایسیچ

طریقہ 3 – ${pwd} اور $(pwd) پاتھ

اس خرابی کی ایک اور عام وجہ ${pwd} متغیر استعمال کرتے وقت ہے۔ یہ تنازعہ کا سبب بن سکتا ہے، شیل کی قسم پر منحصر ہے جس پر آپ مذکورہ کمانڈ کو انجام دے رہے ہیں۔

پاور شیل کی صورت میں، آپ کو $(pwd) کی بجائے ${pwd} متغیر استعمال کرنے کی ضرورت ہے۔

جیسا کہ آپ اندازہ لگا سکتے ہیں، باش کے معاملے میں، گھنگھریالے بند ان پٹ کے بجائے قوسین فارمیٹ کو بطور $(pwd) استعمال کریں۔

نتیجہ

اس پوسٹ میں Dockerfile یا docker کمانڈز کے ساتھ کام کرتے وقت 'غلط ریفرنس فارمیٹ' کی اہم وجوہات پر تبادلہ خیال کیا گیا ہے۔ ہم نے تین اہم طریقے بھی دریافت کیے ہیں جنہیں آپ اس مسئلے کو حل کرنے کے لیے استعمال کر سکتے ہیں۔