عامل ميناء بلا جذور

Aml Myna Bla Jdhwr



يعد Docker أحد أقوى الأدوات وأكثرها تأثيرًا لتطوير التطبيقات الحديثة ونشرها. كمطورين، نستخدمه على أجهزتنا المحلية لإعداد وتكوين البيئات التي تناسب احتياجات تطبيقاتنا بسرعة في ثوانٍ.

ومع ذلك، عند العمل في Docker، قد نواجه حالات نحتاج فيها إلى إنشاء موارد Docker واستخدامها ولكن ليس لدينا حق الوصول إلى الجذر.

أو ربما ترغب في السماح لعدة مستخدمين على نظام معين بالوصول إلى Docker واستخدامه دون منح إذن الجذر لجميع المستخدمين.







في هذا البرنامج التعليمي، سنتعرف على Docker بدون الجذر، وماذا يعني، وكيف يعمل، وكيف يمكننا استخدامه للسماح للمستخدمين الذين ليس لديهم حق الوصول إلى الجذر باستخدام Docker والخدمات المرتبطة به.



ما هو عامل الإرساء بدون جذور؟

افتراضيًا، بمجرد تثبيت Docker، يتطلب برنامج Docker الخفي وأدواته امتيازات الجذر على النظام المضيف. قد يؤدي هذا إلى مخاطر أمنية كبيرة في حالة اختراق Docker، مما قد يمنح المهاجم إمكانية الوصول إلى الجذر.



Rootless Docker هي ميزة تسمح لنا باستخدام وتشغيل برنامج Docker الخفي والحاويات المرتبطة به دون أذونات الجذر.





كيف تعمل

على الرغم من أنه قد يكون من الصعب التعمق في الأعمال الفنية لبيئة عامل الإرساء بدون جذور، إلا أن ما يلي هو نظرة عامة عالية المستوى تشرح ما يفعله عامل الإرساء بدون جذور وكيف يعمل تحت الغطاء.

مساحات أسماء المستخدمين - إحدى الميزات المهمة التي يستخدمها عامل الإرساء بدون جذور هي مساحات أسماء المستخدمين. تسمح هذه الميزة الأساسية لنواة Linux للعمليات بالحصول على معرفات مستخدمين ومجموعات مختلفة داخل مساحة الاسم مقارنة بالخارج. هذا يعني أنه يمكن تشغيل العملية كمستخدم جذر داخل مساحة الاسم الخاصة بها، ولكن خارجها، يتم تشغيلها كمستخدم عادي.



الشبكات – الميزة التالية لـ Docker بدون جذور هي الشبكات. افتراضيًا، يعتمد برنامج Docker العادي على مكدسات الشبكة مثل iptables والجسور التي تتطلب أذونات الجذر.

يستفيد Docker من ميزات مثل slirp4netns، الذي يوفر مكدس TCP/IP لوضع المستخدم في عامل إرساء بدون جذر. يتيح ذلك لـ Docker الوصول إلى الشبكة دون الحصول على إذن الجذر على النظام المضيف.

تخزين - الجزء الأساسي التالي من عامل الإرساء بدون جذر هو برنامج تشغيل التخزين. افتراضيًا، يستخدم Docker برنامج تشغيل تخزين overlay2، والذي، كما يمكنك تخمينه، يتطلب أذونات الجذر. بدلاً من ذلك، يستخدم مثيل عامل الإرساء بدون جذر برنامج تشغيل fuse-overlayfs. يعتمد برنامج التشغيل هذا على FUSE overlay fs، والذي يسمح لنا بتثبيته بدون أذونات الجذر.

ما ورد أعلاه هو بعض المكونات الأساسية لمثيل عامل الإرساء بدون جذر. تذكر أن هذا لا يستكشف الأعمال الكاملة لعامل الإرساء بدون جذور. النظر في الوثائق لمعرفة المزيد.

عامل ميناء بدون جذور – المتطلبات

دعونا ننتقل من النظرية ونتعلم كيفية إنشاء وتكوين بيئة Docker بدون جذور.

لمتابعة هذا المنشور، تأكد من حصولك على ما يلي:

  1. نظام قائم على Linux مع أذونات الجذر.
  2. الوصول إلى الشبكة.

تكوين النظام باستخدام UIDmap

قبل تثبيت Docker وتكوينه، يجب علينا تثبيت النظام وتكوينه باستخدام الأداة المساعدة uidmap.

يتيح لنا UIDMap إدارة تعيينات UID وGUI للعمليات في نظام Linux في محتوى مساحات أسماء المستخدمين. هل تتذكر عندما ذكرنا أن Docker بدون جذور يستفيد من مساحات أسماء المستخدمين؟ ستسمح لنا هذه الأداة بتحديد تعيينات UID وGID ومساحات الأسماء المقابلة لها.

ابدأ بتحديث حزم النظام كما يلي:

$ sudo الرابطة بين الحصول على التحديث

بعد ذلك، قم بتثبيت الأداة المساعدة uidmap كما هو موضح:

$ sudo الرابطة بين الحصول على التثبيت com.uidmap

تثبيت عامل ميناء بدون جذور

الخطوة التالية هي معالجة وتثبيت Docker بدون جذور. يمكننا القيام بذلك باتباع الخطوات البسيطة الموضحة أدناه:

ابدأ بتنزيل البرنامج النصي لتثبيت عامل الإرساء بدون الجذر من الرابط الموضح أدناه:

https://get.docker.com/rootless

يمكنك استخدام cURL أو WGET.

$ لفة -sSL https: // get.docker.com / بلا جذور | ش

لاحظ أنه لا يمكنك تشغيل الأمر أعلاه كمستخدم جذري.

بمجرد اكتمال التثبيت، قم بتحرير ملف .bashrc الخاص بك باستخدام محرر النصوص المفضل لديك:

$ نانو .bashrc

بعد ذلك، قم بإضافة الإدخالات التالية إلى ملف التكوين bashrc:

يصدّر XDG_RUNTIME_DIR = / بيت / أوبونتو / .عامل ميناء / يجري

يصدّر طريق = / بيت / أوبونتو / سلة مهملات: $PATH

يصدّر DOCKER_HOST =يونيكس: /// بيت / أوبونتو / .عامل ميناء / يجري / docker.sock

تأكد من تغيير المستخدم من 'ubuntu' إلى المستخدم الذي ترغب في تثبيت Docker. سيعطيك إخراج البرنامج النصي المحتويات التي تريد إضافتها إلى ملف .bashrc.

احفظ التغييرات وأغلق المحرر.

في الخطوة التالية، نحتاج إلى تشغيل البرنامج الخفي Docker بدون جذور. يمكننا القيام بذلك باستخدام systemctl، كما هو موضح في الأمر أدناه:

systemctl --أوبونتو بدء عامل ميناء

بمجرد البدء، يمكنك استخدام أوامر Docker لبدء حاويات Docker وتكوينها.

خاتمة

في هذا البرنامج التعليمي، تعلمنا وظيفة Docker بدون جذور، وكيف تعمل، وكيف يمكننا تكوينها على نظام Linux. لا تتردد في التحقق من وثائق عامل الإرساء بدون جذور لمعرفة المزيد.