تنسيق مرجع Docker غير صالح

Tnsyq Mrj Docker Ghyr Salh



عند العمل مع صور Docker أو Dockerfile، قد تواجه الخطأ 'تنسيق مرجعي غير صالح'.

في هذا البرنامج التعليمي، سنتعرف على معنى هذا الخطأ وسبب حدوثه وكيف يمكنك حله أثناء استخدام Docker.

ما هو مرجع الصورة في Docker؟

في Docker، يشير مرجع الصورة إلى طريقة لتحديد صورة Docker معينة وتحديد موقعها داخل سجل Docker (Docker Hub) أو مضيف Docker المحلي.







افتراضيًا، يتكون مرجع الصورة من مكونين رئيسيين:



المستودع - يحدد الجزء الأول المستودع الخاص بالصورة المستهدفة. هذه هي الوحدة التنظيمية ذات المستوى الأعلى لصورة Docker، وتُستخدم بشكل أساسي لتمثيل المؤسسة أو الفرد الذي يدير الصورة. على سبيل المثال، يمكنك العثور على صورة باسم Microsoft/SQL-server. وفي هذه الحالة، يمثل الجزء الأول المنظمة التي تحافظ على صورتها.



العلامة – الجزء الثاني من الصورة عبارة عن تسمية مرتبطة بالإصدار أو المتغير المحدد للصورة داخل المستودع. يمكن أن تمثل علامات الصور إصدارات مختلفة من نفس الصورة، أو إصدارات مختلفة، أو توافق مختلف. على سبيل المثال، في صورة nginx:latest حيث تشير أحدث علامة إلى أحدث إصدار من صورة Nginx.





عند تحديد الصورة في أمر Dockerfile أو docker، يجب أن يتبع اسم الصورة قواعد التسمية التالية:

  • يجب أن يكون اسم المستودع بأحرف صغيرة.
  • يمكن أن يحتوي المستودع أيضًا على أحرف أو أرقام أو واصلات (-) أو شرطات سفلية (_) أو شرطات مائلة للأمام (/) للإشارة إلى التنظيم أو التجميع داخل السجل.
  • يجب ألا تكون هناك أحرف مسافات بيضاء (مسافات أو علامات تبويب) في اسم الصورة.

تنسيق مرجعي غير صالح لـ Docker

عندما تحصل على خطأ 'تنسيق مرجعي غير صالح' عند تشغيل أمر Dockerfile أو Docker، فهذا يعني أن اسمك لم يلتزم بالقواعد المذكورة أعلاه.



مثال كما هو موضح:

$ عامل ميناء سحب BusyBox

إذا قمنا بتشغيل الأمر أعلاه، فسوف يُرجع خطأً كما هو موضح:

غير صالح مرجع التنسيق: يجب أن يكون اسم المستودع بأحرف صغيرة

في هذه الحالة، يخبرنا أن تنسيق اسم الصورة غير صحيح، حيث يجب أن يكون اسم الصورة دائمًا صغيرًا.

كيفية إصلاح خطأ تنسيق مرجع Docker غير صالح

كما يمكنك التخمين، الطريقة الأولى هي التأكد من صحة تنسيق مرجع الصورة. يتضمن ذلك التحقق من صحة اسم الصورة.

على سبيل المثال، في الأمر أعلاه، يمكننا إصلاح الخطأ عن طريق تحديد اسم الصورة على النحو التالي:

$ sudo عامل ميناء سحب Busbox: الأحدث

في هذه الحالة، يجب على الأمر سحب أحدث إصدار من صورة Busybox.

الطريقة الثانية - تقسيم أوامر Docker الطويلة

في بعض الحالات الأخرى، قد تواجه خطأ 'تنسيق مرجعي غير صالح' عند تشغيل أمر Docker طويل.

في مثل هذه الحالة، يعد تقسيم الأمر إلى أسطر متعددة ممارسة جيدة. تعتمد طريقة تقسيم الأوامر على الصدفة والنظام لديك.

  • ومع ذلك، بالنسبة لـ Bash Shell، استخدم حرف الهروب متعدد الأسطر أو الشرطة المائلة العكسية (\).
  • بالنسبة إلى PowerShell، يمكنك استخدام حرف الإشارة الخلفية (`).
  • أخيرًا، إذا كنت تستخدم موجه الأوامر، فيمكنك استخدام حرف الإقحام مثل ^

على سبيل المثال، في Bash، قم بتشغيل الأمر على النحو التالي:

$ sudo بناء عامل ميناء \

-هو - هي \

مشغول\

ش

على PowerShell، يمكنك تشغيل الأمر كما هو موضح:

$ sudo بناء عامل ميناء `

-هو - هي `

com.businessbox `

ش

وأخيرًا، إذا كنت في موجه الأوامر، فاستخدم الأمر كما هو موضح:

$ sudo بناء عامل ميناء ^

-هو - هي ^

صندوق مشغول ^

ش

الطريقة الثالثة - مسار ${pwd} و$(pwd).

سبب شائع آخر لهذا الخطأ هو عند استخدام المتغير ${pwd}. قد يتسبب هذا في حدوث تعارض، اعتمادًا على نوع الصدفة التي تقوم بتنفيذ الأمر المذكور عليها.

في حالة PowerShell، تحتاج إلى استخدام المتغير ${pwd} بدلاً من $(pwd).

كما يمكنك التخمين، في حالة Bash، استخدم تنسيق الأقواس بدلاً من الإدخال ذي الأقواس المتعرجة مثل $(pwd).

خاتمة

ناقش هذا المنشور الأسباب الرئيسية لـ 'التنسيق المرجعي غير الصالح' عند العمل باستخدام أوامر Dockerfile أو docker. لقد استكشفنا أيضًا ثلاث طرق رئيسية يمكنك استخدامها لإصلاح هذه المشكلة.