מה זה LXC?
LXC (ראשי תיבות של Linux Containers) הוא פתרון קוד פתוח להרצת סביבות מבודדות (containers) במערכות לינוקס,
אשר משתמש ביכולות מובנות בליבת לינוקס לניהול משאבים והרצה מבודדת של תהליכים.
בניגוד למכונות וירטואליות (VMs) שמשכפלות מערכת הפעלה שלמה, מכולות של LXC משתפות את אותה ליבת לינוקס
ומבודדות תהליכים, קבצים, רשתות ומשאבים.
LXC הוא מנגנון lightweight virtualization, כלומר וירטואליזציה קלת-משקל.
הוא אינו מדמה חומרה מלאה אלא משתמש ביכולות כמו:
namespaces: לבידוד תהליכים, משתמשים, רשת, PID ועוד.
cgroups (Control Groups): להגבלת משאבים כמו CPU, זיכרון, דיסק ורשת.
AppArmor / SELinux: להגנה נוספת על כל מכולה.
למעשה, LXC מספק סביבת מערכת שנראית כמו מערכת לינוקס נפרדת עם /etc, /proc, /dev, וכו’,
אך היא פועלת מעל הקרנל של המארח (host).
יתרונות עיקריים של LXC
ביצועים מעולים – אין אמולציה של חומרה, ולכן תהליכים רצים במהירות כמעט זהה להרצה ישירה.
שימוש יעיל בזיכרון ומשאבים – אין צורך להפעיל קרנל נפרד לכל מערכת כמו ב־VM.
הרצה מהירה – ניתן להפעיל ולכבות מכולות בשניות.
מבודד אך לא “כבד” – איזון בין בידוד טוב לבין קלות הרצה.
אינטגרציה עם systemd, Docker, Kubernetes – LXC הוא בסיס ליכולות קונטיינריזציה רבות.
השוואה בין LXC ל־Docker
| תכונה | LXC | Docker |
| רמת הפשטה | מערכת הפעלה (OS level) | אפליקציה (Application level) |
| גישת עבודה | מערכת שלמה | אפליקציה מבודדת |
| גמישות | גבוהה | נוח יותר לפיתוח ו־CI/CD |
| שימוש בקוד פתוח | כן | כן |
| קונפיגורציה | קבצי קונפיג מורכבים | Dockerfile פשוט |
| התממשקות עם orchestration | פחות נפוץ | Kubernetes, Swarm, etc. |
Docker למעשה עושה שימוש ב־LXC בתחילת דרכו, אך עבר למנוע משלו (containerd) כדי לאפשר גמישות
ושליטה גבוהה יותר.
תהליך יצירת מכולה עם LXC
sudo apt install lxc
lxc-create -n my-container -t download
lxc-start -n my-container
lxc-attach -n my-container
פירוט:
lxc-create יוצר מכולה בשם my-container על בסיס טמפלייט.
lxc-start מפעיל אותה.
lxc-attach מאפשר להתחבר ולבצע פקודות בתוך המכולה.
קונפיגורציה ובידוד
LXC מאפשר שליטה מלאה על תצורת המכולה באמצעות קבצים כמו:
swift
/var/lib/lxc/my-container/config
שם ניתן להגדיר:
מגבלות CPU וזיכרון
חיבורי רשת (bridge / NAT / macvlan)
נקודות הרכבה (mounts)
הרשאות קבצים (AppArmor, Seccomp)
מקרי שימוש עיקריים של LXC
בדיקות ופיתוח – הפעלת סביבות לינוקס שונות על גבי מארח יחיד.
הרצת שירותים מבודדים – כמו web server, DB, DNS, ללא קונפליקט.
אחסון שרתי VPS – חברות רבות משתמשות ב־LXC לאירוח לקוחות.
סביבת CI / DevOps – הרצת builds או בדיקות עם בידוד קליל ומהיר.
אבטחת LXC
אמנם LXC מספק בידוד, אך יש לזכור:
המכולות רצות על אותה ליבת מערכת ולכן לא מומלץ להריץ מכולות לא-מהימנות ללא הגבלות קפדניות.
ניתן להפעיל unprivileged containers, שבהן אפילו root בתוך המכולה הוא לא root אמיתי במערכת.
שילוב עם AppArmor, SELinux ו־Seccomp מומלץ מאוד.
LXD – שכבת ניהול מתקדמת
LXD הוא פרויקט נוסף של Canonical שמספק ממשק API REST מתקדם מעל LXC. הוא מאפשר:
ניהול מרחוק של מכולות ו־images
פריסה מבוזרת של מכולות בין מארחים
תצורה פשוטה יותר וניהול רשת אוטומטי
תקינה ותמיכה ב-LXC
LXC משתמש רק בתכונות קרנל לינוקס סטנדרטיות, ולכן נתמך ברוב ההפצות.
תמיכה מובנית קיימת באובונטו, דביאן, RHEL, Arch ועוד.
קהילת הקוד הפתוח תומכת דרך LinuxContainers.org
מחפש יישום LXC? פנה עכשיו!

