أفضل دليل لاستخدام Docker على Ubuntu: التثبيت، إنشاء الحاويات، وحلول المشاكل خطوة بخطوة

目次

1. المقدمة

ما هو Docker؟

Docker هو منصة تتيح تطوير وتوزيع وتشغيل التطبيقات بكفاءة من خلال تقنية الحاويات الافتراضية (Containers). على عكس الآلات الافتراضية التقليدية (VM)، تشارك الحاويات نواة نظام التشغيل المضيف، مما يجعل التشغيل أسرع واستهلاك الموارد أقل.

مزايا استخدام Docker على Ubuntu

تُعد Ubuntu واحدة من أكثر توزيعات Linux توافقاً مع Docker، وذلك للأسباب التالية:

  • الدعم الرسمي: يدعم Docker Ubuntu رسمياً، ويمكن تثبيته بسهولة من المستودع الرسمي.
  • إدارة الحزم المستقرة: باستخدام مدير الحزم APT في Ubuntu يمكن إدارة إصدارات Docker بسهولة.
  • دعم مجتمعي واسع: لدى Ubuntu مجتمع ضخم على مستوى العالم، مما يسهّل إيجاد حلول عند مواجهة المشكلات.

ما ستتعلمه في هذا المقال

سنشرح في هذا المقال النقاط التالية بالترتيب:

  1. كيفية تثبيت Docker على Ubuntu
  2. العمليات الأساسية على صور Docker
  3. إنشاء صورة مخصصة باستخدام Dockerfile
  4. إعداد البيئة اليابانية داخل حاوية Ubuntu
  5. تحسين وتخفيف حجم صور Docker
  6. تطوير التطبيقات في حاوية Ubuntu
  7. الأخطاء الشائعة وحلولها

المحتوى مناسب للمبتدئين والمحترفين، لذا لا تتردد في الاستفادة منه.

侍エンジニア塾

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

تحديد الإصدار يضمن الحصول على الصورة الصحيحة.

年収訴求