ديف أوبس

تثبيت واستخدام Docker Compose على أوبونتو

تثبيت الأداة دوكر كومبوز Docker Compose واستخدامها ضمن نظام لينكس أوبونتو

مقدمة

في عالم تطوير البرمجيات والنشر، يُعتبر دوكر (Docker) من أبرز الأدوات التي أضافت ثورة في كيفية تشغيل التطبيقات وتوزيعها. من خلال استخدام حاويات (Containers)، يتيح دوكر للمطورين إمكانية بناء وتشغيل التطبيقات في بيئات معزولة، مما يسهم في تسهيل النشر وإدارة التطبيقات. لكن في بعض الأحيان، يحتاج المطورون إلى تشغيل مجموعة من الحاويات في وقت واحد لتشكيل تطبيق معقد أو بيئة عمل متعددة الخدمات. وهنا تأتي أهمية أداة دوكر كومبوز (Docker Compose) التي تتيح للمطورين إدارة هذه الحاويات المتعددة بسهولة عبر ملف تكوين واحد.

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

ما هو دوكر كومبوز؟

دوكر كومبوز هو أداة تتيح لك تعريف وتشغيل تطبيقات دوكر متعددة الحاويات باستخدام ملف تكوين بسيط. يساعد دوكر كومبوز في تبسيط إدارة التطبيقات متعددة الحاويات من خلال توفير وسيلة لتنظيم الإعدادات وبدء تشغيل الحاويات في بيئة واحدة عبر أمر واحد. تعتمد دوكر كومبوز بشكل رئيسي على ملف تكوين من نوع YAML يسمى docker-compose.yml، الذي يحتوي على جميع الإعدادات اللازمة لتعريف الخدمات المختلفة.

الفوائد الرئيسية لاستخدام دوكر كومبوز

  1. سهولة إدارة التطبيقات متعددة الحاويات: يتيح لك دوكر كومبوز إدارة تطبيقات متعددة الحاويات بكل سهولة عبر أوامر موحدة.

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

  3. أتمتة الإجراءات: من خلال استخدام ملف تكوين واحد، يمكنك أتمتة عملية نشر وتشغيل الحاويات.

متطلبات النظام

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

تثبيت دوكر كومبوز على أوبونتو

1. التحقق من تثبيت دوكر

قبل تثبيت دوكر كومبوز، تأكد من أنك قد قمت بتثبيت دوكر على جهازك. إذا لم يكن مثبتًا بعد، يمكنك تثبيته باستخدام الأوامر التالية:

bash
sudo apt update sudo apt install docker.io

للتحقق من تثبيت دوكر بنجاح، قم بتنفيذ الأمر التالي:

bash
docker --version

يجب أن يظهر لك إصدار دوكر المثبت على جهازك.

2. تثبيت دوكر كومبوز

تثبيت دوكر كومبوز يتطلب تحميل الملف التنفيذي الخاص به من المستودعات الرسمية. اتبع الخطوات التالية لتثبيته:

  1. أولاً، قم بتحميل أحدث إصدار من دوكر كومبوز باستخدام الأمر التالي:

    bash
    sudo curl -L "https://github.com/docker/compose/releases/download/$(curl -s https://api.github.com/repos/docker/compose/releases/latest | jq -r .tag_name)/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose

    هذا الأمر يقوم بتحميل الملف التنفيذي لأحدث إصدار من دوكر كومبوز إلى المسار /usr/local/bin/docker-compose.

  2. بعد تحميل الملف، تأكد من أن الملف قابل للتنفيذ عبر الأمر التالي:

    bash
    sudo chmod +x /usr/local/bin/docker-compose
  3. للتحقق من تثبيت دوكر كومبوز بشكل صحيح، قم بتنفيذ الأمر:

    bash
    docker-compose --version

    يجب أن يظهر لك إصدار دوكر كومبوز المثبت.

3. إعداد صلاحيات المستخدم

لتسهيل استخدام دوكر وكومبوز دون الحاجة إلى استخدام صلاحيات sudo في كل مرة، يمكنك إضافة المستخدم الحالي إلى مجموعة دوكر. نفذ الأمر التالي:

bash
sudo usermod -aG docker $USER

بعد تنفيذ هذا الأمر، قم بتسجيل الخروج ثم العودة مرة أخرى، أو استخدم الأمر التالي لتفعيل التغييرات:

bash
newgrp docker

استخدام دوكر كومبوز

بعد تثبيت دوكر كومبوز بنجاح، يمكنك البدء في استخدامه لإنشاء وتشغيل التطبيقات المتعددة الحاويات. يتم ذلك عبر إنشاء ملف docker-compose.yml الذي يحتوي على تعريف الخدمات.

1. إنشاء ملف docker-compose.yml

لنفترض أنك تريد إعداد بيئة تتكون من خادمين: واحد لقاعدة بيانات MySQL وآخر لتطبيق ويب يعمل على خادم Nginx. إليك كيفية تعريف هذه الخدمات باستخدام دوكر كومبوز:

  1. أولاً، أنشئ مجلدًا جديدًا:

    bash
    mkdir myapp cd myapp
  2. ثم أنشئ ملفًا جديدًا باسم docker-compose.yml داخل هذا المجلد:

    bash
    nano docker-compose.yml
  3. داخل الملف، قم بإضافة التكوين التالي:

    yaml
    version: '3' services: db: image: mysql:5.7 environment: MYSQL_ROOT_PASSWORD: example volumes: - db-data:/var/lib/mysql networks: - mynetwork web: image: nginx ports: - "8080:80" networks: - mynetwork depends_on: - db volumes: db-data: networks: mynetwork:

2. شرح محتويات docker-compose.yml

  • version: يحدد إصدار ملف التكوين (في هذه الحالة، الإصدار 3).

  • services: يحتوي على تعريف الخدمات المختلفة التي سيقوم دوكر كومبوز بإدارتها. في المثال أعلاه، لدينا خدمتين: db (قاعدة بيانات MySQL) وweb (خادم Nginx).

  • image: يحدد الصورة التي سيتم استخدامها لكل خدمة. في هذا المثال، نستخدم صورة mysql:5.7 لخدمة قاعدة البيانات وصورة nginx لخدمة الويب.

  • environment: يتم استخدامها لتحديد المتغيرات البيئية، مثل كلمة مرور الجذر لقاعدة البيانات.

  • volumes: يستخدم لتخزين البيانات بشكل دائم بين جلسات الحاويات.

  • networks: يُستخدم لتحديد الشبكة التي يتم ربط الحاويات بها.

  • depends_on: يحدد ترتيب بدء تشغيل الحاويات، حيث يجب أن يبدأ خادم الويب فقط بعد أن يبدأ خادم قاعدة البيانات.

3. تشغيل الخدمات باستخدام دوكر كومبوز

لتشغيل الحاويات وتعريف الخدمات التي قمت بإنشائها، قم باستخدام الأمر التالي داخل المجلد الذي يحتوي على docker-compose.yml:

bash
docker-compose up

سيقوم دوكر كومبوز بتنزيل الصور اللازمة (إذا لم تكن موجودة بالفعل على جهازك)، ثم إنشاء الحاويات وتشغيلها. بعد تنفيذ هذا الأمر، يمكنك الوصول إلى التطبيق عبر المتصفح باستخدام العنوان http://localhost:8080.

4. تشغيل الخدمات في الخلفية

إذا كنت ترغب في تشغيل الحاويات في الخلفية (detached mode)، يمكنك إضافة الخيار -d:

bash
docker-compose up -d

5. إيقاف الخدمات

لإيقاف جميع الحاويات التي تم تشغيلها بواسطة دوكر كومبوز، استخدم الأمر التالي:

bash
docker-compose down

هذا الأمر سيقوم بإيقاف الحاويات وإزالة الشبكات والمجلدات المؤقتة.

إدارة البيئة باستخدام دوكر كومبوز

يمكنك استخدام دوكر كومبوز لإدارة البيئة الخاصة بك بسهولة. إليك بعض الأوامر المفيدة:

  • إعادة تشغيل الحاويات:

    bash
    docker-compose restart
  • عرض سجل الحاويات:

    bash
    docker-compose logs
  • إيقاف خدمة محددة:

    bash
    docker-compose stop

الختام

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