كيفية تثبيت Docker على أوبونتو (يدويّا وبقالب VPS)
يناير 30, 2026
/
Hana E.
/
8 دق اقرأ
يتيح لك تثبيت Docker على أوبونتو تشغيل الحاويات لبناء التطبيقات واختبارها ونشرها في بيئة نظيفة ومتسقة.
لتثبيت Docker على أوبونتو، تأكد من أن نظامك يعمل بإصدار مدعوم، مثل أوبونتو 22.04 LTS أو 24.04 LTS. ثم اتبع خطوات التثبيت اليدوي لإعداد الحزم المطلوبة، وإضافة مفتاح GPG الرسمي لـ Docker، وتثبيت Docker Engine.
إذا كنت أحد عملاء Hostinger، فيمكنك تثبيت Docker على خادم VPS الخاص بأوبونتو ببضع نقرات فقط باستخدام القالب الذي تم تكوينه مسبقًا.
قم بالتمرير لأسفل بينما نرشدك خلال الطريقتين، ونشارك نصائح مفيدة حول تكوين Docker بعد التثبيت، ونوضح لك كيفية استكشاف مشكلات الإعداد الشائعة وإصلاحها.
المتطلبات الأساسية لتثبيت Docker على أوبونتو
قبل تثبيت Docker على أوبونتو، تأكد من استيفاء المتطلبات الأساسية التالية:
- الإلمام بأساسيات Docker، مما سيساعدك على فهم ما تقوم بإعداده وأهمية كل خطوة.
- المعرفة الأساسية بأوامر لينكس، خاصة إذا كنت تتبع نهج التثبيت اليدوي، حيث ستقوم بتشغيل العديد من الأوامر في المحطة الطرفية.
- إصدار أوبونتو مدعوم، مثل أوبونتو 22.04 LTS أو أوبونتو 24.04 LTS. راجع دائمًا مراجع Docker الرسمية للاطلاع على أحدث تفاصيل التوافق.
- نظام بذاكرة وصول عشوائي (RAM) لا تقل عن 512 ميغابايت. لأداء أكثر سلاسة واستخدام عملي، نوصي بتثبيت Docker على نظام بذاكرة وصول عشوائي (RAM) لا تقل عن 2 جيغابايت.
كيفية تثبيت Docker يدويًا
إذا كنت تفضّل الطريقة العملية، فسيُرشدك هذا القسم إلى كيفية تثبيت Docker يدويًا على توزيعة أوبونتو 24.04. يمكنك تطبيق نفس الخطوات على الإصدارات المدعومة الأخرى مثل 22.04.
1. قم بتثبيت جميع الحزم الضرورية
للشروع في تثبيت Docker، تأكّد أولاً من أن نظامك مُحدَّث وأنّ جميع الحزم المطلوبة مُثبّتة.
- افتح المحطة الطرفية لجهازك واتصل بخادمك الافتراضي الخاص (VPS) عبر SSH. استبدل username (اسم المستخدم) وyour_server_ip (عنوان IP الخاص بخادمك) ببيانات الدخول الخاصة بك:
ssh username@your_server_ip
- قم بتحديث قائمة الحزم للتأكد من أن الخادم الخاص بك يستخدم أحدث إصدارات الحزم وتبعياتها:
sudo apt update && sudo apt upgrade -y
- ثبّت الحزم الضرورية التي تمكّن apt من استخدام المستودعات عبر HTTPS:
sudo apt install apt-transport-https ca-certificates curl software-properties-common -y

2. أضف مفتاح GPG الرسمي لـ Docker
لضمان موثوقية وأمان حزم Docker، تحتاج إلى إضافة مفتاح GPG الرسمي الخاص بـ Docker وإعداد مستودع Docker:
- قم بتشغيل أمر cURL التالي لإضافة مفتاح GPG الخاص بـ Docker:
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg

- أضف مستودع Docker الرسمي إلى مصادر APT:
echo "deb [arch=amd64 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
- حدّث قائمة الحزم لتشمل الحزم القادمة من المستودع الجديد:
sudo apt update
3. ثبِّت Docker Engine
بعد إعداد المستودعات اللازمة، يمكنك الآن المتابعة لتثبيت Docker Engine.
- تأكد من تثبيت Docker من مستودعه الرسمي بدلاً من مستودع أوبونتو الافتراضي:
apt-cache policy docker-ce
- سيظهر لك الناتج التالي، الذي يشير إلى أنه سيتم تثبيت Docker من المستودع الصحيح:

- قم بتنفيذ هذا الأمر لتثبيت Docker Engine، وDocker Community Edition، ووقت تشغيل containerd، وهي كلها ضرورية لتشغيل حاويات Docker:
sudo apt install docker-ce docker-ce-cli containerd.io -y
- تأكّد من تشغيل Docker تلقائيًا عند إقلاع النظام:
sudo systemctl enable docker
4. تحقَّق من تثبيت Docker
بعد تثبيت Docker، تأكد من نجاح التثبيت وتشغيل Docker بشكل صحيح.
- تأكد من إصدار Docker المثبت على نظامك:
docker --version
- إليك الناتج المتوقع:

- استخدم الأمر التالي للتحقق من حالة خدمة Docker:
sudo systemctl status docker
- سترى ناتجا يشير إلى أن Docker نشط ويعمل:

- اضغط على زر Q في لوحة المفاتيح للخروج من شاشة الحالة.
5. شغِّل Docker بدون sudo (اختياري)
افتراضيًا، يسمح لك Docker بتشغيل أوامره فقط كمستخدم جذر أو باستخدام صلاحيات sudo، مما قد يكون غير مريح وأقل أمانًا. إذا حاولت تشغيل أوامر Docker كمستخدم غير جذر، فستواجه الخطأ التالي:

مع ذلك، يُفضّل تشغيل Docker بدون sudo لأنه أسرع ويُحسّن كفاءة سير العمل. لذلك، نقترح إنشاء مستخدم مُخصّص لتشغيل Docker بدون صلاحيات مُرتفعة.
- أضف مستخدمًا جديدًا إذا لم يكن لديك واحد بالفعل. هنا سنسميه new_user:
sudo adduser new_user
- سيُطلب منك إعداد كلمة مرور جديدة لهذا المستخدم.
- شغّل الأمر التالي لإنشاء مجموعة docker:
sudo groupadd docker
- أضف المستخدم new_user إلى مجموعة docker عبر الأمر:
sudo usermod -aG docker new_user
- قم بالتبديل إلى المستخدم الذي أنشأته حديثًا:
su - new_user
- تأكد من أن هذا المستخدم جزء من مجموعة docker:
groups
- إليك الناتج المتوقع:

- شغّل أمرًا بسيطًا للتحقق من إمكانية تشغيل أوامر Docker بدون استخدام sudo:
docker run hello-world
- سترى ناتجا يوضح أن Docker يعمل بشكل صحيح كمستخدم غير جذر:

تهانينا! لقد نجحت في إعداد Docker يدويًا على خادم VPS يعمل بنظام أوبونتو باستخدام الأوامر.
كيفية تثبيت Docker على أوبونتو باستخدام قالب VPS من Hostinger
يُعد استخدام قالب Hostinger المُعدّ مسبقًا أسهل طريقة لتثبيت Docker على خادم VPS الخاص بنظام أوبونتو. عند اختيار خطة استضافة VPS، سيتم تحديد القالب تلقائيًا، ما يتيح لك البدء بنشر التطبيقات المُحزَّمة داخل الحاويات مباشرة.
إذا كنت من مستخدمي استضافة VPS العادية، فلا تقلق. يُمكنك تثبيت Docker ببضع نقرات فقط باختيار القالب بنفسك. إليك الخطوات:
- سجّل الدخول إلى hPanel ثم انتقل إلى VPS ← إدارة بجانب الخادم.
- من لوحة تحكم VPS، انتقل إلى OS & Panel → نظام التشغيل في الشريط الجانبي الأيسر.
- ابحث عن قسم تغيير نظام التشغيل، واكتب Docker في شريط البحث، ثم حدد قالب Docker.

- اتبع التعليمات الظاهرة على الشاشة وانتظر حتى تنتهي عملية التثبيت، والتي تستغرق عادة حوالي 10 دقائق.
هذا كل شيء! لقد قمتَ بتثبيت Docker على خادم VPS الخاص بك وأصبحت جاهزًا لنشر التطبيقات.

ما هي بعض نصائح تكوين Docker؟
بعد تثبيت Docker على أوبونتو، خصّص بعض الوقت لتعلّم الأوامر الأساسية والتكوينات المفيدة التالية للحصول على أقصى استفادة منه.
1. تعلُّم أوامر Docker الأساسية
ابدأ بإتقان أوامر Docker الأساسية للتفاعل مع الصور والحاويات. بهذه الطريقة، يمكنك البحث عن الصور الجاهزة واستخراجها، مثل nginx أو node أو mysql، لتشغيل الخدمات بسرعة دون الحاجة إلى تثبيت أي شيء يدويًا.
- أدرج الصور:
docker images
- ابحث عن الصور على Docker Hub:
docker search nginx
- نزِّل صورة:
docker pull nginx
2. تشغيل وإدارة الحاويات
بمجرد إنشاء صورة، يمكنك تشغيل الحاويات والتحكم فيها باستخدام الأوامر التالية. يُشغّل المثال التالي خادم NGINX داخل حاوية على المنفذ 8080. يُعد هذا مثاليًا لاختبار مواقع الويب الثابتة محليًا أو بناء وكلاء عكسيين لتطبيقاتك.
- شغّل حاوية:
docker run -d --name webserver -p 8080:80 nginx
- ابدأ حاويتك الأولى:
docker start webserver
- أوقف تشغيل الحاوية قيد العمل:
docker stop webserver
- اعرض قائمة الحاويات قيد التشغيل:
docker ps
3. بناء صورك الخاصة ومشاركتها
يمكنك إنشاء صورك الخاصة باستخدام ملف Dockerfile ومشاركتها مع الآخرين. من أمثلة ذلك حَزم تطبيق Node.js أو Python أو Go في صورة قابلة لإعادة الاستخدام ونشرها عبر بيئات مختلفة أو مشاركتها مع فريقك.
- أنشِئ صورة من الدليل الحالي:
docker build -t my-app .
- قم بوسم (Tag) الصورة:
docker tag my-app yourusername/my-app:latest
- ادفع الصورة إلى Docker Hub:
docker push yourusername/my-app:latest
4. تنظيف المكونات غير المستخدمة
نظّف موارد Docker التي لم تعد بحاجة إليها لتجنب الاستخدام غير الضروري للقرص. يساعد هذا على توفير المساحة وتقليل الفوضى الناتجة عن عمليات الاختبار أو عمليات البناء المؤقتة.
- احذف الصور غير المستخدمة في Docker:
docker image prune
- احذف الحاويات المتوقفة:
docker container prune
- احذف المجلدات والشبكات غير المستخدمة:
docker volume prune
docker network prune
5. استخدام Docker Compose للتطبيقات متعددة الحاويات
يتيح لك Docker Compose تعريف البيئات متعددة الخدمات وإدارتها باستخدام ملف docker-compose.yml واحد.
- مثال: قم بتشغيل ووردبريس بسرعة كحاوية Docker للاختبار المحلي:
version: '3.8'
services:
db:
image: mysql:5.7
restart: always
environment:
MYSQL_DATABASE: wordpress
MYSQL_USER: wp_user
MYSQL_PASSWORD: wp_pass
MYSQL_ROOT_PASSWORD: example
volumes:
- db_data:/var/lib/mysql
web:
image: wordpress
restart: always
ports:
- "8080:80"
environment:
WORDPRESS_DB_HOST: db:3306
WORDPRESS_DB_NAME: wordpress
WORDPRESS_DB_USER: wp_user
WORDPRESS_DB_PASSWORD: wp_pass
depends_on:
- db
volumes:
db_data:
- ابدأ تشغيل جميع الخدمات:
docker-compose up -d
6. إنشاء بيئات تطوير معزولة
استخدم Docker لتجنب إثقال نظامك بإصدارات أو تبعيات متعددة اللغات. هذا مفيد لاختبار الحزم، أو كتابة البرامج النصية، أو بناء التطبيقات في حاوية معزولة، كل ذلك دون تغيير إعدادات المضيف.
- مثال: استخدم Docker لتشغيل بيئة Node.js دون الحاجة إلى تثبيت Node محليًا:
docker run -it --rm node:18 bash
7. أتمتة عمليات البناء والاختبار في أنظمة CI/CD
يحظى Docker بدعم واسع في أدوات التكامل المستمر (CI) مثل GitHub Actions وGitLab CI/CD وJenkins. يمكنك وضع تطبيقك داخل حاوية وتشغيله باستمرار في بيئات التطوير والاختبار والإنتاج.
- مثال: استخدم صورة Docker في خط GitHub Actions لأتمتة الاختبارات:
jobs:
build:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- run: docker build -t my-app .
- run: docker run my-app npm test
8. استضافة خوادم ويب أو واجهات برمجة التطبيقات (APIs) محليًا
يمكنك تشغيل خوادم ويب كاملة أو واجهات برمجة تطبيقات داخل حاويات لاختبار تطبيقاتك دون الحاجة إلى نشرها خارجيًا. هذا مثالي لمطوّري الواجهة الأمامية الذين يحتاجون إلى تقديم ملفات ثابتة أو اختبار دومينات محلية دون الحاجة إلى إعداد خادم تطوير كامل.
- مثال: قم بتشغيل خادم Apache الأساسي محليًا:
docker run -d -p 8080:80 httpd
استكشاف مشكلات تثبيت Docker الشائعة وإصلاحها
عادةً ما يكون تثبيت Docker على أوبونتو سلسًا، ولكن قد تحدث بعض الأخطاء اعتمادًا على إعداداتك أو تكوين النظام أو صلاحيات المستخدم. فيما يلي بعض المشكلات الشائعة، بالإضافة إلى حلول عملية وأوامر لمساعدتك على تصحيح الأخطاء بسرعة.
1. برنامج Docker daemon لا يعمل
عادةً ما تشير رسالة الخطأ مثل “Cannot connect to the Docker daemon” (لا يمكن الاتصال ببرنامج Docker daemon) إلى أن خدمة Docker غير نشطة.
- ابدأ تشغيل الخدمة:
sudo systemctl start docker
- فعّلها لتعمل تلقائيًا عند الإقلاع:
sudo systemctl enable docker
- تحقّق من حالة الخدمة:
sudo systemctl status docker
إذا لم يبدأ Docker بعد، فتحقق من السجلات باستخدام journalctl:
journalctl -u docker.service
ابحث عن الأخطاء مثل ملفات التكوين المفقودة أو تعارضات المنافذ أو مشكلات برنامج تشغيل التخزين.
2. تعذّر الاتصال بمقبس Docker
إذا ظهرت لك الرسالة: “Got permission denied while trying to connect to the Docker daemon socket” (تم رفض الإذن أثناء محاولة الاتصال بمقبس خادوم Docker)، فغالبًا ما تكون المشكلة متعلّقة بصلاحيات المستخدم.
- تحقّق مما إذا كان مستخدمك ضمن مجموعة docker:
groups
- أضف مستخدمك إلى المجموعة:
sudo usermod -aG docker user
بعد ذلك، سجّل الخروج ثم أعد تسجيل الدخول بنفس المستخدم.
- أعد تشغيل خدمة Docker:
sudo systemctl restart docker
3. مشاكل المستودع والتثبيت
إذا واجهت مشكلات أثناء إضافة مستودع Docker APT أو تثبيت الحزم، فقد يكون ذلك بسبب:
- رابط مستودع غير صحيح.
- تبعيات (Dependencies) مفقودة.
- إصدار غير مدعوم من أوبونتو.
تأكد من أنك قمت بإضافة المستودع الصحيح:
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg
echo \
"deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] \
https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable" | \
sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
sudo apt update
إذا فشل أمر apt update، تحقّق من النواتج للبحث عن إدخالات غير صحيحة أو أخطاء في مفتاح GPG.
4. تعذُّر استجابة الحاويات المشغَّلة
إذا بدأ تشغيل الحاوية ولكنها لا تعمل كما هو متوقع، فحاول القيام بما يلي:
- اعرض سجلات الحاوية:
docker logs container_name
- تحقّق من حالة الحاوية (health status) إذا تم تعريفها:
docker inspect --format='{{json .State.Health}}' container_name- أعد تشغيل الحاوية:
docker restart container_name
بديلًا عن ذلك، يمكن لمستخدمي Hostinger VPS طلب المساعدة من مساعد الذكاء الاصطناعي Kodee لفحص سجلات الحاوية. ببساطة، اكتب: “Can you check the logs of the [container_name] container?” (هل يمكنك التحقق من سجلات حاوية [اسم الحاوية]؟) كما في هذا المثال:

5. مشاكل جدار الحماية والشبكة
يستخدم Docker عدة منافذ داخليًا. إذا كان لديك جدار حماية مُفعّل، مثل جدار الحماية غير المُعقّد (UFW)، فقد يتم حظر هذه المنافذ.
- اسمح بحركة المرور المرتبطة بـ Docker باستخدام UFW:
sudo ufw allow 2375/tcp
sudo ufw allow 2376/tcp
sudo ufw allow 2377/tcp
sudo ufw allow 7946/tcp
sudo ufw allow 7946/udp
sudo ufw allow 4789/udp
- تحقق مما إذا كان Docker قادرًا على حل DNS:
docker run busybox nslookup google.com
إذا فشل هذا، فقد يكون هناك خطأ في تكوين شبكة الحاويات لديك.
- أعد إنشاء شبكة bridge الافتراضية:
docker network rm bridge
docker network create --driver bridge bridge
إدارة جدار الحماية باستخدام Kodee
يمكنك أيضًا أن تطلب من Kodee تعيين قواعد جدار حماية جديدة على خادم VPS الخاص بك. ببساطة، اكتب "Set new firewall rules that open port 2375, 2376, 2377, .7946 TCP and 7946, 4789 UDP to any IP address"
6. بطء أداء Docker
إذا كان Docker يبدو بطيئًا، على غرار بُطء عملية سحب الصور أو تأخر الحاويات، فجرب الخطوات التالية لاستكشاف المشكلة وإصلاحها.
- تحقق من مساحة القرص:
df -h
- تحقق من استخدام نظام Docker:
docker system df
- اعرض الحاويات أو الـ Volumes الثقيلة:
docker ps -s
docker volume ls
إذا لم تنجح الخطوات السابقة، جرّب تنظيف الحاويات، والشبكات، والصور، وذاكرة البناء (build cache) غير المستخدمة لتحسين الأداء:
docker system prune -a
7. الأمان أو أخطاء AppArmor
قد يفشل Docker في بدء تشغيل الحاويات ضمن بعض إعدادات أوبونتو بسبب تعارضات مع وحدات الأمان، مثل AppArmor.
- تحقق من رفضات AppArmor:
dmesg | grep apparmor
- قم بتعطيل AppArmor مؤقتًا للحاوية:
docker run --security-opt apparmor=unconfined your_image
يرجى ملاحظة أنه لا يُنصح بتعطيل AppArmor في بيئة الإنتاج. إذا قررت القيام بذلك، فتأكد من عدم تجاوز ميزات أمان النواة المهمة دون قصد.
إذا استمرت هذه الأخطاء، ففكر في التحقق من سجلات النظام في /var/log/syslog.
ماذا بعد؟
يتيح لك تثبيت Docker على أوبونتو المرونة اللازمة لنشر البرامج واختبارها وشحنها مع تقليل المتاعب، سواء كنت تقوم بتشغيل التطبيقات محليًا أو إدارة أحمال العمل الإنتاجية.
لكن التثبيت ليس سوى البداية. للاستفادة القصوى من Docker، استكشف كيف تنسجم الحاويات مع سير عملك على المدى الطويل:
- ابحث عن حالات استخدام واقعية لـ Docker، مثل تشغيل تطبيقات الويب أو قواعد البيانات أو خطوط التكامل المستمر (CI)، واستلهم أفكارا لتطبيقها في مشاريعك الخاصة.
- استخدم docker exec للتفاعل مع الحاويات قيد التشغيل من خلال تنفيذ الأوامر مباشرة للتصحيح أو التكوين أو التحديثات المباشرة، كل ذلك دون إعادة تشغيل أي شيء.
- تعامل مع أسرار Docker بشكل آمن من خلال تجنب كلمات المرور أو الرموز المضمنة وتمرير البيانات الحساسة بأمان أثناء البناء أو وقت التشغيل.
- قم بإعداد Docker Swarm للتنسيق لتوسيع نطاق تطبيقاتك إلى ما هو أبعد من الحاويات الفردية وإدارة مجموعة متعددة العقد بكفاءة باستخدام موازنة التحميل المضمنة.
تخضع جميع محتويات البرامج التعليمية الموجودة على هذا الموقع للمعايير والقيم التحريرية الدقيقة الخاصة بـHostinger.
تعليقات
0 responses