- 1 1. المقدمة
- 2 2. تثبيت Docker على Ubuntu
- 3 3. العمليات الأساسية على صور Docker
- 4 4. إنشاء صورة مخصصة باستخدام Dockerfile
- 5 5. إعداد اللغة اليابانية في حاوية Ubuntu
- 6 6. تحسين وتخفيف حجم صور Docker
- 7 7. عملي: تطوير التطبيقات داخل حاوية Ubuntu
- 8 8. الأسئلة الشائعة وحلول المشاكل
1. المقدمة
ما هو Docker؟
Docker هو منصة تتيح تطوير وتوزيع وتشغيل التطبيقات بكفاءة من خلال تقنية الحاويات الافتراضية (Containers). على عكس الآلات الافتراضية التقليدية (VM)، تشارك الحاويات نواة نظام التشغيل المضيف، مما يجعل التشغيل أسرع واستهلاك الموارد أقل.
مزايا استخدام Docker على Ubuntu
تُعد Ubuntu واحدة من أكثر توزيعات Linux توافقاً مع Docker، وذلك للأسباب التالية:
- الدعم الرسمي: يدعم Docker Ubuntu رسمياً، ويمكن تثبيته بسهولة من المستودع الرسمي.
- إدارة الحزم المستقرة: باستخدام مدير الحزم APT في Ubuntu يمكن إدارة إصدارات Docker بسهولة.
- دعم مجتمعي واسع: لدى Ubuntu مجتمع ضخم على مستوى العالم، مما يسهّل إيجاد حلول عند مواجهة المشكلات.
ما ستتعلمه في هذا المقال
سنشرح في هذا المقال النقاط التالية بالترتيب:
- كيفية تثبيت Docker على Ubuntu
- العمليات الأساسية على صور Docker
- إنشاء صورة مخصصة باستخدام Dockerfile
- إعداد البيئة اليابانية داخل حاوية Ubuntu
- تحسين وتخفيف حجم صور Docker
- تطوير التطبيقات في حاوية Ubuntu
- الأخطاء الشائعة وحلولها
المحتوى مناسب للمبتدئين والمحترفين، لذا لا تتردد في الاستفادة منه.
2. تثبيت Docker على Ubuntu
تثبيت Docker من المستودع الرسمي
في Ubuntu، يمكنك تثبيت Docker بسهولة من خلال المستودع الرسمي باتباع الخطوات التالية:
1. إزالة حزم Docker القديمة
يأتي Ubuntu بحزمة docker.io
بشكل افتراضي، لكنها قد تكون إصداراً قديماً، لذا يُنصح بإزالتها.
sudo apt remove docker docker-engine docker.io containerd runc
2. تثبيت الحزم المطلوبة
قبل التثبيت، قم بتثبيت الحزم التابعة اللازمة:
sudo apt update
sudo apt install -y apt-transport-https ca-certificates curl software-properties-common
3. إضافة مستودع Docker الرسمي
قم بإضافة مفتاح GPG الخاص بـ Docker وتحديث قائمة المستودعات:
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg
echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
4. تثبيت Docker
بعد إضافة المستودع، قم بتثبيت Docker:
sudo apt update
sudo apt install -y docker-ce docker-ce-cli containerd.io
5. التحقق من التثبيت
للتحقق من نجاح التثبيت، اعرض معلومات الإصدار:
docker --version
الإعداد الأولي بعد التثبيت
1. تشغيل وتفعيل خدمة Docker
قم بتشغيل خدمة Docker واجعلها تبدأ تلقائياً مع النظام:
sudo systemctl start docker
sudo systemctl enable docker
2. السماح باستخدام Docker بدون صلاحيات root
بشكل افتراضي، يمكن تنفيذ أوامر Docker بواسطة المستخدم root فقط. للسماح للمستخدمين العاديين باستخدامها:
sudo usermod -aG docker $USER
لتطبيق الإعدادات الجديدة، سجّل الخروج وأعد تسجيل الدخول.
3. التحقق من التشغيل
اختبر عمل Docker عن طريق تشغيل حاوية hello-world
:
docker run hello-world
إذا ظهرت رسالة “Hello from Docker!”، فقد تم التثبيت بنجاح.
3. العمليات الأساسية على صور Docker
ما هي صورة Docker؟
صورة Docker هي قالب يُستخدم لإنشاء الحاويات. باستخدام صورة Ubuntu الرسمية، يمكنك بدء بيئة Ubuntu بسرعة.
الحصول على صورة Ubuntu من Docker Hub
يحتوي Docker Hub على العديد من الصور الرسمية. للحصول على صورة Ubuntu:
docker pull ubuntu
تشغيل وإيقاف الحاوية
لتشغيل حاوية باستخدام صورة Ubuntu:
docker run -it ubuntu bash
سيتم فتح shell داخل الحاوية ويمكنك إجراء العمليات داخله.
عرض قائمة الحاويات
لعرض الحاويات المشغلة:
docker ps
لعرض جميع الحاويات (بما فيها المتوقفة)، استخدم الخيار -a
:
docker ps -a
إيقاف وحذف الحاويات
لإيقاف حاوية قيد التشغيل:
docker stop [ContainerID or name]
لحذف حاوية لم تعد بحاجة إليها:
docker rm [ContainerID or name]
إدارة صور Docker
لعرض جميع الصور المحمّلة:
docker images
لحذف صورة غير مستخدمة:
docker rmi [ImageID]
4. إنشاء صورة مخصصة باستخدام Dockerfile
ما هو Dockerfile؟
Dockerfile هو ملف إعداد يُستخدم لإنشاء صورة Docker مخصصة. من خلال كتابة الأوامر في Dockerfile، يمكنك تخصيص بيئة العمل أو تثبيت الحزم اللازمة.
بنية Dockerfile الأساسية
يتضمن Dockerfile عادةً الأوامر التالية:
الأمر | الوصف |
---|---|
FROM | تحديد الصورة الأساسية |
RUN | تنفيذ أوامر لإعداد الصورة |
COPY | نسخ ملفات إلى الحاوية |
WORKDIR | تعيين دليل العمل |
CMD | الأمر الافتراضي عند تشغيل الحاوية |
ENTRYPOINT | نقطة البداية عند تشغيل الحاوية |
إنشاء صورة مخصصة مبنية على Ubuntu
اتبع الخطوات التالية لإنشاء صورة Docker مخصصة مبنية على Ubuntu:
1. إنشاء مجلد العمل
أنشئ مجلداً جديداً وادخل إليه:
mkdir my-ubuntu-image
cd my-ubuntu-image
2. إنشاء ملف Dockerfile
أنشئ ملف Dockerfile
في المجلد واكتب فيه التالي:
# صورة Ubuntu الرسمية كأساس
FROM ubuntu:latest
# معلومات المشرف (اختياري)
LABEL maintainer="your-email@example.com"
# تحديث الحزم وتثبيت الأدوات الأساسية
RUN apt update && apt install -y curl vim git
# تعيين مجلد العمل
WORKDIR /workspace
# الأمر الافتراضي عند التشغيل
CMD ["bash"]
3. بناء صورة Docker
قم ببناء الصورة باستخدام Dockerfile:
docker build -t my-ubuntu-image .
يحدد الخيار -t
اسم الصورة.
4. التحقق من الصورة
لعرض الصور المبنية:
docker images
5. تشغيل الحاوية من الصورة المخصصة
لتشغيل حاوية من الصورة المخصصة:
docker run -it my-ubuntu-image
ستجد أن الأدوات مثل curl
و vim
مُثبتة بالفعل.
5. إعداد اللغة اليابانية في حاوية Ubuntu
يأتي Ubuntu بشكل افتراضي بإعدادات اللغة الإنجليزية، وتحتاج لتفعيل اللغة اليابانية إلى بعض الإعدادات الإضافية.
إعداد حزمة اللغة اليابانية
لتفعيل وإدخال اللغة اليابانية:
1. تثبيت الحزم المطلوبة
apt update
apt install -y language-pack-ja locales
2. ضبط اللغة
قم بضبط وتفعيل اللغة اليابانية:
locale-gen ja_JP.UTF-8
update-locale LANG=ja_JP.UTF-8
3. تفعيل الإعدادات
export LANG=ja_JP.UTF-8
إعداد الإدخال الياباني
لإدخال اليابانية من الطرفية، قم بتثبيت ibus-mozc
:
apt install -y ibus-mozc
في حالة استخدام واجهة رسومية (GUI)، أضف المتغيرات التالية:
export GTK_IM_MODULE=ibus
export XMODIFIERS=@im=ibus
export QT_IM_MODULE=ibus
تشغيل التطبيقات الرسومية (GUI) داخل الحاوية
لتشغيل تطبيقات رسومية في Docker، استخدم خادم X على جهازك المضيف وقم بتشغيل الحاوية كالتالي:
docker run -e DISPLAY=$DISPLAY -v /tmp/.X11-unix:/tmp/.X11-unix my-ubuntu-image
6. تحسين وتخفيف حجم صور Docker
يساهم تحسين الصور في تسريع تشغيل الحاويات وتوفير مساحة التخزين. فيما يلي بعض الطرق لتخفيف حجم الصور:
استخدام صور Ubuntu خفيفة الوزن
صورة ubuntu:latest
كبيرة نسبياً، ويمكن استخدام ubuntu:minimal
لتقليل الحجم:
FROM ubuntu:minimal
بدلاً من ذلك، استخدم Alpine Linux الأخف حجماً بكثير:
FROM alpine:latest
RUN apk add --no-cache bash curl
هذه الطريقة تقلل حجم الصورة بمئات الميجابايت.
حذف الملفات غير الضرورية لتقليل حجم الصورة
لحذف الكاش بعد تثبيت الحزم باستخدام apt-get
:
RUN apt update && apt install -y curl vim && apt clean && rm -rf /var/lib/apt/lists/*
إضافة rm -rf /var/lib/apt/lists/*
يحذف ملفات الحزم غير الضرورية.
استخدام البناء متعدد المراحل (Multi-Stage Build)
مثال على استخدام أدوات التطوير فقط في مرحلة البناء لجعل الصورة النهائية أخف:
FROM ubuntu as builder
RUN apt update && apt install -y gcc
FROM ubuntu:minimal
COPY --from=builder /usr/bin/gcc /usr/bin/gcc
بهذه الطريقة لن تتواجد أدوات التطوير في الصورة النهائية، مما يجعلها أخف.
7. عملي: تطوير التطبيقات داخل حاوية Ubuntu
سنستعرض كيف يمكنك إعداد بيئة تطوير داخل حاوية Ubuntu.
إعداد بيئة تطوير Python
لإعداد بيئة تطوير Python داخل الحاوية:
FROM ubuntu:latest
RUN apt update && apt install -y python3 python3-pip
CMD ["python3"]
بعد البناء والتشغيل:
docker build -t python-dev .
docker run -it python-dev
يمكنك الآن تشغيل أو تطوير السكريبتات باستخدام python3
.
إعداد بيئة تطوير Node.js
لإعداد بيئة Node.js:
FROM ubuntu:latest
RUN apt update && apt install -y nodejs npm
CMD ["node"]
وقم بالبناء والتشغيل بنفس الطريقة:
docker build -t node-dev .
docker run -it node-dev
يمكنك الآن تطوير أو تشغيل تطبيقات JavaScript داخل الحاوية.
8. الأسئلة الشائعة وحلول المشاكل
قد تواجه بعض المشاكل أثناء استخدام Docker. فيما يلي أهم الأسئلة الشائعة وحلولها:
الفرق بين Docker والآلة الافتراضية
- Docker: يشارك نواة نظام التشغيل مع المضيف، مما يجعله أخف وزناً وأسرع في التشغيل.
- الآلة الافتراضية (VM): تحتوي على نظام تشغيل منفصل، وتستهلك المزيد من الموارد، وأبطأ في التشغيل.
Docker هو الأمثل لتطوير البرمجيات وأتمتة النشر.
الحفاظ على البيانات داخل حاوية Ubuntu
لحفظ البيانات حتى بعد حذف الحاوية، استخدم ميزة mount volume:
docker run -v my_data:/data ubuntu
ستبقى البيانات محفوظة في my_data
حتى عند حذف الحاوية.
الأخطاء الشائعة وحلولها
1. خطأ permission denied
إذا واجهت هذا الخطأ عند تشغيل Docker، قد لا يكون المستخدم عضواً في مجموعة docker
. قم بإضافته:
sudo usermod -aG docker $USER
يجب تسجيل الخروج وإعادة تسجيل الدخول بعد ذلك.
2. خطأ image not found
إذا لم تتمكن من العثور على صورة على Docker Hub، جرب تحديد إصدار الصورة:
docker pull ubuntu:22.04
تحديد الإصدار يضمن الحصول على الصورة الصحيحة.