اذا تريد ان تبدأ رحلتك في تثبيت واستضافه الخِدْمَات محليا على خادم منزلي او خادم مستأجر يجب عليك ان تستخدم دوكر.
دوكر هو برمجية تقوم بإنشاء حاوية مخصصه لكل برنامَج لتسهيل وتسريع تثبيت الخِدْمَات والبرمجيات وعزلها.
كامل التفاصيل عن عالم الحاويات و دوكر في هذا الموضوع:
برمجية Portainer تقوم بتسهيل التعامل مع docker وتثبيت الحزم, وذلك عبر واجهه رسومية بسيطة.
تعطيك اهم الخيارات مع ابقاء خِيار التعديل اليدوي ممكن.
التثبيت
تأكد من تثبيت دوكر و docker compose انظر في هذا الشرح:
تثبيت عبر docker-compose
تحذير: سيتم كشف port 9443 و 8000 للإنترنت اذا خادم متصل بالإنترنت مباشرة, ودوكر يتجاوز الجدار الناري داخل النظام
اذا جهازك داخل شبكة منزلية (خلف مودم او جدار ناري منفصل) سوف يتم كشفها للشبكة المحلية فقط لان الجهاز ليس موصول للإنترنت مباشرة.
الأجهزة الموصولة للإنترنت مباشرة عادة هي الخوادم(Servers) و الخوادم السحابية كالVPS.
docker-compose.yml
version: '3.3'
services:
portainer:
ports:
- '9443:9443'
- '8000:8000'
container_name: portainer
restart: always
volumes:
- '/var/run/docker.sock:/var/run/docker.sock'
- './data:/data'
image: portainer/portainer-ce:alpine
سنستخدم نسخة alpine
وذلك لانها اصغر بمراحل, وتاق alpine
يتبع اخر اصدار رسمي من portainer.
تثبيت عبر امر docker
تحذير: سيتم كشف port 9443 و 8000 للإنترنت اذا الخادم متصل بالإنترنت مباشرة, ودوكر يتجاوز الجدار الناري داخل النظام
اذا جهازك داخل شبكة منزلية (خلف مودم او جدار ناري منفصل) سوف يتم كشفها للشبكة المحلية فقط لان الجهاز ليس موصول للانترنت مباشرة.
الاجهزه الموصولة للانترنت مباشرة عادة هي السيرفرات و السيرفرات في السحابة
docker run -d -p 8000:8000 -p 9443:9443 --name portainer \
--restart=always \
-v /var/run/docker.sock:/var/run/docker.sock \
-v portainer_data:/data \
portainer/portainer-ce:alpine
سنستخدم نسخة alpine
وذلك لانها اصغر بمراحل, وتاق alpine
يتبع اخر اصدار رسمي من portainer.
تحديث portainer
Docker compose
في حاله ثبتت باستخدام compose, فكل الي عليك الذَّهاب للمجلد الذي يحتوي على مِلَفّ docker-compose.yml
ووضع هذا الامر:
docker compose pull && docker compose up -d
أمر docker
وقف الحاوية القديمة
docker stop portainer
احذف الحاوية القديمة
docker rm portainer
نزل الحاوية الجديدة
docker pull portainer/portainer-ce:alpine
ثم ضع امر الذي شغلت فيه portainer أول مرة.
اهم ميزات Portainer
Containers
هنا يمكنك تثبيت حاويات بمفردها باستخدام خيارات رسومية بالكامل
بإمكانك تحديد ال volumes, المتغيرات, الشبكات, سياسة إعادة تشغيل الحاوية, وميزات النظام.
وغيرها من الإعدادات.
لكن هذه الصفحة لإنشاء حاوية واحده فقط, وهذا نادرا ما يحصل في دوكر, إذ دائما الخِدْمَات المتكاملة مثلا nextcloud تتكون من عدة حاويات
وهنا تأتي ميزه stacks
Stacks
مِيزة stacks تتيح لك تثبيت الخِدْمَات عبر ملفات docker-compose, وهو يمكن لك ربط الخِدْمَات مع بعضها وتحديد الاعتماديات, بالإضافة الى إنشاء شبكة للتواصل الحاويات ببعضها البعض.
وبإمكانك وضع مِلَفّ يدويا, او ربطة بمستودع Git قد توجد داخله ملفات جاهزه
App Templates
خلال استخدامك ل portainer ستلاحظ كلمة template كثيرا, وهي قوالب للتطبيقات.
فتوجد قوالب جاهزه لبعض الحاويات, والمشاريع/stacks, وبإمكانك صنع template مخصص لأي حاوية او مشروع عبر وضع مِلَفّ compose او ربط مستودع git
Network
من هنا بإمكانك أدارة كل الشبكات في دوكر, حذفها و رؤية كامل تفاصيل الشبكة.
وبإمكانك إنشاء شبكة جديدة, وإضافة حاويات لها وغيرها من الخيارات
Volumes
أدارة كامل ال volumes في docker, وبإمكانك رؤية Volumes المستخدمة والغير مستخدمة وتفاصيلها
بالإضافة الى ذلك بإمكانك إنشاء volume جديد مع امكانية استخدام تخزين عبر الشبكة عبر بروتوكول NFS او CIFS
أدارة عدة أنظمة باستخدام Portainer
أحد أقوى ميزات Portainer هي أمكانية إدارة عدة تثبيتات من Docker او حتى Kubernetes من واجهه واحدة.
بدلا من دخول على ال shell لتعديل ملفات compose او رؤية حالة الحاويات, فقط اختار الخادم وسوف تظهر لك كل خيارات إدارته من Portainer
لتفعيل امكانية إدارة دوكر من قبل Portainer نحتاج لتثبيت Edge Agent.
التثبيت
أذهب الى Environment ثم اضغط على زر Add Environment
أختر Edge Agent
Name: أسم الخادم المثبت علية ال Edge Agent
Portainer server URL: عنوان واجهه Portainer
دائما يجب عليك عدم كشف Portainer للإنترنت, كشف Portainer للإنترنت خطر أمني كبير.
أستخدم شبكة خاصة, او ثبت VPN للتواصل بين الأجهزة
Compose
قم بنسخ قيم EDGE_KEY ,EDGE_ID وضعها في الفراغات الأتية. وسيتم تحديثها في امر Compose
ضع اصدار portainer الظاهر لديك او أبقة فارغ ليستخدم اخر إصدار latest
مثل امر تثبيت portainer في الموضوع.
version: '3.3'
services:
agent:
volumes:
- /var/run/docker.sock:/var/run/docker.sock
- /var/lib/docker/volumes:/var/lib/docker/volumes
- /:/host
- portainer_agent_data:/data
restart: always
environment:
- EDGE=1
- EDGE_ID==EDGE_ID_VAR=
- EDGE_KEY==EDGE_KEY_VAR=
- CAP_HOST_MANAGEMENT=1
- EDGE_INSECURE_POLL=1
container_name: portainer_edge_agent
image: portainer/agent:=version=
docker run
أختر Docker standalone ونفذ الأمر المكتوب.
مصادر
https://docs.portainer.io/v/ce-2.11/start/install/server/docker/linux
https://docs.portainer.io/v/ce-2.11/advanced/edge-agent