צור בקלות כונני Docker על Windows

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

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

אחסון נתונים עמידים

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

Multiple text files in the C:\data folder

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

בואו נמשיך ונפעיל תקופה באמצעות docker run. אני הולך להפעיל תקופה זו במצב אינטראקטיבי, ולאחר מכן אני אציין -V. כאן, אני הולך להכניס את נתיב התיקייה שלי, לאחריו נקודה פסיק, ולאחר מכן אני אציין את הנתיב בתוך התקופה בו אני רוצה שהתיקייה תותקן.

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

docker run -it -v c:\Data:c:\shareddata microsoft/windowsservercore powershell

כעת שאני בתוך התכול החדש, אם אני רשום את תוכן C:\, תוכל לראות שיש לי תיקיית shareddata.

Listing directory contents in a Docker container

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

Files on the host

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.

Creating a file on the container host

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

אם אני מריץ docker ps, אתה יכול לראות שאין כעת תכולות פעילות.

Looking for running containers

רישום נתונים בכמויות עם Docker Volumes

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

Listing files on the container host

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

מתוך התכול החדש, אם אני רשום את תוכן C:\, תוכל לראות שוב שיש לי תיקייה בשם shareddata.

Listing files

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

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

Listing Docker volumes

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

Listing running containers

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

Stopping a Docker container

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

Listing Docker volumes

יצירת נפחים של Docker

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

Creating a new Docker volume

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

> docker run -it -v logdata:c:\logdata microsoft/windowsservercore powershell

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

PS> New-Item -Name Log1.txt -ItemType File
PS> New-Item -Name Log2.txt -ItemType File

עכשיו יש לי שני קבצי יומן בתיקייה הזו.

Two files in C:\logdata

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

> docker run -it -v logdata:c:\logdata microsoft/windowsservercore powershell

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

Two log files being shared with containers

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

Two containers still running

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

Removing Docker containers

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

Volume still available

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

Docker volume syntax

בדיקת נפחים של Docker

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

Inspecting Docker volumes

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

Files created earlier

מחיקת נפחי Docker

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

> docker volume rm logdata

עכשיו אם אני רשום את הנפחות, logdata כבר אינו נמצא שם.

Listing Docker volumes

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

Inspecting the prune parameter

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

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

No Docker volumes exist

סיכום

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

Source:
https://adamtheautomator.com/create-docker-volume/