הנתונים הקבועים הם הדרך המועדפת לטיפול בנתונים עמידים שנוצרים על ידי ומשמשים על ידי תקופות Docker. בואו נצפה באיך זה עובד על ידי כיסוי כיצד ליצור נתוני Docker על Windows. תלמדו גם כיצד לנהל אותם!
פוסט הבלוג הזה מצורף בסרטון קומפניון שנוצר על ידי תורם TechSnips, Matt McElreath. תרגישו חופשי לצפות או, אם אתם מעדיפים טקסט, להמשיך לקרוא!
אחסון נתונים עמידים
אם ברצונך לאחסן נתונים עמידים עבור תקופות, ישנם כמה אפשרויות. תחילה, אראה לך איך להשתמש ב- עמודת החיווי. כרגע אני נמצא בתיקייה בשם נתונים על C:\ שלי. אם אני רשום את תוכן התיקייה הזו, אתה יכול לראות שיש לי חמישה קבצי טקסט.

אם ברצוני להפוך את התיקייה הזו זמינה לתקופה, אני יכול לעצור אותה כאשר אני מפעיל את התקופה.
בואו נמשיך ונפעיל תקופה באמצעות docker run
. אני הולך להפעיל תקופה זו במצב אינטראקטיבי, ולאחר מכן אני אציין -V
. כאן, אני הולך להכניס את נתיב התיקייה שלי, לאחריו נקודה פסיק, ולאחר מכן אני אציין את הנתיב בתוך התקופה בו אני רוצה שהתיקייה תותקן.
עבור זה, אני הולך לציין את התיקייה C:\shareddata. לאחר מכן אני אציין את התמונת image של שרת ה־Windows Server Core, ולבסוף, אני אציין שאני רוצה להפעיל את PowerShell בעת שהתוכנה מתוך התכול.
כעת שאני בתוך התכול החדש, אם אני רשום את תוכן C:\, תוכל לראות שיש לי תיקיית shareddata.

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

I can also create files in this folder, which will be available to other containers or my container host. Let’s go ahead and run a new item to create a file called containertest.

ניתן לראות מעלה שהקובץ החדש נוצר מתוך התכול. עכשיו אני איצא מהתכול הזה שישוט אותו על ידי הרצת exit
.
אם אני מריץ docker ps
, אתה יכול לראות שאין כעת תכולות פעילות.

רישום נתונים בכמויות עם Docker Volumes
עכשיו בואו נרשום את תוכן התיקייה שוב ממארח התכול שלי.

אפשר לראות את הקובץ החדש שנוצר מתוך התכול שנקרא containertest. Bind mounts יש להם פונקציונליות מוגבלת, אך כך נכון להשתמש ב-volumes כדי להשיג את מה שאנו מנסים לעשות. כדי להתחיל עם volumes, אפשר להריץ את אותו הפקודה להתחלת תכול, אבל הפעם עם כמה הבדלים קטנים. במקום לציין את הנתיב במערכת הקבצים של המארח של התכול, אני אשתמש במילה hostdata כשם ל-volume שאני רוצה ליצור ולהשתמש בו.
מתוך התכול החדש, אם אני רשום את תוכן C:\, תוכל לראות שוב שיש לי תיקייה בשם shareddata.

אם אני מפרט את תוכן התיקייה ההיא, היא כרגע ריקה מכיוון שיצרנו נפח ריק. עכשיו נריץ Ctrl-P-Q שיקח אותנו מהקונטיינר הרץ, אך ישמור עליו רץ ברקע.
ממארח הקונטיינר, נריץ docker volume ls
. זה יפרט את הנפחים הנוכחיים על מארח הקונטיינר הזה. יש לי נפח שנקרא hostdata, שנוצר כאשר ציינתי אותו בפקודת docker run
.

אם אריץ docker ps
נוכל לראות את הקונטיינר שלנו שרץ.

עצר את הקונטיינר הזה באמצעות docker stop
. עכשיו אין לנו קונטיינרים רצים.

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

יצירת נפחים של Docker
דרך נוספת ליצירת נפח היא להשתמש בפקודת docker volume create
. אם אינך מפרט שם, Docker יעניק לו שם המורכב מרשימה ארוכה של תווים אקראיים. אחרת, ניתן לפרט שם כאן. אני הולך לקרוא לנפח זה logdata. עכשיו נוכל לראות שהוא נמצא ברשימה כאשר אנו מפרטים שוב את הנפחים.

עכשיו תערוך להרכיב את זה לקונטיינר חדש. השתמש שוב ב־docker run
ועבור נפח הפרט את הנפח שנוצר והרכב אותו ל־c:\logdata.
מתוך התוך של הקונטיינר, עבור לתיקיית logdata וצור כמה קבצים. כרגע, אין קבצים בתיקייה הזו, אז תמשיך וצור כמה.
עכשיו יש לי שני קבצי יומן בתיקייה הזו.

הפעל את Ctrl-P-Q שוב כדי לצאת מהקונטיינר הזה כל עוד הוא פועל. בזמן שהקונטיינר הזה פועל, התחל קונטיינר חדש עם הנפח הנכון.
אם נריץ רשימה על התיקייה logdata בקונטיינר החדש, נוכל לראות את שני קבצי הלוג שמשותפים.

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

עכשיו עצור את כל הקונטיינרים הפועלים, ואז הפעל docker rm
כדי להסיר את כל הקונטיינרים שיצאו.

רשום שוב את הנפחים. הנפח logdata עדיין זמין להותקן בקונטיינרים עתידיים.

אם תריץ docker volume
, תקבל מעזרת השימוש לפקודה.

בדיקת נפחים של Docker
כבר בדקנו create
, אז נמשיך ל inspect
. אם אני אריץ docker volume inspect
נגד הנפח logdata, הוא יחזיר את המאפיינים של הנפח, כולל נקודת ההרכבה שהיא הנתיב הפיזי לנפח במארח הקונטיינר.

בואו נפתח את התיקייה הזו באמצעות Invoke-Item
ונסתכל. מתחת לתיקיית logdata, יש תיקייה בשם data. אם נפתח אותה, נוכל לראות את הקבצים שנוצרו מהקונטיינר קודם.

מחיקת נפחי Docker
למחיקת נפח, ניתן להריץ docker volume rm
, ואז את שם הנפח שברצונך למחוק.
עכשיו אם אני רשום את הנפחות, logdata כבר אינו נמצא שם.

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

חשוב להשתמש בפקודה זו בזהירות, ולכן קיים אזהרה והודעה לוודא שאכן ברצונך לעשות זאת. אם אני מקליד Y
ולוחץ על Enter, זה יראה לי אילו נפחות נמחקו.
ואם אני מרשים את הנפחות שלי שוב, תוכל לראות שכולם נמחקו.

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