مقدمة
بشكل عام، تعمل حاويات Docker لفترة زمنية معينة فقط – وهي الوقت المستغرق لتشغيل الأمر. ولا يمكن الوصول إلى البيانات المتاحة داخل الحاوية إلا من داخل الحاوية أثناء وقت التشغيل.
وحدات تخزين Docker يمكن استخدامها للوصول إلى الملفات بسهولة وتخزينها لفترة أطول. على سبيل المثال، إذا كان لديك خادم ويب Nginx وتريد تخزين السجلات لعمليات التدقيق، فيمكنك استخدام وحدة تخزين Docker لتخزين السجلات من الحاوية في جهازك المضيف.
في هذا البرنامج التعليمي، سوف تتعلم كيفية مشاركة البيانات بين الجزء الداخلي لحاوية Docker والجهاز المضيف.
المتطلبات الأساسية
لهذا البرنامج التعليمي، ستحتاج إلى المتطلبات الأساسية التالية:
- خادم Ubuntu 18.04: يمكنك بسهولة إنشاء خادم CloudSigma جديد باستخدام صورة Ubuntu 18.04، باتباع برنامجنا التعليمي المفيد.
- Docker – يمكنك تثبيت Docker باستخدام برنامجنا التعليمي حول كيفية إعداد Docker على Ubuntu والتعرف عليه.
الخطوة 1 – ربط وحدة تخزين (Bind Mount)
يمكنك إنشاء دليل باسم logs في الدليل الرئيسي للمستخدم الحالي وربطه بـ /var/log/nginx في حاوية Nginx باستخدام الأمر التالي:
|
1 |
docker run --name=nginx -d -v ~/logs:/var/log/nginx -p 5000:80 nginx |
إليك معلومات أكثر تفصيلاً حول هذا الأمر:
--name=nginxيعطي اسماً للحاوية لسهولة الرجوع إليها.-dتقوم هذه المعلمة بفصل العملية وتشغيلها في الخلفية.-v hostPath:containerPathيربط مسار المضيف بمسار الحاوية لربط وحدة التخزين.-p hostPort:containerPortتقوم هذه المعلمة بربط منفذ الحاوية بمنفذ المضيف.nginxفي نهاية السطر هو اسم الصورة التي يجب استخدامها لإنشاء الحاوية.
الخطوة 2 – الوصول إلى البيانات على المضيف
الآن، لديك حاوية Nginx تعمل على خادمك، والمنفذ 5000 لخادمك مرتبط بالمنفذ 80 لـ Nginx. يمكنك فتح المنفذ في متصفح الويب باستخدام عنوان URL التالي:
|
1 |
http://serverIP:5000/ |

في دليل ~/logs، سترى ملفي access.log و error.log. يمكنك رؤية السجلات باستخدام الأمر cat:
|
1 |
cat access.log |
|
1 2 3 |
المخرجات: xx.xxx.xxx.xxx - - [17/Apr/2021:19:25:05 +0000] "GET / HTTP/1.1" 200 612 "-" "Mozilla/5.0 (Macintosh; Intel Mac OS X 11_2_3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/xx.xxx.xxx.xxx Safari/537.36" "-" xx.xxx.xxx.xxx - - [17/Apr/2021:19:25:05 +0000] "GET /favicon.ico HTTP/1.1" 404 556 "http://xx.xxx.xxx.xxx:5000/" "Mozilla/5.0 (Macintosh; Intel Mac OS X 11_2_3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/xx.xxx.xxx.xxx Safari/537.36" "-" |
يمكنك أيضاً التحقق من دليل السجلات ~/logs على جهازك المضيف والعثور على ملف سجلات Nginx. علاوة على ذلك، إذا قمت بإجراء أي تغييرات في مجلد logs، فستنعكس أيضاً في مجلد الحاوية /var/log/nginx أيضاً.
الخاتمة
في هذا البرنامج التعليمي، تعلمت كيفية مشاركة البيانات بين الجزء الداخلي لحاوية Docker والجهاز المضيف. هذا أمر ضروري في بيئات التطوير حيث يعد تحليل السجلات أمراً لا بد منه لتصحيح الأخطاء.
لمزيد من الموارد حول Docker على مدونتنا، يمكنك الاطلاع على ما يلي:
- كيفية تثبيت & تشغيل Docker على Ubuntu في السحابة العامة
- تثبيت وإعداد Docker على CentOS 7
- تنظيف موارد Docker – الصور، الحاويات، ووحدات التخزين
- كيفية تشغيل Docker على CloudSigma (باستخدام CloudInit) محدث
حوسبة سعيدة!
التعليقات
لا توجد تعليقات بعد. كن أول من يعلق.