הגדרת אפשרויות להפעלת מאגר התגים

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

במאמר הזה מוסבר על אפשרויות ההגדרה להפעלת קונטיינרים במכונות ב-Compute Engine.

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

כשיוצרים מכונה או תבנית של הגדרות מכונה לשימוש בפריסת קונטיינרים במכונות וירטואליות ובקבוצות של מכונות מנוהלות, צריך לציין את הגדרות הקונטיינר באמצעות המסוף Google Cloud או Google Cloud CLI.

בקטעים הבאים מוסבר איך להגדיר קונטיינרים במכונות וירטואליות, אבל אפשר גם להגדיר את האפשרויות הבאות כשיוצרים תבנית של הגדרות מכונה. משתמשים במסוף Google Cloud או ב-Google Cloud CLI כדי להגדיר אפשרויות למכונות וירטואליות בתבנית של הגדרות מכונה.

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

ציון מדיניות הפעלה מחדש

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

docker run

משתמשים בדגל --restart של הפקודה docker run. ניסיונות חוזרים להפעלה מחדש של קונטיינר נובעים מההתנהגות שמוגדרת כברירת מחדל ב-Docker, כפי שמפורט בהפניה ל-Docker --restart.

המסוף

  1. נכנסים לדף Create an instance.

    כניסה לדף Create an instance

  2. בקטע Container (מאגר תגים), לוחצים על Deploy container (פריסת מאגר תגים).

  3. בדף Configure container, מבצעים את הפעולות הבאות:

    1. מציינים שם של קובץ אימג' של קונטיינר.
    2. בקטע Restart policy, בוחרים את מדיניות ההפעלה מחדש של הקונטיינר.
    3. כדי לאשר את פרטי מאגר התגים, לוחצים על בחירה.
  4. ממשיכים בתהליך יצירת מכונת ה-VM.

gcloud

משתמשים בדגל --container-restart-policy כדי לציין מדיניות להפעלה מחדש של מאגר:

  • always (ברירת מחדל)
  • on-failure
  • never

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

gcloud compute instances create-with-container busybox-vm \
  --container-image docker.io/busybox:1.27 \
  --container-restart-policy on-failure

משתמשים בפקודה gcloud compute instances update-container עם הדגל --container-restart-policy כדי להגדיר את מדיניות ההפעלה מחדש של קונטיינר שפועל במכונה וירטואלית.

הפעלת קונטיינר במצב הרשאות

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

docker run

משתמשים בדגל --privileged של הפקודה docker run. מידע נוסף זמין במאמר בנושא הרשאות בזמן ריצה ויכולות של Linux.

המסוף

  1. נכנסים לדף Create an instance.

    כניסה לדף Create an instance

  2. בקטע Container (מאגר תגים), לוחצים על Deploy container (פריסת מאגר תגים).

  3. בדף Configure container, מבצעים את הפעולות הבאות:

    1. מציינים שם של קובץ אימג' של קונטיינר.
    2. בוחרים באפשרות הפעלה כבעל הרשאה.
    3. כדי לאשר את פרטי מאגר התגים, לוחצים על בחירה.
  4. ממשיכים בתהליך יצירת מכונת ה-VM.

gcloud

משתמשים בדגל --container-privileged כדי להריץ מאגר עם הרשאת זמן ריצה. בדוגמה הבאה מפעילים קונטיינר של busybox במצב הרשאות:

gcloud compute instances create-with-container busybox-vm \
  --container-image docker.io/busybox:1.27 \
  --container-privileged

כדי לעדכן קונטיינר במכונה וירטואלית, משתמשים בפקודה gcloud compute instances update-container עם הדגל --container-privileged. כדי להשבית את מצב ההרשאות, משתמשים בדגל --no-container-privileged.

הקצאת מאגר ל-STDIN בזמן הריצה של הקונטיינר

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

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

docker run

משתמשים בדגל --interactive (-i) של הפקודה docker run. מידע נוסף זמין במאמרי העזרה בנושא הדגל --interactive.

המסוף

  1. נכנסים לדף Create an instance.

    כניסה לדף Create an instance

  2. בקטע Container (מאגר תגים), לוחצים על Deploy container (פריסת מאגר תגים).

  3. בדף Configure container, מבצעים את הפעולות הבאות:

    1. מציינים שם של קובץ אימג' של קונטיינר.
    2. בוחרים באפשרות הקצאת מאגר ל-STDIN.
    3. כדי לאשר את פרטי מאגר התגים, לוחצים על בחירה.
  4. ממשיכים בתהליך יצירת מכונת ה-VM.

gcloud

משתמשים בדגל --container-stdin כדי להקצות מאגר זמני ל-STDIN בזמן הריצה של הקונטיינר. בדוגמה הבאה מופעל מאגר תגים וחלון STDIN נשאר פתוח:

gcloud compute instances create-with-container busybox-vm \
  --container-image docker.io/busybox:1.27 \
  --container-stdin

משתמשים בפקודה gcloud compute instances update-container עם הדגל --container-stdin כדי לעדכן קונטיינר במכונה וירטואלית. משתמשים בדגל --no-container-stdin כדי להשבית את ההקצאה של מאגר זמני ל-STDIN.

הקצאת פסאודו-TTY

הקצאת פסאודו-TTY לקונטיינר נדרשת כדי ליצור מעטפת אינטראקטיבית בקונטיינר (בנוסף להקצאת מאגר ל-STDIN).

docker run

משתמשים בדגל --tty (-t) של הפקודה docker run. מידע נוסף זמין בדגל --tty.

המסוף

  1. נכנסים לדף Create an instance.

    כניסה לדף Create an instance

  2. בקטע Container (מאגר תגים), לוחצים על Deploy container (פריסת מאגר תגים).

  3. בדף Configure container, מבצעים את הפעולות הבאות:

    1. מציינים שם של קובץ אימג' של קונטיינר.
    2. בוחרים באפשרות הקצאת פסאודו-TTY.
    3. כדי לאשר את פרטי מאגר התגים, לוחצים על בחירה.
  4. ממשיכים בתהליך יצירת מכונת ה-VM.

gcloud

משתמשים בדגל --container-tty כדי להקצות פסאודו-TTY. בדוגמה הבאה מופעל קונטיינר ומוקצה לו פסאודו-TTY:

gcloud compute instances create-with-container busybox-vm \
  --container-image docker.io/busybox:1.27 \
  --container-stdin \
  --container-tty

כדי לעדכן קונטיינר במכונה וירטואלית, משתמשים בפקודה gcloud compute instances update-container עם הדגל --container-tty. משתמשים בדגל --no-container-tty כדי לא להקצות פסאודו-TTY.

שינוי פקודת ברירת המחדל להרצה בהפעלת הקונטיינר

ה-ENTRYPOINT של קובץ אימג' של קונטיינר מציין איזה קובץ הפעלה יופעל כשהקונטיינר יתחיל לפעול, ומאפשר להפעיל את הקונטיינר כאילו הוא קובץ בינארי.

אפשר לבטל את הפקודה ENTRYPOINT של קובץ אימג' של קונטיינר.

docker run

משתמשים בדגל --entrypoint (פקודה בלבד, ללא ארגומנטים) של הפקודה docker run. מידע על ENTRYPOINT ועל התכונה הניסיונית --entrypoint.

המסוף

  1. נכנסים לדף Create an instance.

    כניסה לדף Create an instance

  2. בקטע Container (מאגר תגים), לוחצים על Deploy container (פריסת מאגר תגים).

  3. בדף Configure container, מבצעים את הפעולות הבאות:

    1. מציינים שם של קובץ אימג' של קונטיינר.
    2. בשדה Command (פקודה), מזינים פקודה אחת שניתנת להפעלה ללא פרמטרים – לדוגמה, uptime.
    3. כדי לאשר את פרטי מאגר התגים, לוחצים על בחירה.
  4. ממשיכים בתהליך יצירת מכונת ה-VM.

gcloud

משתמשים בדגל --container-command כדי לשנות את תמונת הקונטיינר ENTRYPOINT. בדוגמה הבאה מריצים את הפקודה uptime בקונטיינר busybox כדי להציג את הזמן שעבר מאז ההפעלה האחרונה:

gcloud compute instances create-with-container busybox-vm \
  --container-image docker.io/busybox:1.27 \
  --container-command "uptime"

כדי לעדכן פקודה עבור קונטיינר במכונה וירטואלית, משתמשים בפקודה gcloud compute instances update-container עם הדגל --container-command.

כדי לנקות את פקודת ברירת המחדל עבור המאגר המעודכן, משתמשים בדגל --clear-container-command עם הפקודה update-container.

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

אפשר להעביר (לצרף) ארגומנטים לפקודת ENTRYPOINT של הקונטיינר או לשנות את פקודת CMD של הקונטיינר שמוגדרת כברירת מחדל.

המסוף

  1. נכנסים לדף Create an instance.

    כניסה לדף Create an instance

  2. בקטע Container (מאגר תגים), לוחצים על Deploy container (פריסת מאגר תגים).

  3. בדף Configure container, מבצעים את הפעולות הבאות:

    1. מציינים שם של קובץ אימג' של קונטיינר.
    2. בקטע Arguments (ארגומנטים), לוחצים על Add argument (הוספת ארגומנט).
    3. מזינים ארגומנט אחד של פקודה בכל תיבה.
    4. כדי לאשר את פרטי מאגר התגים, לוחצים על בחירה.
  4. ממשיכים בתהליך יצירת מכונת ה-VM.

gcloud

משתמשים בדגל --container-arg כדי להעביר ארגומנטים לפקודת ENTRYPOINT של קובץ אימג' של קונטיינר. צריך להשתמש בדגל נפרד לכל ארגומנט.

בדוגמה הבאה מריצים את הפקודה /bin/ash עם הארגומנטים -c 'ls -l' במאגר שהוגדר להרצה אוטומטית של busybox:

gcloud compute instances create-with-container busybox-vm \
  --container-image docker.io/busybox:1.27 \
  --container-command "/bin/ash" \
  --container-arg="-c" \
  --container-arg="ls -l"

משתמשים בפקודה gcloud compute instances update-container עם הדגלים --container-arg כדי לעדכן את ארגומנטי הפקודה של קונטיינר שפועל במכונה וירטואלית. העדכון מחליף את כל רשימת הארגומנטים ברשימה החדשה.

משתמשים בדגל --clear-container-args עם הפקודה update-container כדי להסיר את כל הארגומנטים מהצהרת המאגר.

הגדרה של אפשרויות לדרייבר של יומנים

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

לדוגמה, סקריפט לטעינה בזמן ההפעלה הבא מגדיר כמה אפשרויות, כולל אפשרות להגבלת גודל היומן של הקונטיינר, ואז מפעיל מחדש את Docker במכונה הווירטואלית:

cat <<EOF > /etc/docker/daemon.json
{
  "live-restore": true,
  "storage-driver": "overlay2",
  "log-opts": {
    "max-size": "10m"
  }
}
EOF
systemctl restart docker

הגדרת משתני סביבה

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

docker run

משתמשים בדגל --env של הפקודה docker run. איך מגדירים משתני סביבה באמצעות מנוע Docker.

המסוף

  1. נכנסים לדף Create an instance.

    כניסה לדף Create an instance

  2. בקטע Container (מאגר תגים), לוחצים על Deploy container (פריסת מאגר תגים).

  3. בדף Configure container, מבצעים את הפעולות הבאות:

    1. מציינים שם של קובץ אימג' של קונטיינר.
    2. בקטע Environment variables, לוחצים על Add variable.
    3. מוסיפים או מסירים משתני סביבה לפי הצורך, כל אחד בשורה נפרדת.
    4. כדי לאשר את פרטי מאגר התגים, לוחצים על בחירה.
  4. ממשיכים בתהליך יצירת מכונת ה-VM.

gcloud

משתמשים בדגל --container-env כדי להגדיר משתני סביבה בקונטיינר. בדוגמה הבאה מוגדרים שלושה משתני סביבה: HOME,‏ MODE ו-OWNER:

gcloud compute instances create-with-container busybox-vm \
  --container-image docker.io/busybox:1.27 \
  --container-env HOME=/home,MODE=test,OWNER=admin

משתמשים בדגל --container-env-file כדי להגדיר משתני סביבה מקובץ מקומי. בדוגמה הבאה, שני משתני הסביבה מוגדרים מתוך הקובץ env.txt:

gcloud compute instances create-with-container busybox-vm \
  --container-image docker.io/busybox:1.27 \
  --container-env-file ./env.txt

התוכן של הקובץ env.txt הוא:

# this is a comment
HOME=/home
MODE=test
OWNER=admin

כדי לעדכן משתני סביבה של קונטיינר במכונה וירטואלית, משתמשים בפקודה gcloud compute instances update-container עם הדגל --container-env או --container-env-file. הפעולה הזו מעדכנת את כל המשתנים שמופיעים בהצהרת מאגר התגים של מופע ה-VM. משתנים שלא מופיעים בהצהרת מאגר התגים מתווספים.

משתמשים בדגל --remove-container-env כדי להסיר משתני סביבה כשמעדכנים קונטיינר במכונה וירטואלית. בדוגמה הבאה מוסרים משתני הסביבה שנקראים MODE ו-OWNER:

gcloud compute instances update-container busybox-vm \
  --remove-container-env MODE,OWNER

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

טעינת ספרייה במארח כנפח נתונים

אפשר לטעון ספרייה ממכונה וירטואלית מארחת לתוך קונטיינר.

docker run

משתמשים בדגל --volume ובדגל --mount עם האפשרות mount type=bind של הפקודה docker run. במאמר הזה מוסבר איך מנוע Docker מטמיע ספריית מארח כנפח נתונים.

המסוף

  1. נכנסים לדף Create an instance.

    כניסה לדף Create an instance

  2. בקטע Container (מאגר תגים), לוחצים על Deploy container (פריסת מאגר תגים).

  3. בדף Configure container, מבצעים את הפעולות הבאות:

    1. מציינים שם של קובץ אימג' של קונטיינר.
    2. בקטע Volume mounts (חיבורים של אמצעי אחסון), לוחצים על Add volume (הוספת אמצעי אחסון).
    3. מהרשימה סוג עוצמת הקול בוחרים באפשרות ספרייה ומבצעים את הפעולות הבאות:

      • בשדה Mount path, מציינים נתיב להעלאה במבנה של ספריית קונטיינר שבה רוצים להעלות ספריית מארח.
      • בשדה Host path, מציינים את נתיב המארח לספריית המארח שרוצים לטעון.
      • ברשימה Mode, מציינים אם להעלות את הספרייה במצב קריאה/כתיבה או במצב קריאה-בלבד.
    4. כדי לאשר את פרטי מאגר התגים, לוחצים על בחירה.

  4. ממשיכים בתהליך יצירת מכונת ה-VM.

gcloud

משתמשים בדגל --container-mount-host-path כדי לטעון ספרייה של מכונת VM מארחת לתוך קונטיינר. בדוגמה הבאה, הספרייה המארחת /tmp נטענת לתוך הקונטיינר בנתיב /logs במצב קריאה/כתיבה:

gcloud compute instances create-with-container busybox-vm \
  --container-image docker.io/busybox:1.27 \
  --container-mount-host-path mount-path=/logs,host-path=/tmp,mode=rw

מציינים mode=ro כדי לטעון ספריית מארח במצב קריאה בלבד.

כדי לעדכן את הנקודות לחיבור ספריות במארח בקונטיינר, משתמשים בפקודה gcloud compute instances update-container עם הדגל --container-mount-host-path. משתמשים בדגל --remove-container-mounts כדי להסיר נקודות לחיבור נפחים עם נתיבי החיבור שצוינו. בדוגמה הבאה מוסרת טעינה של נתיב מארח באמצעות mount-path=/logs:

gcloud compute instances update-container busybox-vm \
  --remove-container-mounts /logs

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

התקנת מערכת הקבצים tmpfs כנפח נתונים

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

מערכת קבצים ריקה של tmpfs דומה לנפח EmptyDir של Google Kubernetes Engine עם medium:Memory. בניגוד ל-Docker, שבו נתוני tmpfs נמחקים בהפעלות מחדש של קונטיינרים, ב-tmpfs בקונטיינר של Compute Engine, עוצמת הקול והנתונים נשמרים בהפעלות מחדש של קונטיינרים ונמחקים רק בהפעלה מחדש של מכונה וירטואלית.

המסוף

  1. נכנסים לדף Create an instance.

    כניסה לדף Create an instance

  2. בקטע Container (מאגר תגים), לוחצים על Deploy container (פריסת מאגר תגים).

  3. בדף Configure container, מבצעים את הפעולות הבאות:

    1. מציינים שם של קובץ אימג' של קונטיינר.
    2. בקטע Volume mounts (חיבורים של אמצעי אחסון), לוחצים על Add volume (הוספת אמצעי אחסון).
    3. מהרשימה סוג נפח בוחרים באפשרות TmpFS.
    4. בשדה Mount path (נתיב להרכבה), מציינים נתיב להרכבה במבנה של ספריית קונטיינר שבה רוצים להרכיב נפח TmpFS.
    5. ברשימה Mode, מציינים אם להטמיע את נפח ה-TmpFS במצב קריאה/כתיבה או במצב קריאה-בלבד.
    6. כדי לאשר את פרטי מאגר התגים, לוחצים על בחירה.
  4. ממשיכים בתהליך יצירת מכונת ה-VM.

gcloud

משתמשים בדגל --container-mount-tmpfs כדי לטעון מערכת קבצים ריקה tmpfs לתוך קונטיינר. בדוגמה הבאה, מערכת קבצים מסוג tmpfs נטענת לקונטיינר בנתיב /cache במצב קריאה/כתיבה:

gcloud compute instances create-with-container busybox-vm \
  --container-image docker.io/busybox:1.27 \
  --container-mount-tmpfs mount-path=/cache
 

כדי לעדכן את הנפחים tmpfs במאגר, משתמשים בפקודה gcloud compute instances update-container עם הדגל --container-mount-tmpfs. כדי להסיר נקודת הרכבה tmpfs עם נתיב הרכבה שצוין במהלך עדכון, משתמשים בדגל --remove-container-mounts. בדוגמה הבאה מוסר הטעינה tmpfs באמצעות mount-path=/cache:

gcloud compute instances update-container busybox-vm \
  --remove-container-mounts /cache

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

טעינה של דיסק מתמיד כנפח נתונים

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

דרישות מוקדמות

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

המסוף

  1. נכנסים לדף Create an instance.

    כניסה לדף Create an instance

  2. בקטע Container (מאגר תגים), לוחצים על Deploy container (פריסת מאגר תגים).

  3. בדף Configure container, מבצעים את הפעולות הבאות:

    1. מציינים שם של קובץ אימג' של קונטיינר.
    2. בקטע Volume mounts (חיבורים של אמצעי אחסון), לוחצים על Add volume (הוספת אמצעי אחסון).
    3. ברשימה סוג נפח האחסון, בוחרים באפשרות דיסק.
    4. בשדה Mount path, מציינים נתיב במבנה הספריות של הקונטיינר שבו רוצים לצרף את הדיסק הקבוע.
    5. ברשימה Disk name, בוחרים דיסק קיים להרכבה.
    6. בשדה מחיצה, מציינים את מספר המחיצה להרכבה אם בדיסק יש טבלת מחיצות. אם בדיסק אין מחיצות, משאירים את השדה הזה ריק.
    7. ברשימה Mode, מציינים אם להעלות את הספרייה במצב קריאה/כתיבה או במצב קריאה-בלבד.
    8. כדי לאשר את פרטי מאגר התגים, לוחצים על בחירה.
  4. ממשיכים בתהליך יצירת מכונת ה-VM.

gcloud

משתמשים בפקודה gcloud compute instances create-with-container או בפקודה gcloud compute instances update-container עם הדגל --container-mount-disk כדי לטעון דיסק מתמשך לתוך קונטיינר.

בדוגמה הבאה, שני דיסקים, my-data-disk ו-my-scratch-disk, נטענים לקונטיינר בנתיבי הטעינה /disks/data-disk ו-/disks/scratch-disk.

gcloud compute instances create-with-container busybox-vm \
  --disk name=my-data-disk \
  --create-disk name=my-scratch-disk,auto-delete=yes,image=ubuntu-1710-artful-v20180315,image-project=ubuntu-os-cloud \
  --container-image docker.io/busybox:1.27 \
  --container-mount-disk mount-path="/disks/data-disk",name=my-data-disk,mode=ro \
  --container-mount-disk mount-path="/disks/scratch-disk",name=my-scratch-disk

שימו לב שהדגל --disk מצרף את my-data-disk, הדגל --create-disk יוצר ומצרף את my-scatch-disk, והדגל --container-mount-disk מטמיע את הדיסקים המצורפים במאגר התגים. מכיוון שלא צוין mode עבור my-scratch-disk, הדיסק הזה מותקן בקונטיינר במצב קריאה/כתיבה כברירת מחדל.

משתמשים בפקודה gcloud compute instances update-container עם הדגל --container-mount-disk כדי לטעון דיסקים מצורפים נוספים או כדי לשנות טעינות קיימות של דיסקים.

משתמשים בדגל --remove-container-mounts כדי להסיר טעינה של נפח דיסק עם נתיב הטעינה שצוין. בדוגמה הבאה משנים את מצב הטעינה של my-data-disk לקריאה/כתיבה ומסירים את טעינת הדיסק באמצעות mount-path="/disks/scratch-disk".

gcloud compute instances update-container busybox-vm \
  --container-mount-disk mount-path="/disks/data-disk",name=my-data-disk,mode=rw \
  --remove-container-mounts "/disks/scratch-disk"

אם נתיב ההרכבה שמעבירים לדגל --remove-container-mounts לא קיים, המערכת מתעלמת ממנו בלי להציג הודעה.

פרסום יציאות של מאגרים

מכונות וירטואליות עם קונטיינרים משתמשות במצב רשת של המארח, שבו קונטיינר חולק את מחסנית הרשת של המארח וכל הממשקים מהמארח זמינים לקונטיינר.

ליציאות של הקונטיינר יש מיפוי של אחד לאחד ליציאות של מכונת ה-VM המארחת. לדוגמה, יציאה 80 של קונטיינר ממופה ליציאה 80 של המכונה הווירטואלית המארחת. ‫Compute Engine לא תומך בסימון של פרסום יציאה (-p), ולא צריך לציין אותו כדי שהמיפוי יפעל.

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

דוגמה: פרסום יציאה 80 עבור מאגר NGINX

docker run

מגדירים את הדגל --network="host" כשמשתמשים בפקודה docker run. מידע נוסף על הגדרות רשת של מאגר תגים ומצב מארח

gcloud

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

  1. יצירת מכונה וירטואלית עם קונטיינר NGINX:

    gcloud compute instances create-with-container nginx-vm \
    --container-image gcr.io/cloud-marketplace/google/nginx1:1.15 \
    --tags http-server
    

    הקונטיינר חולק את מחסנית הרשת של המכונה הווירטואלית המארחת, ויציאה 80 של הקונטיינר מתפרסמת ביציאה 80 של המכונה הווירטואלית המארחת. התג http-server משמש כתג יעד לכלל חומת האש שיוצרים בשלב הבא.

  2. יוצרים כלל חומת אש שמאפשר חיבורים ליציאה 80 של מופע המכונה הווירטואלית. כלל חומת האש הבא מאפשר חיבורי HTTP למכונות וירטואליות עם התג http-server.

    gcloud compute firewall-rules create allow-http \
    --allow tcp:80 --target-tags http-server
    

    המאגר מתחיל לקבל תנועה באופן אוטומטי ביציאה 80. אין צורך לבצע הגדרות נוספות.

    אפשר ליצור כללי חומת אש לשילובים של פרוטוקול:יציאה של מכונת VM מארחת, כאשר הפרוטוקול הוא tcp או udp. הכללים האלה קובעים למעשה את הגישה מחוץ למכונה הווירטואלית ליציאות המתאימות של מאגר התגים.

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