مقدمة الى Linux Containers او LXC وLXD

تثبيت LXD في توزيعة Ubuntu 20.04 LTS وتهيئته وانشاء حاوية

xlmnxpمنذ 3 سنوات

السلام عليكم ورحمة الله وبركاته

ماهو LXD؟

هو نظام ادارة حاويات ( Containers Managment System ) يقدم تجربة قريبة من الاجهزة الافتراضية (Virtual Machines) لكن باستخدام الحاويات.

 

ما مميزات LXD؟

  1. امان عال حيث يوفر نوعين من الحاويات unprivileged وprivileged:-
    - unprivileged تعني إنشاء مستخدم root بعناوين uid (عنوان المستخدم) وgid (عنوان المجموعة) مختلفة عن ما هو يستخدم عن طريق مستخدم root في Host ولا يمكن لمستخدم root الوصول الى ملفات root الـ Host.
    - privileged هي العكس وهي الحاويات التقليدية.
  2. قابلية التوسع (بالإمكان زيادة الموارد وتخزين الحاويات على هيئة صور وتكرارها).
  3. واضح (يقدم REST API سهل الاستخدام وأوامر بسيطة سهلة الحفظ والفهم).
  4. دعم Clusters والربط بين أكثر من جاهز.
  5. إمكانية تحكم في الموارد (شيء مشابه لم في Virual Machines) مثل cpu, memory, network I/O, block I/O, disk usage, kernel resources.
  6. توصيل الأجهزة (الربط بمنفذ USB, الربط بكرت شاشة GPU, NICs, disks, Paths وغيرها).
  7. إدارة الشبكة (إنشاء Bridge وتهيئته، Proxy وغيرها).
  8. إدارة التخزين (دعم العديد من نظام الملفات وأحجام التخزين).
  9. دعم انشاء اجهزة وهميه.

 

تثبيت 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

1
إعجاب
2270
مشاهدات
0
مشاركة
1
متابع

التعليقات (0)

لايوجد لديك حساب في عالم البرمجة؟

تحب تنضم لعالم البرمجة؟ وتنشئ عالمك الخاص، تنشر المقالات، الدورات، تشارك المبرمجين وتساعد الآخرين، اشترك الآن بخطوات يسيرة !