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

תנאי מקדים: דוקר מותקן במחשב

לפני כן מספר מושגים:

אימג' ־־ אוסף החומרים\קבצים הדרושים כאשר הוא ארוז ומוכן למימוש
קונטיינר ־־ כאשר האימג' מופעל, ממומש בריצה.
דוקר ־־ (1) שם של שיטת עבודה (2) פקודה לטיפול באימג' או הרצתו
(3) מילת קיצור במקום אימג' או קונטיינר בהתאם להקשר.
רגיסטרי\רפוזיטורי ־־ מחסן שמחזיק את האימג' וכל גירסאותיו

הנה תיאור גרפי של מה שאנו הולכים לעשות
---------------------------------------------------------------------------------


נתחיל


* יצירת registry ב dockerhub


1. נרשם לאתר dockerhub

2. אחרי שנכנס שוב לאתר עם הלוגאין שלנו:
קליק על Repositories
קליק על Create Repository
בשורה הראשונה: נשאיר את השם שלנו ונוסיף את שם האימג' שאנו רוצים

במהלך ההדגמה אשתמש באימג' מהחשבון שלי: uuddii/helo


* ועכשיו שישה צעדים להכנת האימג'


הקובץ myscr.py זה הסריפט שאני רוצה להריץ. הוא כותב למסך את
המילה America ולתוך קובץ את המילה London. זה נראה כך:

print("America")
f=open("/tmp/output.txt", "w")
f.write("London\n")

1. נצור תיקיה ריקה, נעתיק לתוכה את הקבצים שאנו רוצים
שיהיו בדוקר ואחר כך נכנס לתוכה:

mkdir helo
cp myscr.py helo
cd helo

2. בתיקיה זו נייצר קובץ דרישות לבניית האימג' שלנו
הקובץ צריך להקרא Dockerfile (עם האות הגדולה)
וזה נראה כך:

FROM python
WORKDIR /tmp
ADD * /tmp/
CMD ["python", "myscr.py"]

הסבר לכל שורה:
אני רוצה שהדוקר יהיה מבוסס על דוקר פייתון שכבר מוכן ברשת (חינמי)
אני רוצה שהתיקיה /tmp/ תהיה ברירת המחדל לעבודה
אני רוצה להוסיף את הסקריפט שלי ל tmp
אני רוצה להריץ את הסקריפט myscr.py בפייתון


3. הפקודה לבניית האימג'(יש נקודה בסוף השורה)

docker build -t helo .

4. נריץ את הדוקר לניסיון:

docker run helo

על המסך נראה את המילה America אך את קובץ הפלט output.txt לא
נמצא כי הקבצים של הקונטיינר נעלמים אחרי הריצה! לצורך כך יש לנו את
מערכת ה runai ...נראה בהמשך...

5. זה הזמן להעלות את האימג' שזה עתה בנינו אל הרגיסטרי שפתחנו באתר:
צעד ראשון (חד פעמי) לוגאין לרגיסטרי:
(למקרה של בעית הרשאות, לקרוא כאן)

docker login -u uuddii

6. צעד אחרון דחיפת האימג' לענן (dockerhub)

docker tag helo uuddii/helo
docker push uuddii/helo

בפעם הקודמת (4) הרצנו את הדוקר המקומי.
הבה ננסה להריץ את הדוקר מתוך הענן

docker run uuddii/helo


במזל טוב, יש לנו אימג' מוכן שיושב בענן
וכך מערכת runai יכולה להגיע אליו
אך כיצד עובדים עם runai? זאת בפרק הבא

שו"ת דוקר
הביתה run-ai