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

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

נקודת הביניים בין שתי המערכות הללו היא מיכל. מיכלים מציעים רבים מהיתרונות של מכונה וירטואלית אך ללא תקורה גבוהה של משאבים. מיכלים הם פונקציונליים יותר מאשר סביבות chroot כי יש כמה וירטואליזציה. לדוגמה, תהליכים שנוצרו במיכל מוקצים מזהים (PID) בנפרד מאלה במערכת ההפעלה המארחת. במונחים טכניים, המיכל מכיל מרחב שמות PID משלו. למעשה, מכולות יש מרחב שמות משלהם עבור המשנה רשת עבור Interprocess תקשורת (IPC). פירוש הדבר שמכל יכול להפעיל שירותי רשת, כגון שרת SSH או שרת אינטרנט.

מבחוץ, המכולה נראית כמו מכונה וירטואלית עם כתובת ה- IP שלה ושירותי הרשת שלה, אבל בתוך המכל משתמשת הרבה יותר של מערכת ההפעלה המארחת מאשר מכונה וירטואלית, יותר כמו סביבה "chroot". לדוגמה, ניתן להשתמש במיכל CentOS הפועל על מארח של אובונטו. פקודות וקבצים הם כולם מ CentOS, אבל אם אתה שואל את מיכל אשר הקרנל הוא פועל, הוא ידווח שהוא מפעיל את הקרנל אובונטו, כי המיכל פועל על הקרנל ממערכת ההפעלה המארחת.

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

כדי להתקין את Docker במערכת 64 סיביות של Ubuntu 14.04, הפעל את הפקודות הבאות:

 sudo apt- לקבל עדכון sudo apt-get להתקין docker.io sudo ln -sf /usr/bin/docker.io / usr / local / bin / docker 

קיימת חבילה קיימת של אובונטו בשם docker, שהיא מגש מערכת עבור KDE3 / GNOME2. כדי למנוע בלבול, זמן הריצה של המכולה נקרא docker.io . הפקודה האחרונה יוצרת קישור מ "/ usr / local / bin / docker" ל "/usr/bin/docker.io", אשר מאפשר פקודת המעגן משורת הפקודה במקום docker.io.

הערה : Docker.io זמין גם עבור אחרים distro. להלן הוראות ההתקנה אם אינך משתמש באובונטו.

כדי לבצע קליפה בתוך המיכל, הפעל:

 sudo docker לרוץ -i-ubuntu / bin / bash 

הדגל " -i " הופך את הפגישה לאינטראקטיבית, והדגל " -t " אומר לעגינה לחקות את הפעלת הטרמינל. הפרמטר "אובונטו" אומר למעגן להפעיל מיכל המבוסס על אובונטו 14.04 ו "/ bin / bash" היא הפקודה כי יש להפעיל פעם מיכל למעלה, כלומר להפעיל את פגז Bash.

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

כדי להוריד תמונות אחרות ללא הפעלת מיכל, השתמש בפקודה " docker pull ". לדוגמה, כדי להוריד את התמונה בסיס התמונה CentOS:

 מעגן sudo למשוך centos - - 

ניתן גם להריץ פקודות בודדות במיכל ולאחר מכן לאפשר יציאה מיכל. השתמש בפקודה הבאה כדי להפעיל את הפקודה " ps aux " בתוך מיכל ה- CentOS:

 מעגן לרוץ - - 

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

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

 sudo docker לרוץ ubuntu apt- לקבל להתקין- i nmap sudo docker ps -l 

הפקודה הראשונה תתחיל מיכל ולהתקין nmap. הפקודה השנייה תציג את המיכל האחרון (-l) שנוצר, גם אם הוא אינו פועל.

כעת באפשרותך ליצור תמונת מצב של הגורם המכיל ולשמור אותו בתמונה חדשה:

 sudo docker להתחייב 1b498c2d502c ubuntu-with-nmap 

"1b498c2d502c" הוא מזהה המכולה כפי שמופיע על ידי הפקודה " docker ps -l ". עכשיו, אם אתה מתחיל פגז עבור מיכל אובונטו עם nmap, זה יהיה הפקודה nmap מותקנת מראש.

 sudo docker Run -i-ubuntu-with-nmap / bin / bash 

יש הרבה מידע על המעגן בתיעוד של docker.io, ויש גם כמה setups לדוגמה הסביר, כולל איך לבצע משימות נפוצות כמו הפעלת יישום אינטרנט python ולהפעיל שירות SSH.

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