סדנאות האינטרנט: התחלת עם תאי התאגידים

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

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

הקדם

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

לDocker יש 3 רכיבים עיקריים:

  • מנוע דוקר
  • כלים דוקר
  • מאגר דוקר

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

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

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

בסוף המדריך הזה, תהיה מותקן Docker על Droplet של DigitalOcean, תנהל קונטיינרים, תעבוד עם דמויות, תוסיף קיום מתמשך, ותקין ריגיסטרי פרטי.

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

על מנת לעקוב אחרי המדריך הזה, תצטרך:

באופן בר-מצב הdocker דרוש רכיבים עלילים. אך אתה יכול לבצע את הפקט בלי התעדות על sudo על ידי ריציית docker כמשתמש בקבוצת docker.

על מנת להגדיר את הדרפלט בדרך זו, היית צריך להריץ את הפקט sudo usermod -aG docker ${USER}. זה יוסיף את המשתמש הנוכחי לקבוצת docker. אחר כך, היית צריך להריץ את הפקט su - ${USER} כדי להחיל את חברות הקבוצה החדשה.

המדריך הזה מצפה שלשרVER שלך מוגדר כך שיפעל את הפקט docker בלי התעדות על sudo.

שלב 1 — התקנת Docker

אחרי שייך לשרVER ב-SSH, ביצע את הפקטים הבאים כדי למחוק כל החברות הקשורות ל-docker שאולי כבר מותקנות ואז להתקין Docker ממאגר המקורי הרשמי:

  1. sudo apt-get remove docker docker-engine docker.io
  2. sudo apt-get install -y apt-transport-https ca-certificates curl software-properties-common
  3. curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
  4. sudo apt-key fingerprint 0EBFCD88
  5. sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable"
  6. sudo apt-get update
  7. sudo apt-get install -y docker-ce

אחרי ההתקנה של Docker, בדיק את ההתקנה בעזרת הפקטים הבאים:

  1. docker info

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

  1. docker version

##שלב 2 — השגיאת תאים

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

כדי לחפש תמונה בשם hello-world, הייתם צריכים להריץ את הפקודה:

  1. docker search hello-world

עלולה להיות תמונות רבות שמתאימות לשם hello-world. תבחרו את האחת עם הכמות הגדולה ביותר של כוכבים, שזה מראה את הפופולריות של התמונה.

בדיקו את התמונות הזמינות בסביבת המקומית שלכם בפקודה הבאה:

  1. docker images

מפני שעדיין לא התחילתם תאים, לא יהיו תמונות. כעת אתם יכולים להוריד את התמונה ולהריץ אותה במקום:

  1. docker pull hello-world
  2. docker run hello-world

אם אתם יוצאים את הפקודה docker run ללא לוחץ התמונה, מנוע הדוקר יריץ קודם את התמונה ואחר כך יריץ אותה. בשוב בפקודה docker images תראו שיש לכם את תמונת hello-world בסביבה המקומית.

בואו נהיה מסוגלים להשגיא תא משמעותי יותר: שרת אפסיקס.

  1. docker run -p 80:80 --name web -d httpd

על

  • -p — זה אומר למנגנון Docker Engine להפיק את פתח הקונטיינר 80 על פתח המאחסן 80 של המאחסן. בגלל שApache מקשיב על פתח 80, אנחנו צריכים לפתח אותו על פתח המאחסן.
  • --name — ההפעלה הזו מעניקה שם לקונטייןר המופעל שלנו. אם נעמיד את זה, מנגנון Docker Engine יעניק שם אקראי.
  • -d — האפשרות הזו אומרת למנגנון Docker Engine להפעיל את הקונטייןר במצב נפרד. בלי זאת, הקונטייןר יתחיל בקדמה, שיקוף את הגישה לשטח. על ידי דחיפת הקונטייןר לרקע, אנחנו יכולים להמשיך ל使用 את השטח בזמן שהקונטייןר עדיין מופעל.

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

  1. docker ps

הפיץ מראה שהקונטייןר הנקרא web מופעל עם פתח 80 שמתואך לפתח 80 של המאחסן.

עכשיו נגיע לשרת האינטרנט:

  1. curl localhost

בואו נעצור ונמחק את הקונטייןר המופעל באמצעים הפקטיבות הבאות:

  1. docker stop web
  2. docker rm web

ריציית docker ps מחדש מאשרת שהקונטייןר נסגר.

שלב 3 — הוספת אחסון לקונטיינרים

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

התחל ביצירת תיבה חדשה על המאחסן:

  1. mkdir htdocs

עכשיו, בואו נביא את התא עם תפקיד חדש כדי למוט את תיבת htdocs, בעודו מתייחס אל השורש של השרת האינטרנט Apache:

  1. docker run -p 80:80 --name web -d -v $PWD/htdocs:/usr/local/apache2/htdocs httpd

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

ניגש לתיבה בתא על ידי ביציאת הפקטיביסים:

  1. docker exec -it web /bin/bash

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

הגע לתיבת htdocs ויציר קטע אחד פשוט של HTML. ולבסוף, יצא מהשהל כדי לחזור למאחסן:

  1. cd /usr/local/apache2/htdocs
  2. echo '<h1>Hello World from Container</h1>' > index.html
  3. exit

ביציאת הפקטיביס curl localhost שוב מראה שהשרת האינטרנט מוציא את הדף שנוצר.

אנחנו יכולים לגשת לקומף זה למאחסן בלבד, אבל אנחנו יכולים גם לשנות אותו:

  1. cd htdocs
  2. cat index.html
  3. echo '<h1>Hello World from Host</h1>' | sudo tee index.html >/dev/null

ביציאת הפקטיביס curl localhost שוב מאשרה שהשרת האינטרנט מספק את הדף האחרון שנוצר מהמאחסן.

סגור את התא בפקטיביס הבא: (ה-f מכריע את

  1. docker rm -f web

שלב 4 — בניית תמונות

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

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

בואו נהיה מסוגלים להריץ שוב את התא httpd ולשנות את המסמך הבסיסי:

  1. docker run -p 80:80 --name web -d httpd
  2. docker exec -it web /bin/bash
  3. cd htdocs
  4. echo '<h1>Welcome to my Web Application</h1>' > index.html
  5. exit

התא עכשיו מתפעל עם תמונה מותאמת מותאמת ל index.html. ניתן לבדוק את זה בעזרת curl localhost.

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

  1. docker stop web
  2. docker commit web doweb

אישור יצירת התמונה עם הפקת הפעם של docker images. זה מראה את תמונת doweb שאנחנו יצרנו עכשיו.

על מנת לתייג ולאחסן את התמונה ב-Docker Hub, נרצה להביא את המשימה הבאה על מנת לשלוח את התמונה לרגיסטר הציבורי:

  1. docker login
  2. docker tag your_docker_hub_username/doweb
  3. docker push your_docker_hub_username/doweb

ניתן לבדוק את התמונה החדשה על ידי חיפוש ב-Docker Hub מהדפדף או משוב הפקת המשימה.

שלב 5 — השקת רגיסטר פרטי

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

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

  1. docker run -d -p 5000:5000 --restart=always --name registry -v $PWD/registry:/var/lib/registry registry

שים לב שהמיכל נשגר ברקע עם הפתחה 5000 חשופה והספרייה registry ממופה למערכת הקבצים של המארח. ניתן לוודא שהמיכל רץ על ידי הפעלת הפקודה docker ps.

ניתן עכשיו לתייג תמונה מקומית ולשדר אותה למשרד הרישום הפרטי. בואו ראשית נשגר את המיכל busybox מ-Docker Hub ונתייג אותו.

  1. docker pull busybox
  2. docker tag busybox localhost:5000/busybox
  3. docker images

הפקודה הקודמת מאשר שהמיכל busybox עכשיו תוייג עם localhost:5000, אז נשדר את התמונה למשרד הרישום הפרטי.

  1. docker push localhost:5000/busybox

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

  1. docker rmi -f localhost:5000/busybox
  2. docker images
  3. docker pull localhost:5000/busybox
  4. docker images

עברנו את המעגל השלם של שיגור התמונה, תיוגה, שמירתה במשרד הרישום המקומי ולבסוף, שיגורה מחדש.

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

אז כי הרישום אינו מוגן, עלינו לשנות את הקונפיגורציה של מנוע Docker כדי לאפשר גישה לרישום לא מוגן. לשם כך, ערוך את הקובץ daemon.json הממוקם בכתובת /etc/docker/daemon.json. יצירת הקובץ אם הוא לא קיים.

הוסף את הרשומה הבאה:

Editing /etc/docker/daemon.json
{
  "insecure-registries" : ["REMOTE_REGISTRY_HOST:5000"]
}

החלף REMOTE_REGISTRY_HOST עם שם המארח או כתובת ה-IP של הרישום המרוחק. הפעל מחדש את מנוע Docker כדי לוודא ששינויי הקונפיגורציה הוחלו.

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

Source:
https://www.digitalocean.com/community/tutorials/how-to-install-and-configure-docker