שליפת תמונות Docker Hub ששמורות במטמון

‫Artifact Registry שומר במטמון תמונות ציבוריות של Docker Hub שניגשים אליהן לעיתים קרובות ב-mirror.gcr.io. אפשר להגדיר את שירות ה-daemon של Docker כך שישתמש בתמונה ציבורית שנשמרה במטמון אם היא זמינה, או שימשוך את התמונה מ-Docker Hub אם עותק שנשמר במטמון לא זמין.

Google Cloud שירותים כמו Cloud Build ו-Google Kubernetes Engine בודקים אוטומטית אם יש תמונות במטמון לפני שמנסים לשלוף תמונה מ-Docker Hub.

התמונות במטמון בכתובת mirror.gcr.io הן:

  • מאוחסן במאגר שמנוהל על ידי Google Cloud.
  • יותר מבודדים מהפסקות שירות ב-Docker Hub.
  • משולב עם Google Cloud המערכת האקולוגית.
  • הסנכרון מתבצע עם Docker Hub.

הגדרת שירות ה-daemon של Docker

כדי להגדיר את שירות ה-daemon של Docker כך שימשוך תמונות ממטמון Artifact Registry:

CLI

  1. מגדירים את הדמון באחת מהדרכים הבאות:

    • כדי להגדיר את שירות ה-daemon של Docker באופן אוטומטי בזמן ההפעלה, צריך להגדיר את הערך הבא ב-/etc/docker/daemon.json

      {
        "registry-mirrors": ["https://mirror.gcr.io"]
      }
      
    • כשמפעילים את ה-daemon, מעבירים את שם המארח של Artifact Registry:

      dockerd --registry-mirror=https://mirror.gcr.io
      
    • מוסיפים את השורה הבאה לקובץ /etc/default/docker:

      DOCKER_OPTS="${DOCKER_OPTS} --registry-mirror=https://mirror.gcr.io"
      
  2. מפעילים מחדש את שירות ה-Docker.

    • ב-Linux, מריצים אחת מהפקודות הבאות:

      sudo service docker restart
      

      או

      sudo service docker stop && sudo service docker start
      
    • ב-macOS או ב-Windows, מריצים את הפקודה הבאה:

      docker-machine restart
      

ממשק משתמש של Docker

  1. פותחים את התפריט Preferences (העדפות) של Docker.
  2. לוחצים על Daemon.
  3. לוחצים על מתקדם. בשדה JSON, מוסיפים מפתח registry-mirrors עם הערך https://mirror.gcr.io:

    {
      "registry-mirrors" : [
        "https://mirror.gcr.io"
      ]
    }
    
  4. לוחצים על אישור והפעלה מחדש.

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

docker system info

הפלט צריך לכלול את Registry Mirrors ולהיראות בערך כך:

Containers: 2
 Running: 0
 Paused: 0
 Stopped: 2
Images: 2
Server Version: 17.03.1-ce
Storage Driver: overlay2
 Backing Filesystem: extfs
 Supports d_type: true
 Native Overlay Diff: true
Logging Driver: json-file
...
Registry Mirrors:
 https://mirror.gcr.io

שליפת תמונות מהמטמון

‫Artifact Registry מוסיף למטמון תמונות שמבקשים לעיתים קרובות, כדי שהן יהיו זמינות לבקשות עתידיות. בנוסף, אנחנו מסירים מדי פעם תמונות שכבר לא נדרשות.

אחרי שמגדירים את שירות ה-daemon של Docker כך שישתמש במטמון של Artifact Registry,‏ Docker מבצע את השלבים הבאים כשמושכים קובץ אימג' ציבורי של Docker Hub באמצעות פקודה docker pull:

  1. הדמון של Docker בודק את המטמון של Artifact Registry ומביא את קובצי האימג' אם הם קיימים. אם הגדרת הדמון כוללת מראות אחרות של Docker, הדמון בודק כל אחת מהן לפי הסדר כדי למצוא עותק של התמונה במטמון.
  2. אם התמונה עדיין לא נמצאה, דמון Docker מאחזר את התמונה מהמאגר הקנוני ב-Docker Hub.

שליפת תמונות שנשמרו במטמון לא נספרת במסגרת המגבלות על קצב יצירת הבקשות ב-Docker Hub. עם זאת, אין ערובה לכך שתמונה מסוימת תישאר במטמון למשך זמן ממושך. אפשר לקבל תמונות שנשמרו במטמון רק ב-mirror.gcr.io על ידי הגדרת שירות ה-daemon של Docker.

כדי לבצע אימות ל-Docker Hub עבור תמונות שלא נשמרו במטמון ב-mirror.gcr.io, צריך להשתמש במאגרים מרוחקים של Artifact Registry. מאגרים מרוחקים תומכים באימות ל-Docker Hub. מומלץ לבצע אימות ב-Docker Hub גם אם אתם משתמשים רק בתמונות ציבוריות, כי כך תוכלו להגדיל את מגבלת קצב ההורדה. מידע נוסף על מגבלות קצב ההורדה ב-Docker Hub זמין במאמר בנושא מגבלת קצב ב-Docker Hub.

לתשומת ליבכם

כשמשתמשים במטמון של Artifact Registry Docker Hub, חשוב להביא בחשבון את הנקודות הבאות:

  • ‫Artifact Registry משמש רק כמטמון לתמונות שאתם מאחסנים ב-Docker Hub.‫Artifact Registry לא מאמת, סורק או מתקן פגיעויות בתמונות שנשמרו במטמון מ-Docker Hub. Google Cloud באחריותכם לוודא שהתמונות שאתם מאחסנים ב-Docker Hub עומדות בדרישות האבטחה והתאימות של הארגון. אם אתם צריכים סריקה פעילה של נקודות חולשה, כדאי להשתמש בניתוח ארטיפקטים.

  • המטרה של מטמון Artifact Registry היא לשפר את היציבות, ולכן קובצי אימג' לא נמחקים ממנו מיד כשהם מוסרים מ-Docker Hub. יכול להיות שתמונות שנמחקו מ-Docker Hub יישארו זמינות במטמון של Artifact Registry למשך כמה ימים לפני שהן יוסרו מהמטמון. Google Cloud שירותים שמגדירים מראש את השימוש במטמון, כמו Cloud Build ו-Google Kubernetes Engine, עשויים להמשיך להשתמש אוטומטית בתמונות שלא נוקו מהמטמון של Artifact Registry.

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