ניהול תמונות

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

מידע על שליחה ומשיכה של תמונות זמין במאמר בנושא שליחה ומשיכה של תמונות.

לפני שמתחילים

  1. אם מאגר היעד לא קיים, צריך ליצור מאגר חדש.
  2. מוודאים שיש לכם את ההרשאות הנדרשות למאגר.
  3. (אופציונלי) הגדרת ברירות מחדל לפקודות gcloud.

התפקידים הנדרשים

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

להסבר על מתן תפקידים, ראו איך מנהלים את הגישה ברמת הפרויקט, התיקייה והארגון.

יכול להיות שאפשר לקבל את ההרשאות הנדרשות גם באמצעות תפקידים בהתאמה אישית או תפקידים מוגדרים מראש.

תמונות של כרטיסי מוצר

מצבי מאגר: רגיל, מרוחק

אפשר לרשום את התמונות באמצעות Google Cloud console או ה-CLI של gcloud.

רשימת המאגרים כוללת מאגרי Artifact Registry ומאגרי Container Registry. כדי לעבוד עם תמונות במאגר Container Registry, אפשר לעיין במסמכי התיעוד של Container Registry בנושא ניהול תמונות.

המסוף

כדי לראות תמונות במאגר:

  1. פותחים את הדף Repositories במסוף Google Cloud .

    פתיחת הדף Repositories

  2. לוחצים על המאגר עם קובץ אימג' של קונטיינר.

  3. לוחצים על תמונה כדי לראות את הגרסאות שלה.

gcloud

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

gcloud artifacts docker images list

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

gcloud artifacts docker images list LOCATION-docker.pkg.dev/PROJECT/REPOSITORY

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

gcloud artifacts docker images list LOCATION-docker.pkg.dev/PROJECT/REPOSITORY/IMAGE \
--include-tags

מחליפים את הערכים הבאים:

  • LOCATION הוא המיקום האזורי או המיקום במספר אזורים של המאגר.
  • PROJECT הוא מזהה הפרויקט ב- Google Cloud . אם מזהה הפרויקט מכיל נקודתיים (:), כדאי לעיין במאמר בנושא פרויקטים בהיקף הדומיין.
  • REPOSITORY הוא שם המאגר שבו מאוחסן האימג'.
  • IMAGE הוא שם האימג' במאגר.
  • --include-tags מציג את כל הגרסאות של התמונות, כולל תקצירים ותגים. אם לא מציינים את הדגל הזה, הרשימה שמוחזרת כוללת רק תמונות של מאגרי תגים ברמה העליונה.

לדוגמה, תמונה עם המאפיינים הבאים:

  • מיקום המאגר: us-west1
  • שם המאגר: my-repo
  • מזהה הפרויקט: my-project
  • שם התמונה: my-image

השם המלא של המאגר הוא:

us-west1-docker.pkg.dev/my-project/my-repo

השם המלא של התמונה הוא:

us-west1-docker.pkg.dev/my-project/my-repo/my-image

פרטים על פורמט השם של התמונה מופיעים במאמר שמות של מאגרים ותמונות.

מרכיב רשימת קבצים

מצבי מאגר: רגיל, מרוחק

אתם יכולים לראות רשימה של קבצים במאגר, קבצים בכל הגרסאות של קובץ אימג' של קונטיינר ספציפי או קבצים בגרסה ספציפית של קובץ אימג'.

בכל הפקודות הבאות, אפשר להגדיר מספר מקסימלי של קבצים להחזרה על ידי הוספת הדגל --limit לפקודה.

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

gcloud artifacts files list

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

gcloud artifacts files list \
    --project=PROJECT \
    --repository=REPOSITORY \
    --location=LOCATION

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

gcloud artifacts files list \
    --project=PROJECT \
    --repository=REPOSITORY \
    --location=LOCATION \
    --package=PACKAGE

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

gcloud artifacts files list \
    --project=PROJECT \
    --repository=REPOSITORY \
    --location=LOCATION \
    --package=PACKAGE \
    --version=VERSION
כדי להציג רשימה של קבצים לתג מסוים:

gcloud artifacts files list \
    --project=PROJECT \
    --repository=REPOSITORY \
    --location=LOCATION \
    --package=PACKAGE \
    --tag=TAG

מחליפים את הערכים הבאים:

  • LOCATION: המיקום האזורי או הרב-אזורי של המאגר.
  • PROJECT: Google Cloud מזהה הפרויקט. אם מזהה הפרויקט מכיל נקודתיים (:), כדאי לעיין במאמר בנושא פרויקטים בהיקף הדומיין.
  • REPOSITORY: השם של המאגר שבו התמונה מאוחסנת.
  • PACKAGE: שם התמונה.
  • VERSION: תקציר האימג', מחרוזת שמתחילה ב-sha256:.
  • TAG: התג שמשויך לקובץ אימג' של קונטיינר.

דוגמאות

כדאי לשים לב לפרטי התמונה הבאים:

  • פרויקט: my-project
  • מאגר: my-repo
  • מיקום המאגר: us-west1
  • תמונה: my-app

הפקודה הבאה מציגה רשימה של כל הקבצים במאגר my-repo במיקום us-west1 בתוך פרויקט ברירת המחדל:

gcloud artifacts files list \
    --location=us-west1 \
    --repository=my-repo
הפקודה הבאה מציגה רשימה של קבצים בגרסת האימג' עם ה-digest‏ sha256:88b205d7995332e10e836514fbfd59ecaf8976fc15060cd66e85cdcebe7fb356

gcloud artifacts files list \
    --project=my-project \
    --location=us-west1 \
    --repository=my-repo \
    --package=my-app \
    --version=sha256:88b205d7995332e10e836514fbfd59ecaf8976fc15060cd66e85cdcebe7fb356
הפקודה הבאה מציגה רשימה של קבצים בגרסה של האימג' עם התג 1.0-dev

gcloud artifacts files list \
    --project=my-project \
    --location=us-west1 \
    --repository=my-repo \
    --package=my-app \
    --tag=1.0-dev

תיוג תמונות

אפשר לתייג תמונות קיימות במאגר Artifact Registry, או לתייג אותן לפני שמעלים אותן למאגר.

תיוג תמונות במאגר

מצבי מאגר: רגיל

אפשר להוסיף תג לתמונה במאגר Artifact Registry באמצעות Google Cloud console או שורת הפקודה. במאגר, התגים הם ייחודיים לגרסה של תמונה. לכן, אם יש לכם כמה גרסאות של תמונה, כל תג חל רק על אחת מהגרסאות. אם מתייגים תמונה בתג שכבר נמצא בשימוש, התג יועבר מהגרסה המקורית לגרסה החדשה המתויגת.

המסוף

כדי לתייג תמונה במאגר:

  1. פותחים את הדף Repositories במסוף Google Cloud .

    פתיחת הדף Repositories

  2. כדי לראות גרסאות של התמונה, לוחצים עליה.

  3. בוחרים את גרסת התמונה לתיוג.

  4. בשורה של הגרסה שנבחרה, לוחצים על פעולות נוספות (פעולות נוספות) ואז על עריכת תגים.

  5. מקלידים תגים חדשים בשדה ולוחצים על שמירה.

gcloud

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

gcloud artifacts docker tags add IMAGE-VERSION TAG

כאשר:

  • IMAGE-VERSION הוא השם המלא של גרסת התמונה שרוצים לתייג, באמצעות תקציר התמונה או תג קיים בגרסת התמונה.
  • TAG הוא השם המלא של התג שרוצים להוסיף.

לדוגמה, תמונה עם המאפיינים הבאים:

  • מיקום המאגר: us-west1
  • שם המאגר: my-repo
  • מזהה הפרויקט: my-project
  • שם התמונה: my-image
  • תג קיים: iteration6-final
  • תג להוספה: release-candidate

כדי להוסיף את התג release-candidate לגרסה של התמונה עם התג iteration6-final, מריצים את הפקודה הבאה:

gcloud artifacts docker tags add \
us-west1-docker.pkg.dev/my-project/my-repo/my-image:iteration6-final \
us-west1-docker.pkg.dev/my-project/my-repo/my-image:release-candidate

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

תיוג תמונות ששמורות במכשיר

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

ביטול התיוג של תמונות

מצבי מאגר: רגיל

אפשר להסיר תג מתמונה ב-Artifact Registry באמצעות הפקודהGoogle Cloud console או שורת הפקודה.

המסוף

  1. פותחים את הדף Repositories במסוף Google Cloud .

    פתיחת הדף Repositories

  2. כדי לראות גרסאות של התמונה, לוחצים עליה.

  3. בוחרים את גרסת התמונה שרוצים לבטל את התיוג שלה.

  4. בשורה של הגרסה שנבחרה, לוחצים על פעולות נוספות (פעולות נוספות) ואז על עריכת תגים.

  5. מוחקים את התג ולוחצים על שמירה.

gcloud

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

 gcloud artifacts docker tags delete LOCATION-docker.pkg.dev/PROJECT/REPOSITORY/IMAGE:TAG

מחליפים את מה שכתוב בשדות הבאים:

  • LOCATION הוא המיקום האזורי או המיקום במספר אזורים של המאגר. ‫
  • PROJECT הוא מזהה הפרויקט ב- Google Cloud . אם מזהה הפרויקט מכיל נקודתיים (`:`), כדאי לעיין במאמר בנושא פרויקטים בהיקף הדומיין.
  • REPOSITORY הוא שם המאגר שבו מאוחסן האימג'.
  • IMAGE הוא שם האימג' במאגר.
  • TAG הוא התג של הגרסה שרוצים למחוק.

מחיקת תמונות

מצבי מאגר: רגיל, מרוחק

אפשר למחוק תמונת מאגר שלמה או למחוק גרסה ספציפית של תמונה שמשויכת לתג או ל-digest. הסרת תמונות שלא בשימוש יכולה לעזור לכם לצמצם את עלויות האחסון.

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

כדי למחוק תמונות ממסוף Google Cloud או מה-CLI של gcloud:

המסוף

  1. פותחים את הדף Repositories במסוף Google Cloud .

    פתיחת הדף Repositories

  2. לוחצים על שם התמונה כדי לראות את הגרסאות שלה.

  3. בוחרים את הגרסאות שרוצים למחוק.

  4. לוחצים על מחיקה.

  5. בתיבת הדו-שיח לאישור, לוחצים על מחיקה.

gcloud

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

gcloud artifacts docker images delete LOCATION-docker.pkg.dev/PROJECT/REPOSITORY/IMAGE --delete-tags

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

gcloud artifacts docker images delete LOCATION-docker.pkg.dev/PROJECT/REPOSITORY/IMAGE:TAG [--delete-tags]

או

gcloud artifacts docker images delete LOCATION-docker.pkg.dev/PROJECT/REPOSITORY/IMAGE@IMAGE-DIGEST [--delete-tags]

כאשר:

  • LOCATION הוא המיקום האזורי או המיקום במספר אזורים של המאגר.
  • PROJECT הוא מזהה הפרויקט ב- Google Cloud . אם מזהה הפרויקט מכיל נקודתיים (:), כדאי לעיין במאמר בנושא פרויקטים בהיקף הדומיין.
  • REPOSITORY הוא שם המאגר שבו מאוחסן האימג'.
  • IMAGE הוא שם האימג' במאגר.
  • TAG הוא התג של הגרסה שרוצים למחוק. אם כמה תגים משויכים לאותה גרסת תמונה, צריך לכלול את --delete-tags כדי למחוק את גרסת התמונה בלי להסיר קודם את התגים.
  • IMAGE-DIGEST הוא ערך הגיבוב (hash) לפי SHA256 של הגרסה שרוצים למחוק. אם תג משויך ל-digest של התמונה, צריך לכלול את --delete-tags כדי למחוק את גרסת התמונה בלי להסיר קודם את התג.
  • --delete-tags מסיר את כל התגים שנוספו לגרסת התמונה. הדגל הזה מאפשר למחוק גרסת תמונה בכוח במקרים הבאים:
    • ציינת תג, אבל יש תגים אחרים שמשויכים לגרסת התמונה.
    • ציינתם תקציר תמונה שיש לו לפחות תג אחד.

המאמרים הבאים

  • הורדה של קבצים בודדים שמאוחסנים בקובץ אימג' בלי להשתמש בפקודות Docker. האפשרות הזו שימושית לבדיקה מהירה של קובצי מניפסט.