كيفية تثبيت Docker على Ubuntu
في هذه الصفحة
يشغّل Docker التطبيقات داخل حاويات: كل حاوية تحمل كل ما تحتاجه، لذا تعمل بالطريقة نفسها على حاسوبك المحمول وعلى الخادم. يمكن تشغيل المواقع وقواعد البيانات والبوتات وخوادم الألعاب بأمر واحد أو بملف Compose واحد.
يثبّت هذا الدليل Docker Engine وDocker Compose على Ubuntu 24.04 أو 22.04 من مستودع Docker الرسمي، ثم يشرح الإعدادات المهمة على خادم حقيقي: الصلاحيات والسجلات والجدار الناري.
قبل أن تبدأ
- إصدار Ubuntu مدعوم: يدعم Docker إصدارات 64 بت من Ubuntu 26.04 و24.04 و22.04 LTS. تحقق من إصدارك عبر
cat /etc/os-release. - خادم KVM وليس حاوية: يحتاج Docker إلى ميزات خاصة به في النواة. يعمل على أي VPS من نوع KVM، لكنه غالبًا لا يعمل على الخطط القائمة على الحاويات (OpenVZ أو LXC).
- مستخدم root أو مستخدم لديه sudo. تستخدم الأوامر أدناه
sudo؛ إذا كنت مسجّلًا الدخول بصفتك root فيمكنك حذفها.
تجنّب على الخوادم حزمة docker.io من مستودع Ubuntu نفسه وإصدار Snap: مستودع Docker يحصل على الإصدارات الجديدة أولًا، وهو ما تعتمد عليه وثائق Docker الرسمية.
يحتاج Docker إلى آلة افتراضية حقيقية: خطط HytHost KVM VPS مع Ubuntu وصلاحيات root كاملة تبدأ من €2.92 شهريًا.
عرض خطط VPSالخطوة 1: إزالة الحزم المتعارضة
إذا سبق أن ثبّت Docker من مصدر آخر، فأزل تلك الحزم أولًا. على خادم جديد سيُبلغك apt ببساطة بأن أيًّا منها غير مثبّت:
sudo apt remove $(dpkg --get-selections docker.io docker-compose docker-compose-v2 docker-doc docker-buildx podman-docker containerd runc | cut -f1)
لا يحذف هذا الأمر الصور ووحدات التخزين الموجودة في /var/lib/docker/.
الخطوة 2: إضافة مستودع Docker
هذه الأوامر، المأخوذة من وثائق Docker، تضيف مفتاح التوقيع الخاص بـ Docker ومستودع apt الخاص به لإصدار Ubuntu لديك:
sudo apt update
sudo apt install ca-certificates curl
sudo install -m 0755 -d /etc/apt/keyrings
sudo curl -fsSL https://download.docker.com/linux/ubuntu/gpg -o /etc/apt/keyrings/docker.asc
sudo chmod a+r /etc/apt/keyrings/docker.asc
sudo tee /etc/apt/sources.list.d/docker.sources <<EOF
Types: deb
URIs: https://download.docker.com/linux/ubuntu
Suites: $(. /etc/os-release && echo "${UBUNTU_CODENAME:-$VERSION_CODENAME}")
Components: stable
Architectures: $(dpkg --print-architecture)
Signed-By: /etc/apt/keyrings/docker.asc
EOF
sudo apt update
الخطوة 3: تثبيت Docker وCompose
sudo apt install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
يثبّت هذا Docker Engine وأداة سطر الأوامر وأداة البناء Buildx وإضافة Compose. تحقّق من أنه يعمل:
sudo docker run hello-world docker compose version
ينزّل الأمر الأول صورة اختبار صغيرة ويطبع رسالة ترحيب. على Ubuntu يبدأ Docker تلقائيًا عند الإقلاع، فلا حاجة إلى تفعيل أي شيء.
Compose هو الأمر docker compose مع مسافة. أما docker-compose القديم مع الشرطة فهو الإصدار الأول المتوقف؛ والأدلة التي ما زالت تستخدمه تعمل مع الأمر الجديد أيضًا.
الخطوة 4: الصلاحيات وتدوير السجلات
تشغيل docker دون sudo. أضف مستخدمك إلى المجموعة docker، ثم سجّل الخروج وأعد تسجيل الدخول:
sudo usermod -aG docker $USER
انتبه إلى أن Docker نفسه يحذّر من أن هذه المجموعة تمنح صلاحيات بمستوى root: أي شخص فيها يستطيع التحكم في الخادم بالكامل. لا تضف إلا المستخدمين الذين قد تمنحهم صلاحيات root.
حدّد حجم السجلات. افتراضيًا تنمو سجلات الحاويات دون حد وقد تملأ القرص. أنشئ الملف /etc/docker/daemon.json:
{
"log-driver": "json-file",
"log-opts": { "max-size": "10m", "max-file": "3" }
}
ثم نفّذ sudo systemctl restart docker. ينطبق الحد على الحاويات التي تُنشأ بعد التغيير، لذا أعد إنشاء الحاويات الموجودة.
أول ملف Compose
يصف Compose حاوياتك في ملف واحد. أنشئ مجلدًا يحتوي على compose.yaml:
services:
web:
image: nginx:stable
ports:
- "127.0.0.1:8080:80"
restart: unless-stopped
شغّله باستخدام docker compose up -d، وتحقّق منه باستخدام docker compose ps، واقرأ سجلاته باستخدام docker compose logs. يعيد restart: unless-stopped تشغيل الحاوية بعد أي تعطّل أو إعادة تشغيل. رُبط المنفذ بـ 127.0.0.1 عمدًا، كما يوضّح القسم التالي.
Docker وufw: فخ الجدار الناري
يقع في هذا الفخ الجميع تقريبًا. عندما تنشر منفذًا، مثل -p 8080:80، يضيف Docker قواعد جدار ناري خاصة به تُطبَّق قبل قواعد ufw. يكون المنفذ مفتوحًا على الإنترنت حتى لو أظهر ufw أنه مغلق.
- اربط المنافذ بـ localhost عندما لا يحتاجها إلا الخادم نفسه، مثل قاعدة بيانات أو تطبيق خلف reverse proxy:
127.0.0.1:8080:80. - لا تنشر منافذ قواعد البيانات إطلاقًا؛ بدلًا من ذلك دع الحاويات تتواصل عبر شبكة Docker.
- للتصفية حسب عنوان المصدر، أضف قواعد إلى سلسلة iptables المسماة
DOCKER-USER، التي يتحقق منها Docker قبل قواعده.
ينطبق الأمر نفسه على خوادم الألعاب التي تعمل داخل Docker؛ راجع كيفية إعداد VPS لخوادم الألعاب.
Docker على HytHost VPS
تعمل خطط HytHost VPS على KVM، لذا لكل VPS نواته الخاصة ويعمل Docker دون قيود. اختر Ubuntu 24.04 أو 22.04 عند الطلب، واتصل عبر SSH واتبع الخطوات أعلاه. تحصل على صلاحيات root كاملة وتخزين SSD وحماية من DDoS، ويمكنك الترقية إلى خطة أكبر لاحقًا مع نمو حاوياتك.
الأسئلة الشائعة
يدعم Docker إصدارات 64 بت من Ubuntu 26.04 و24.04 و22.04 LTS. الأنظمة الأخرى المبنية على Ubuntu، مثل Linux Mint، غير مدعومة رسميًا.
ليس على خادم إنتاج. يقول Docker إن هذا السكربت مخصص لبيئات التطوير ولا يُنصح به للإنتاج؛ وقد ينتقل أيضًا إلى إصدار رئيسي جديد. استخدم طريقة المستودع بدلًا منه.
docker-compose مع الشرطة هو الإصدار القديم المتوقف. اليوم أصبح Compose إضافة لـ Docker تُستخدم بالشكل docker compose، وتُثبَّت عبر الحزمة docker-compose-plugin.
المنافذ التي ينشرها Docker تتجاوز ufw. اربط المنفذ بـ 127.0.0.1 إذا كان يجب أن يبقى محليًا، أو قم بتصفيته في سلسلة DOCKER-USER.
على VPS من نوع KVM، نعم. أما خطط VPS القائمة على الحاويات، مثل OpenVZ، فغالبًا لا تستطيع تشغيل Docker أو تحتاج إلى إعدادات خاصة من المزوّد.
شغّل حاوياتك على VPS
تشغّل خطط HytHost KVM VPS برنامج Docker دون قيود، مع صلاحيات root كاملة وUbuntu 24.04، بدءًا من €2.92 شهريًا.
Live chat 8 AM – 11 PM (Chișinău time) · tickets answered during business hoursهل كان هذا الدليل مفيدًا؟