מפתח | Christian Brauner |
---|---|
מחזור חיים | 6 באוגוסט 2008 – הווה (16 שנים) |
גרסה אחרונה | 6.0.0 (3 באפריל 2024) |
מערכת הפעלה | לינוקס |
נכתבה בשפות | פייתון, לואה, Bourne Shell |
סוג רישיון | GPL-2.0 |
קוד מקור | https://github.com/lxc |
linuxcontainers | |
LXC (קיצור של: Linux Containers) היא שיטת וירטואליזציה ברמת מערכת ההפעלה להפעלת מספר מערכות לינוקס (קונטיינרים) מבודדות על מארח בקרה באמצעות ליבת לינוקס אחת.
ליבת לינוקס מספקת את פונקציונליות cgroups המאפשרת הגבלה ותעדוף של משאבים (מעבד, זיכרון, קלט/פלט, רשת וכו') ללא צורך בהפעלת מכונות וירטואליות כלשהן, וגם את פונקציונליות בידוד מרחב השמות המאפשרת בידוד מלא של סביבת ההפעלה, כוללים תהליך עצים, רשתות, מזהים המשתמשים ועיגון מערכות קבצים שרואה היישום.[1]
LXC משלב את cgroups של הליבה ותמיכה במרחבי שמות מבודדים כדי לספק סביבה מבודדת ליישומים. גרסאות מוקדמות של Docker השתמשו ב-LXC כדרייבר להרצת קונטיינרים, אם כי LXC נעשה אופציונלי בגרסה 0.9 והתמיכה בוטלה ב-Docker v1.10.[2][3] הפניות לקונטיינרי לינוקס מתייחסות בדרך כלל[4] לקונטיינרים של Docker הפועלים על לינוקס.
LXC מספקת וירטואליזציה ברמת מערכת ההפעלה באמצעות סביבה וירטואלית שיש לה תהליך ומרחב רשת משלה, במקום ליצור מכונה וירטואלית מלאה. LXC מסתמך על פונקציונליות cgroups של ליבת לינוקס שפורסמה בגרסה 2.6.24. הוא מסתמך גם על סוגים אחרים של פונקציונליות בידוד של מרחב שמות, שפותחו ושולבו בליבת לינוקס הראשית.
במקור, קונטיינרים של LXC לא היו מאובטחים כמו שיטות וירטואליזציה אחרות ברמת מערכת ההפעלה כגון OpenVZ: בליבות לינוקס לפני 3.8, משתמש השורש של מערכת האורח יכול להריץ קוד שרירותי במערכת המארחת עם הרשאות שורש, בדיוק כפי שהוא יכול ב"אזורי" chroot.[5] החל מה-LXC מהדורת 1.0, ניתן להפעיל קונטיינרים כמשתמשים רגילים על המארח באמצעות "קונטיינרים בלתי מורשים".[6] קונטיינרים לא מורשים מוגבלים יותר בכך שהם אינם יכולים לגשת ישירות לחומרה. עם זאת, אפילו קונטיינרים מועדפים צריכים לספק בידוד הולם ב-LXC מודל אבטחה 1.0 (אם מוגדר כראוי).[6]
LXC דומה לטכנולוגיות וירטואליזציה אחרות ברמת מערכת ההפעלה בלינוקס כמו OpenVZ ו- Linux-VServer, כמו גם לאלו במערכות הפעלה אחרות כמו כלא FreeBSD, מחיצות עומס עבודה AIX ומכולות Solaris . בניגוד ל-OpenVZ, LXC עובד בקרנל וניל לינוקס ללא צורך בהחלת תיקונים נוספים על מקורות הליבה. גרסה 1 של LXC, אשר שוחררה ב-20 בפברואר 2014, היא גרסה נתמכת לטווח ארוך ומיועדת לתמיכה למשך חמש שנים. [7] LXC 2.0 ו-3.0 הם מהדורות תמיכה ארוכות טווח: LXC 2.0 (תמיכה עד יוני 2021); LXC 3.0 (עד 1 ביוני 2023).[8]
LXD הוא מנהל קונטיינרים, למעשה חלופה לכלים של LXC, (ולא "שכתוב של LXC"). למעשה הוא בונה על גבי LXC כדי לספק חווית משתמש טובה יותר [9]
{{cite web}}
: (עזרה)
{{cite web}}
: (עזרה)
However, at least in Ubuntu, our default containers ship with what we think is a pretty good configuration of both the cgroup access and an extensive apparmor profile which prevents all attacks that we are aware of. [...] LXC is no longer running as root so even if an attacker manages to escape the container, he’d find himself having the privileges of a regular user on the host
{{cite web}}
: (עזרה)