مقدمة الى Linux Containers او LXC وLXD
تثبيت LXD في توزيعة Ubuntu 20.04 LTS وتهيئته وانشاء حاوية
السلام عليكم ورحمة الله وبركاته
ماهو LXD؟
هو نظام ادارة حاويات ( Containers Managment System ) يقدم تجربة قريبة من الاجهزة الافتراضية (Virtual Machines) لكن باستخدام الحاويات.
ما مميزات LXD؟
- امان عال حيث يوفر نوعين من الحاويات unprivileged وprivileged:-
- unprivileged تعني إنشاء مستخدم root بعناوين uid (عنوان المستخدم) وgid (عنوان المجموعة) مختلفة عن ما هو يستخدم عن طريق مستخدم root في Host ولا يمكن لمستخدم root الوصول الى ملفات root الـ Host.
- privileged هي العكس وهي الحاويات التقليدية. - قابلية التوسع (بالإمكان زيادة الموارد وتخزين الحاويات على هيئة صور وتكرارها).
- واضح (يقدم REST API سهل الاستخدام وأوامر بسيطة سهلة الحفظ والفهم).
- دعم Clusters والربط بين أكثر من جاهز.
- إمكانية تحكم في الموارد (شيء مشابه لم في Virual Machines) مثل cpu, memory, network I/O, block I/O, disk usage, kernel resources.
- توصيل الأجهزة (الربط بمنفذ USB, الربط بكرت شاشة GPU, NICs, disks, Paths وغيرها).
- إدارة الشبكة (إنشاء Bridge وتهيئته، Proxy وغيرها).
- إدارة التخزين (دعم العديد من نظام الملفات وأحجام التخزين).
- دعم انشاء اجهزة وهميه.
تثبيت LXD
لتثبيت LXD عليك أولا تثبيت snap إن لم يكن مثبت مسبقا على جهازك
عن طريق الطرفية قم بكتابة الأمر التالي (لتوزيعه Ubuntu أو مباني عليها)
sudo apt install snapd
شرح تثبيت snap للتوزيعات الاخرى
بعد تثبيت snap بإمكانك تثبيت LXD عن طريق الأمر التالي
sudo snap install lxd
بعد انتهاء تنفيذ الأمر بإمكانك التحقق من تثبيتك لـ LXD عن طريق الأمر التالي
lxd --version
إن لم يظهر أي خطأ فمعنى ذلك أنك قمت بتثبيت LXD بشكل صحيح
تهيئة LXD
لتهيئة LXD عليك تنفيذ الأمر التالي
sudo lxd init
سيطرح عليك بعض الأسئلة بإمكانك الاستمرار على الإعدادات الافتراضية كم وضح في المقطع
بعد ذلك قم بإضافة المستخدم الخاص بك إلى مجموعة lxd عن طريق الأمر التالي
sudo adduser $user lxd
أنت مخير الان بين تسجيل الخروج من الجهاز ثم العودة أو تنفيذ الأمر التالي الذي سيضيفك لمجموعة lxd في نفس الجلسة الحالية
newgrp lxd
لتتحقق ان كل شيء يعمل بشكل صحيح نفذ الأمر التالي
lxc list
إن لم تظهر أي رسالة خطا وظهر لك شيء مشابه للتالي فهذا يعني أنك نجحت في تهيئة LXD
انشاء حاوية وادارتها
تنبيه انشاء وادارة الحاويات تكون عن طريق الامر lxc وليس lxd
لإنشاء حاوية هناك أمران هم launch وinit الفرق بينهم أن init يقوم بإنشاء الحاوية أو الجهاز الوهمي بدون تشغيله لكن launch يقوم بإنشاء الحاوية أو الجهاز الوهمي ثم يقوم بتشغيله
طريقة استخدام امر launch
lxc launch [<remote>:]<image> [<remote>:][<name>] [flags]
افتراضيا بعد تثبيت lxd يضيف 2 remotes هما images وubuntu
images يدار من فريق Linux Containers يحتوي على عدة توزيعات منها Fedora CentOS Ubuntu Orcale وغيرها بعدة إصدارات
أما ubuntu فهو يدار من فريق Ubuntu ويحتوي على توزيعة Ubuntu بعدة إصدارات
سأستخدم images
مثال
lxc launch images:ubuntu/20.04 u1
في الأمر السابق قمت بإنشاء حاوية باسم u1 لتوزيعه Ubuntu 20.04 من remote ـ images
بعد انتهاء تنفيذ الأمر بإمكاني مشاهدة الحاويات بالأمر التالي
lxc list
للولوج لداخل الحاوية بإمكانك استخدام الأمر التالي
lxc exec <instance> -- su --login
حيث الأمر exec يقوم بتنفيذ امر داخل الحاوية وinstance اسم الحاوية
كمثال سأقوم بتثبيت nginx
apt update && apt install nginx
بعد التثبيت اخرج من الحاوية الى Host واكتب الأمر
lxc list
وانسخ عنوان IP الخاص بالحاوية ثم جرب عمل request له باستخدام curl ستجد أنه أعاد رسالة nginx الافتراضية
إيقاف الحاوية أو إعادة تشغيلها أو حذفها يكون بنفس نمط الأمر التنفيذي
lxc stop <instance> # ايقاف الحاوية
lxc start <instance> # تشغيل الحاوية
lxc restart <instance> # اعادة تشغيل الحاوية
lxc delete <instance> # حذف الحاوية (يجب ايقاف الحاوية قبل حذفه) ـ
حيث instance هو اسم الحاوية
الترخيص
LXD يندرج تحت ترخيص Apache 2
التعليقات (0)
عرض المزيد.. جديد مقالاتي
عرض المزيد.. جديد دوراتي
لايوجد لديك حساب في عالم البرمجة؟
تحب تنضم لعالم البرمجة؟ وتنشئ عالمك الخاص، تنشر المقالات، الدورات، تشارك المبرمجين وتساعد الآخرين، اشترك الآن بخطوات يسيرة !