مقدمة
مجلدات بيانات Docker هو مفهوم مهم عند وضع تطبيقاتك في حاويات. إن معرفة هذا المفهوم أمر حيوي لضمان أفضل تجربة لتطبيقك المعبأ في حاويات إلى جانب استمرارية موثوقة وإدارة البيانات. ومع ذلك، على الرغم من أهمية هذا المفهوم، إلا أنه محير ومعقد للعديد من المطورين. من المهم للمطورين ومتخصصي DevOps أن يكونوا قادرين على فهم كيفية إعداد مجلدات بيانات Docker، وفهم استخدامها الصحيح، ومعرفة الأنواع المختلفة للمجلدات ونوع المجلد الذي يجب تحديده لتطبيقهم.
يركز هذا البرنامج التعليمي على شرح مفهوم واستخدام مجلدات بيانات Docker. بعد إكمال هذا البرنامج التعليمي، ستكون قد أتقنت إعداد والعمل مع أي نوع من مجلدات بيانات Docker.
المتطلبات الأساسية
لمتابعة هذا البرنامج التعليمي، ستحتاج إلى توفر العناصر التالية:
- Ubuntu مثبتًا. تحقق من كيفية إعداد خادم Ubuntu 18.04 الخاص بك التعليمي كمرجع سريع.
- مستخدم Ubuntu يتمتع بامتيازات sudo. يمكن أن تكون هذه الخطوة معقدة خاصة إذا لم تكن معتادًا على Linux. اقرأ تكوين ملف Linux Sudoers للحصول على دليل مفصل.
- Docker مثبتًا على Ubuntu. لتثبيت Docker على نظام Ubuntu الخاص بك، يمكنك متابعة مدونتنا كيفية تثبيت & تشغيل Docker على Ubuntu في السحابة العامة .
بينما يركز هذا البرنامج التعليمي على إدارة Docker على Ubuntu، docker تنطبق الأوامر على جميع أنظمة التشغيل التي تم تثبيت Docker عليها.
فهم كيفية عمل حاويات Docker
لفهم مجلدات بيانات Docker تمامًا، يجب أن تعرف كيف تعمل حاويات Docker. في هذا القسم، نقدم نظرة عامة على الأساسيات للمستخدمين الجدد لـ Docker. إذا كنت على دراية بكيفية عمل Docker أو كنت مستخدمًا متمرسًا لـ Docker، فيمكنك تخطي هذا القسم والبدء في استخدام مجلدات البيانات.
تسمح حاويات Docker بتشغيل تطبيق فوق نظام التشغيل المضيف عن طريق تثبيت منصة Docker. نظرًا لتثبيت منصة Docker على نظام التشغيل المضيف، يتم تشكيل تجريد بين الجهاز المضيف والتطبيق الضيف. على عكس الجهاز الافتراضي، تشارك حاوية Docker نواة Linux الخاصة بها مع نظام التشغيل المضيف. نظرًا لأن Docker لا يحتاج إلى تثبيت أي نظام تشغيل إضافي فوق الجهاز المضيف، فإن تطبيقات Docker خفيفة الوزن ويمكن الوصول إليها عبر جميع الأجهزة المضيفة طالما تم تثبيت Docker على ذلك الجهاز المضيف.
نظرًا لعدم وجود نظام تشغيل ضيف إضافي، تشارك منصة Docker الموارد مع الجهاز المضيف. يعد تشغيل تطبيق Docker سريعًا ولكن التعقيد يظهر عندما يتعين عليك مشاركة الموارد. لا يمتلك Docker ذاكرة أو مساحة تخزين خاصة به لاستمرار البيانات. يجب أن تأتي هذه الموارد من الجهاز المضيف. يجد الأشخاص المعتادون على استخدام الأجهزة الافتراضية أن عملية مشاركة الموارد وإدارتها هذه صعبة. قد يؤدي عدم توفر المعرفة المناسبة إلى نتائج غير متوقعة وغير مرغوب فيها. بينما يفترض هذا البرنامج التعليمي أنك على دراية بنظام Docker البيئي، فلا تتردد في الاطلاع على برنامجنا التعليمي المفصل ما هو Docker؟ نظرة عامة على نظام Docker البيئي لتنشيط معلوماتك سريعًا.
حفظ البيانات باستمرار باستخدام مجلدات بيانات Docker
عند العمل مع Docker، لا يمكنك إنشاء مجلد بداخله مباشرةً. وبالتالي، لتخزين البيانات، نحتاج إلى إنشاء حاوية مجلد Docker مع إرفاق مجلد بها. لتوصيل تطبيق Docker الخاص بنا بحاوية مجلد البيانات هذه، نستخدم أمر Docker’s --volume-from أمر للحصول على الحاوية وإرفاقها بتطبيقنا.
سنستعرض العملية خطوة بخطوة:
- أولاً، قم بإنشاء حاوية جديدة تسمى،
my-container عن طريق تشغيل الأمر أدناه:
1docker create -v /tmp --name my-container ubuntu
سيؤدي هذا إلى إنشاء حاوية جديدة في مجلد /tmp . يمكنك تغيير دليل المجلد حسب الحاجة. - الآن بعد أن أصبحت حاوية البيانات جاهزة، يمكنك الكتابة إليها عن طريق تشغيل حاوية Ubuntu جديدة باستخدام علامة
--volume-from ثم تشغيل
bash. أي شيء نكتبه في
tmp سيتم حفظ الدليل في جهاز المضيف الخاص بنا
/tmp مجلد:
1docker run -t -i --volumes-from my-container ubuntu /bin/bash
إن -t لسطر الأوامر يستدعي طرفية من داخل الحاوية. أما -i فيجعل الاتصال تفاعليًا. عند موجه bash لحاوية Ubuntu، قم بإنشاء ملف في /tmp:
1echo "Some sample data" > /tmp/sample_file - أخيرًا، اخرج من bash هذا عن طريق تشغيل
exit الأمر. بعد ذلك، قم بتشغيل الأمر أدناه:
1docker run -t -i --volumes-from my-container ubuntu /bin/bash
ستجد ملفك sample_file في هذا الدليل. لا يوجد قيود على عدد وحدات التخزين التي يمكنك تحديدها. يمكنك إضافة أي عدد تريده من وحدات التخزين باستخدام --volumes-from . يمكنك أيضًا إنشاء أي عدد تريده من حاويات وحدات تخزين البيانات.
الوصول إلى البيانات بين المضيف وحاوية Docker
بالنسبة للقراء ذوي الخبرة في مجال الأنظمة الافتراضية، فإن هذا الخيار مشابه لخيار المجلد المشترك في الأجهزة الافتراضية. هنا بدلاً من إنشاء حاوية data-only ، نقوم بتشغيل تطبيق Docker الخاص بنا باستخدام صورة Docker واستبدال أحد أدلته بمحتويات دليل على النظام المضيف.
السيناريو الشائع هو حفظ ملفات السجل في جهاز المضيف. قد يكون هذا مطلوبًا حتى نتمكن من تحليل هذه الملفات حسب الحاجة دون الحصول على إذن الدخول إلى داخل الجهاز. في هذا السيناريو، افترض أنك تستخدم Docker Nginx image وتريد تخزين ملفات السجل الخاصة بها في جهاز المضيف. تقوم صورة Nginx Docker بكتابة السجلات في الدليل /var/log/nginx ، ولكن هذا هو /var/log/nginx داخل حاوية Docker Nginx. وبالتالي، لا يمكن لجهاز المضيف الوصول إلى هذا الموقع.
لتحقيق هدفنا، سنحتاج إلى إنشاء مجلد مشترك لتخزين السجلات بين جهاز المضيف وصورة Docker Nginx. سنوضح أدناه هذه العملية في دليل سهل خطوة بخطوة:
- أولاً، قم بإنشاء دليل في جهاز المضيف الخاص بك حيث تريد تخزين السجلات:
ثم، قم بتشغيل الحاوية الخاصة بك عن طريق تشغيل الأمر أدناه:1mkdir ~/my-nginxlogs
1docker run -d -v ~/my-nginxlogs:/var/log/nginx -p 5000:80 -i nginx
- أمر
run هذا يقبل بعض الوسائط، لذا دعنا نفصله لفهمه بشكل أفضل:
- -p 5000:80: إعداد إعادة توجيه المنفذ. تستمع حاوية Nginx على المنفذ 80 افتراضيًا، وهذا يربط منفذ حاوية Nginx 80 بالمنفذ 5000 على النظام المضيف.
- -d: فصل العملية وتشغيلها في الخلفية.
- -v ~/my-nginxlogs:/var/log/nginx: نقوم بربط الدليل /var/log/nginx من داخل حاوية Nginx بالدليل /my-nginxlogs على جهاز المضيف. هذا الرمز : يفصل مسار المضيف عن مسار الحاوية. يأتي مسار المضيف دائمًا أولاً.
الآن بعد أن أصبحت حاوية Nginx قيد التشغيل، تحقق أولاً مما إذا كان خادم Nginx يعمل على منفذ جهاز المضيف لدينا 5000 عن طريق فتح متصفح الويب الخاص بك وتشغيل عنوان URL: http://localhost:5000. بمجرد ظهور صفحة الترحيب، يكون خادم Nginx جاهزًا ويقوم بإنشاء سجلات في مجلد /var/log/nginx الخاص به.
إذا قمت بفتح مجلد /my-nginxlogs الخاص بجهاز المضيف لديك، فسترى ملفات السجل هنا من حاوية Docker Nginx. إذا قمت بإجراء تغييرات على مجلد /my-nginxlogs على جهاز المضيف، أثناء تشغيل حاوية Nginx، ستنعكس التغييرات في مجلد /var/log/nginx الخاص بالحاوية أيضًا.
الخاتمة
في هذا البرنامج التعليمي، اتبعنا نهجًا شاملاً لفهم وحدات تخزين بيانات Docker. لقد تطرقنا إلى إنشاء وحدات التخزين لتطبيقك، ومشاركة البيانات بين المضيف وحاوية Docker، وأنواع البيانات، وحفظ البيانات بشكل دائم. سيساعدك هذا في حفظ البيانات بشكل دائم في تطبيقاتك التي تعمل داخل حاويات، بالإضافة إلى إدارة حالة التطبيق وتكوينه.
لمزيد من التعلم حول Docker، راجع البرامج التعليمية التالية من مدونتنا:
- كيفية استضافة مستودع صور Docker وبناء صور Docker باستخدام نسخة GitLab المدارة ذاتيًا على Ubuntu 20.04
- بناء ونشر تطبيق Flask باستخدام Docker على Ubuntu 20.04
- إعداد سجل Docker خاص على Ubuntu 18.04
- كيفية مشاركة البيانات بين حاوية Docker والجهاز المضيف
- تنظيف موارد Docker – الصور، والحاويات، ووحدات التخزين
حوسبة سعيدة!
التعليقات
لا توجد تعليقات بعد. كن أول من يعلق.