Docker Invalide Reference Format

Docker Invalide Reference Format



בעת עבודה עם תמונות Docker או Dockerfile, אתה עלול להיתקל בשגיאת 'פורמט הפניה לא חוקי'.

במדריך זה, נלמד מה המשמעות של שגיאה זו, מדוע היא מתרחשת וכיצד תוכל לפתור אותה בשימוש שלך ב-Docker.

מהי הפניה לתמונה ב-Docker?

ב-Docker, הפניה לתמונה מתייחסת לשיטה לזיהוי ואיתור של תמונת Docker ספציפית בתוך הרישום של Docker (Docker Hub) או המארח המקומי של Docker.







כברירת מחדל, הפניה לתמונה מורכבת משני מרכיבים עיקריים:



מאגר - החלק הראשון מגדיר את המאגר עבור תמונת היעד. זוהי היחידה הארגונית ברמה העליונה של Docker Image, המשמשת בעיקר לייצוג הארגון או האדם המנהל את התמונה. לדוגמה, אתה יכול למצוא תמונה בשם Microsoft/SQL-server. במקרה זה, החלק הראשון מייצג את הארגון השומר על התדמית.



תג - החלק השני של תמונה הוא תווית המשויכת לגרסה הספציפית או לגרסה הספציפית של התמונה בתוך המאגר. תגי תמונה יכולים לייצג גרסאות שונות של אותה תמונה, מהדורות שונות או תאימות שונה. לדוגמה, בתמונה של nginx:latest כאשר התג האחרון מתייחס לגרסה העדכנית ביותר של תמונת Nginx.





בעת ציון התמונה בפקודת Dockerfile או Docker, שם התמונה חייב לעמוד בכללי השמות הבאים:

  • שם המאגר צריך להיות באותיות קטנות.
  • המאגר יכול להכיל גם אותיות, מספרים, מקפים (-), קווים תחתונים (_) או קווים קודמים (/) כדי לציין ארגון או קיבוץ בתוך רישום.
  • אין להשתמש ברווחים (רווחים או טאבים) בשם התמונה.

Docker פורמט הפניה לא חוקי

כאשר אתה מקבל את השגיאה 'פורמט הפניה לא חוקי' בעת הפעלת הפקודה Dockerfile או Docker, זה אומר שהשם שלך לא דבק בכללים לעיל.



דוגמה היא כפי שמוצג:

$ docker pull BusyBox

אם נריץ את הפקודה לעיל, היא תחזיר שגיאה כפי שמוצג:

לא חוקי התייחסות פורמט: שם המאגר חייב להיות באותיות קטנות

במקרה זה, הוא אומר לנו שפורמט שם התמונה אינו נכון, מכיוון ששם התמונה צריך להיות תמיד באותיות קטנות.

כיצד לתקן את שגיאת ה-Docker Invalid Reference Format

כפי שאתה יכול לנחש, השיטה הראשונה היא להבטיח שפורמט ההפניה לתמונה נכון. זה כולל אימות ששם התמונה חוקי.

לדוגמה, בפקודה לעיל, נוכל לתקן את השגיאה על ידי ציון שם התמונה כ:

$ סודו docker pull busybox: האחרון

במקרה זה, הפקודה צריכה למשוך את הגרסה העדכנית ביותר של תמונת Busybox.

שיטה 2 - פיצול פקודות דוקר ארוכות

במקרים אחרים, אתה עלול להיתקל בשגיאת 'פורמט הפניה לא חוקי' בעת הפעלת פקודת Docker ארוכה.

במקרה כזה, פיצול הפקודה למספר שורות הוא תרגול טוב. שיטת פיצול הפקודות תהיה תלויה במעטפת ובמערכת שלך.

  • עם זאת, עבור מעטפת Bash, השתמש בתו בריחה מרובה שורות או קו נטוי אחורי (\).
  • עבור PowerShell, אתה יכול להשתמש בתו האחורי (`).
  • לבסוף, אם אתה נמצא בשורת הפקודה, אתה יכול להשתמש בתו אבן בתור ^

לדוגמה, ב-Bash, הפעל את הפקודה כ:

$ סודו docker build \

-זה \

busybox \

ש

ב- PowerShell, אתה יכול להפעיל את הפקודה כפי שמוצג:

$ סודו בניית docker `

-זה `

busybox `

ש

ולבסוף, אם אתה נמצא בשורת הפקודה, השתמש בפקודה כפי שמוצג:

$ סודו docker build ^

-זה ^

busybox ^

ש

שיטה 3 – נתיב ${pwd} ו-$(pwd).

סיבה נפוצה נוספת לשגיאה זו היא בעת שימוש במשתנה ${pwd}. זה יכול לגרום להתנגשות, בהתאם לסוג המעטפת שעליו אתה מבצע את הפקודה האמורה.

במקרה של PowerShell, עליך להשתמש במשתנה ${pwd} במקום $(pwd).

כפי שאתה יכול לנחש, במקרה של Bash, השתמש בפורמט של סוגריים במקום בקלט המתולתל בתור $(pwd).

סיכום

פוסט זה דן בסיבות המובילות ל'פורמט הפניה לא חוקי' בעת עבודה עם פקודות Dockerfile או docker. בדקנו גם שלוש שיטות עיקריות בהן תוכל להשתמש כדי לתקן בעיה זו.