אנדרואיד

הפקודה של Docker עם דוגמאות

Docker file рецепт для Docker images. Как рождается Docker контейнер c помощью Docker build.

Docker file рецепт для Docker images. Как рождается Docker контейнер c помощью Docker build.

תוכן עניינים:

Anonim

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

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

פיקוד הפעלת Docker

פקודת docker run לובשת את הטופס הבא:

docker run IMAGE

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

אם לא מצוין פקודה, הפקודה שצוינה בהוראות ה- CMD או ENTRYPOINT של ENTRYPOINT מבוצעת בעת הפעלת המיכל.

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

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

docker container run IMAGE

התחביר הישן, לפני 1.13, עדיין נתמך. מתחת למכסה המנוע, פקודת docker run היא כינוי docker container run . משתמשים מעודדים להשתמש בתחביר הפקודה החדש.

רשימה של כל אפשרויות docker container run ניתן למצוא בדף התיעוד של Docker.

הרץ את המכולה בחזית

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

docker container run nginx

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

כדי לעצור את המכולה, סיים את תהליך ה- Nginx הפועל על ידי לחיצה על CTRL+C

הפעל את המיכל במצב מנותק

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

השתמש באפשרות -d כדי להפעיל מיכל מנותק:

docker container run -d nginx

050e72d8567a3ec1e66370350b0069ab5219614f9701f63fcf02e8c8689f04fa

המכולה המנותקת תיפסק עם סיום תהליך השורש.

אתה יכול לרשום את המכולות הפועלות באמצעות docker container ls .

כדי לצרף את הטרמינל שלך לתהליך שורש המכולה המנותק, השתמש בפקודה docker container attach של docker container attach .

הסר את המיכל לאחר היציאה

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

אפשרויות --rm הפעלת --rm להסיר את המיכל כאשר הוא יוצא אוטומטית:

docker container run --rm nginx

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

הגדר את שם המיכל

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

השתמש באפשרות - שם להקצאת שם מותאם אישית למכולה:

docker container run -d --name my_nginx nginx

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

docker: Error response from daemon: Conflict. The container name "/my_nginx" is already in use by container "9…c". You have to remove (or rename) that container to be able to reuse that name.

הרץ את docker container ls -a כדי לרשום את כל המכולות, ולראות את שמותיהם:

docker container ls

CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 9d695c1f5ef4 nginx "nginx -g 'daemon of…" 36 seconds ago Up 35 seconds 80/tcp my_nginx

השמות המשמעותיים מועילים להפניה למכולה בתוך רשת Docker או בעת הפעלת פקודות CLI של docker.

יציאות מכולות לפרסום

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

פירוש יציאות פירושו מיפוי של יציאות מכולות ליציאות המכונה המארחות כך שהיציאות זמינות לשירותים מחוץ ל- Docker.

כדי לפרסם נמל השתמש באפשרויות -p באופן הבא:

-p host_ip:host_port:container_port/protocol

  • אם לא צוין host_ip , ברירת המחדל היא ל- 0.0.0.0 . אם לא מוגדר protocol , ברירת המחדל היא ל- TCP. כדי לפרסם מספר יציאות, השתמש באפשרויות -p רבות.

כדי למפות את יציאת TCP 80 (nginx) במכל ליציאה 8080 בממשק localhost המארח, תפעיל:

docker container run --name web_server -d -p 8080:80 nginx

אתה יכול לאמת שהיציאה מתפרסמת על ידי פתיחת http://localhost:8080 בדפדפן שלך או הפעלת פקודת התלתלים הבאה במארח Docker:

curl -I

הפלט ייראה כך:

HTTP/1.1 200 OK Server: nginx/1.17.6 Date: Tue, 26 Nov 2019 22:55:59 GMT Content-Type: text/html Content-Length: 612 Last-Modified: Tue, 19 Nov 2019 12:50:08 GMT Connection: keep-alive ETag: "5dd3e500-264" Accept-Ranges: bytes

שיתוף נתונים (הרכבת כרכים)

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

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

-v host_src:container_dest:options

  • host_src יכול להיות נתיב מוחלט לקובץ או לספרייה במארח או לכלי נפח בשם. container_dest הוא נתיב מוחלט לקובץ או לספרייה במכל. אפשרויות יכולות להיות rw (קריאה-כתיבה) ו- ro (לקריאה בלבד)). אם לא מוגדרת אפשרות, ברירת המחדל היא ל- rw .

כדי להסביר כיצד זה עובד, בואו ליצור מדריך במארח index.html קובץ index.html :

mkdir public_html echo "Testing Docker Volumes" > public_html/index.html

בשלב הבא, public_html את ספריית public_html לתוך /usr/share/nginx/html במכל:

docker run --name web_server -d -p 8080:80 -v $(pwd)/public_html:/usr/share/nginx/html nginx

במקום לציין את הנתיב המוחלט לספריה public_html , אנו משתמשים בפקודה $(pwd) , המדפיסה את ספריית העבודה הנוכחית.

כעת, אם אתה מקליד בדפדפן שלך http://localhost:8080 , אתה אמור לראות את תוכן הקובץ index.html . אתה יכול גם להשתמש curl :

curl

Testing Docker Volumes

הפעל את המכולה באופן אינטראקטיבי

כשאתה מתמודד עם תהליכים אינטראקטיביים כמו bash , השתמש באפשרויות -i ו- -t כדי להפעיל את המיכל.

האפשרויות- -it אומרת לדוקר לשמור על הקלט הסטנדרטי המחובר למסוף ולהקצות פסאודו-טטי:

docker container run -it nginx /bin/bash

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

root@1da70f1937f5:/#

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

בדוגמה זו סיפקנו פקודה ( /bin/bash ) כטיעון לפקודת docker run הדוקר שהוצאה במקום זו שצוינה ב- Dockerfile.

סיכום

Docker הוא התקן לאריזה ופריסת יישומים ורכיב חיוני ב- CI / CD, אוטומציה ו- DevOps.

פקודת docker container run משמשת ליצירה ולהפעלה של מכולות Docker.

הדוקר