كيفية إنشاء صورة Docker الخاصة بك على Linux

هل سبق لك أن أردت إنشاء صورة Docker الخاصة بك؟ كما اتضح ، يمكنك باستخدام ما يسمى "ملف Dockerfile". في هذا الدليل ، سنتعرف على كيفية إنشاء صورة Docker الخاصة بك.

كيفية تثبيت Docker على Linux

ستحتاج إلى تثبيت Docker على خادم Linux قبل محاولة إنشاء صورة جديدة. لحسن الحظ ، من السهل تثبيت docker على مجموعة متنوعة من أنظمة تشغيل Linux. في هذا الدليل ، سنركز على Ubuntu و Debian و Arch Linux و Fedora و OpenSUSE .

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

أوبونتو / ديبيان

ستحتاج أولاً إلى تحديث فهرس البرامج على نظام Ubuntu / Debian الخاص بك. للقيام بذلك ، قم بتشغيل الأمر apt update أدناه.

sudo apt التحديث

يجب عليك الآن تثبيت حزمة نقل HTTPS للتثبيت عبر HTTPS. ستحتاج أيضًا إلى تثبيت Curl وبعض الحزم الأخرى. يمكن تثبيت هذه الحزم باستخدام الأمر apt install .

sudo apt install apt-transport-https ca-الشهادات curl-properties-common

مع تثبيت الحزم ، حان الوقت لتمكين مفتاح Docker GPG على نظام Ubuntu / Debian الخاص بك. يضمن هذا المفتاح أنه من الآمن تثبيت الحزم على Ubuntu.

curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg

مع تمكين مفتاح GPG ، حان الوقت لتمكين Docker repo. للقيام بذلك ، قم بتنفيذ أمر echo التالي في Terminal.

صدى "deb [arch = amd64 موقع بواسطة = / usr / share / keyrings / docker-archive-keyring.gpg] https://download.docker.com/linux/ubuntu $ (lsb_release -cs) مستقر" | sudo tee /etc/apt/sources.list.d/docker.list> / dev / null

عندما تقوم بتمكين Docker repo ، أعد تشغيل الأمر apt update لتحديث فهرس البرنامج.

sudo apt التحديث

أخيرًا ، يمكنك تثبيت حزم Docker التي تحتاجها على Ubuntu أو Debian.

sudo apt install docker-ce docker-ce-cli containerd.io

قوس لينكس

إذا كنت تستخدم Arch Linux ، فيمكنك ببساطة تشغيل الأمر pacman -S وتثبيت حزمة "docker" لجعل Docker يعمل على نظامك.

sudo pacman -S docker

مع تثبيت حزمة Docker على نظام Arch الخاص بك ، قم بتشغيل أوامر systemctl التالية لتمكين البرنامج.

sudo systemctl تمكين docker sudo systemctl بدء docker

فيدورا

يعد تشغيل Docker على Fedora أمرًا بسيطًا إلى حد ما. للبدء ، استخدم الأمر dnf install لتثبيت البرنامج على نظامك.

sudo dnf تثبيت عامل ميناء

بمجرد تثبيت الحزمة على نظام Fedora الخاص بك ، قم بتمكينها باستخدام systemd.

sudo systemctl تمكين docker sudo systemctl بدء docker

OpenSUSE

لجعل Docker يعمل على OpenSUSE ، يجب عليك إضافة Docker repo.

sudo zypper addrepo https://download.docker.com/linux/opensuse/$(awk -F = '/ ^ VERSION_ID / {print $ 2}' / etc / os-release) / x86_64 / docker

بعد ذلك ، قم بتحديث Zypper وتثبيت البرنامج.

تحديث sudo zypper

sudo zypper تثبيت docker-ce

أخيرًا ، قم بتمكين Docker على نظامك باستخدام systemd.

sudo systemctl تمكين docker sudo systemctl بدء docker

كيفية اختيار الصورة الأساسية الخاصة بك

كل صورة Docker مأخوذة من DockerHub مبنية على صورة أساسية. لذلك ، ستحتاج إلى اختيار صورة أساسية لحاوية Docker الخاصة بك. في هذا الدليل ، سنستخدم Ubuntu ، لأنه أحد أكثر أنظمة تشغيل Linux توافقًا.

في هذا الدليل ، سنعرض لك مثالاً على كيفية إنشاء صورة دروبال 10 باستخدام أوبونتو 22.04. ومع ذلك ، يمكن أن تنطبق تعليمات البناء هذه على أي شيء ترغب في إنشائه ، من تطبيقات الويب إلى برامج Python ، إلخ.

للبدء ، افتح محرر نصوص Nano في المحطة. ستستخدم Nano لصياغة Dockerfile الخاص بك.

نانو -w ~ / ملف عامل ميناء

داخل محرر نصوص Nano ، أدخل الكود التالي لتحديد رغبتك في استخدام Ubuntu. للحصول على Ubuntu 22.04 ، حدده. إذا كنت ترغب في استخدام إصدار مختلف من Ubuntu ، فيمكن العثور على المعلومات هنا .

# Use the official Ubuntu base image
FROM ubuntu:22.04

كيفية إعداد دليل العمل

يجب عليك إعداد دليل عمل في حاوية Docker الخاصة بك. دليل العمل هو المكان الذي يتم فيه نشر التطبيق على Ubuntu في الحاوية. في هذا المثال ، سنعمل مع دروبال 10. دروبال هو تطبيق ويب ، لذا سنحتاج إلى ضبط WORKDIR على أنه / var / www / html /.

في محرر نصوص Nano ، اضغط على مفتاح Enter لتوفير مسافة. ثم قم بلصق الكود التالي.

# Set the working directory in the container WORKDIR /var/www/html

كيفية تثبيت تبعيات البرنامج

يحتاج التطبيق الذي تنشره في صورة Docker إلى تلبية تبعياته. إذا لم يتم تثبيت التبعيات الصحيحة في الصورة ، فلن تعمل. نحن نقوم بإنشاء صورة دروبال 10 بناءً على Ubuntu 22.04 ، لذلك يجب علينا إضافة جميع تبعيات دروبال 10 إلى الملف.

في محرر نصوص Nano ، اضغط على مفتاح Enter لتوفير مسافة. ثم قم بلصق الكود التالي.

# Install dependencies RUN apt-get update && apt-get install -y \ apache2 \ php \ libapache2-mod-php \ php-curl \ php-gd \ php-intl \ php-mbstring \ php-mysql \ php-pgsql \ php-xml \ php-zip \ unzip

كيفية نسخ كود البرنامج

الخطوة التالية في العملية هي تزويد ملف Docker بكود البرنامج. مرة أخرى ، نستخدم دروبال 10 كمثال. لذلك ، يجب علينا تزويد Dockerfile بوسائل تنزيل واستخراج دروبال 10.

في محرر نصوص Nano ، اضغط على مفتاح Enter لإنشاء سطر جديد. بعد ذلك ، أضف الكود التالي حتى يتمكن Dockerfile الخاص بك من تنزي�� Drupal 10.

# Download and install Drupal RUN wget https://ftp.drupal.org/files/projects/drupal-10.2.tar.gz && \ tar -xvf drupal-10.2.tar.gz && \ mv drupal-10.2 .

كيفية كشف المنافذ

في كل مرة تقوم فيها بنشر حاوية Docker ، فإنها تصل إلى المنافذ. على سبيل المثال ، إذا قمت بتشغيل حاوية Syncthing الافتراضية ، فإنها تعرض المنفذ 8384. Nextcloud؟ المنفذ 8080 و 80. تحتاج الحاوية الخاصة بك إلى كشف المنافذ الصحيحة لكي تعمل بشكل صحيح.

أولاً ، اكتشف المنافذ التي يحتاج البرنامج الذي تنشره إلى الوصول إليها. في هذا المثال ، نقوم بنشر دروبال 10. نظرًا لأن دروبال 10 هو نظام CMS لخادم ويب ، فإنه يحتاج إلى منفذ 80. لذلك ، في ملف نصي Nano ، نكشف عن المنفذ 80.

# Expose the Drupal port EXPOSE 80

كيفية تعيين الأمر الافتراضي

تحتاج إلى تعيين الأمر الافتراضي في Dockerfile الخاص بك بحيث يبدأ تشغيل البرنامج تلقائيًا عند إنشاء صورتك ونشرها. في مثالنا ، نريد أن يبدأ Drupal 10 فورًا بمجرد نشر الحاوية ، لذلك نحتاج إلى إضافة أمر تشغيل إلى Dockerfile.

في محرر نصوص Nano ، اضغط على Enter لإنشاء مساحة جديدة في الملف. ثم قم بلصق الكود التالي.

# Start Apache in the foreground CMD ["apache2ctl", "-D", "FOREGROUND"]

عند إضافة هذا الجزء الأخير من التعليمات البرمجية إلى الملف ، احفظه بالضغط على Ctrl + O ، واخرج من محرر نصوص Nano باستخدام Ctrl + X. يجب أن يبدو ملف Dockerfile مثل الكود أدناه.

ملاحظة: هذا مثال Dockerfile. يمكنك استخدام مثال دروبال كمرجع لإنشاء نموذج خاص بك لأي تطبيق ترغب فيه.

FROM ubuntu:22.04

# Set the working directory
WORKDIR /var/www/html

# Install dependencies
RUN apt-get update && apt-get install -y \
apache2 \
php \
libapache2-mod-php \
php-curl \
php-gd \
php-intl \
php-mbstring \
php-mysql \
php-pgsql \
php-xml \
php-zip \
unzip


# Download and install Drupal
RUN wget https://ftp.drupal.org/files/projects/drupal-10.2.tar.gz && \
tar -xvf drupal-10.2.tar.gz && \
mv drupal-10.2 .


# Expose the Drupal port
EXPOSE 80

# Start Apache in the foreground
CMD ["apache2ctl", "-D", "FOREGROUND"]

كيف نبني الصورة

لإنشاء صورة Docker الجديدة الخاصة بك باستخدام Dockerfile الذي قمت بإنشائه ، أدخل أمر docker build التالي .

sudo docker build -t my-docker-image.

سيبني الأمر أعلاه صورة Docker الخاصة بك.

كيفية نشر الصورة

لنشر صورتك الجديدة في حاوية ، تحتاج إلى استخدام أمر docker run . على سبيل المثال ، لتشغيل صورة Drupal 10 Ubuntu المبنية حديثًا على المنفذ 80 ، قم بما يلي.

sudo docker run -d --name my-drupal-container -p 80:80 my-docker-image

اترك تعليقاً

إصلاح مشكلة تمزق الشاشة على معالجات رسومات Intel في نظام Pardus Linux: دليل عملي يركز على النتائج

إصلاح مشكلة تمزق الشاشة على معالجات رسومات Intel في نظام Pardus Linux: دليل عملي يركز على النتائج

قم بإصلاح مشكلة تمزق الشاشة في معالجات رسومات Intel في نظام Pardus Linux عن طريق التحقق من X11 مقابل Wayland، وإعدادات المُركِّب، ومعدل التحديث، وبرنامج تشغيل Xorg النشط، وTearFree فقط عند الاقتضاء.

كيفية تكوين جدار الحماية SLES 15 باستخدام firewall-cmd

كيفية تكوين جدار الحماية SLES 15 باستخدام firewall-cmd

قم بتكوين firewalld على SLES 15: تحقق من المناطق، واسمح بالخدمات أو المنافذ، واحفظ القواعد الدائمة، وأعد التحميل بأمان، وتحقق من الوصول.

دليل تهيئة التحديث المباشر لنظام SLES: تطبيق تحديثات النواة بدون إعادة تشغيل النظام

دليل تهيئة التحديث المباشر لنظام SLES: تطبيق تحديثات النواة بدون إعادة تشغيل النظام

قم بتمكين التصحيح المباشر للنواة على SLES 15 SP7، وقم بتطبيق الإصلاحات المدعومة دون إعادة التشغيل، وتحقق من التصحيحات النشطة، وافهم متى لا تزال إعادة تشغيل النواة مطلوبة.

كيفية تفعيل وضع FIPS على خادم SUSE Linux Enterprise Server 15

كيفية تفعيل وضع FIPS على خادم SUSE Linux Enterprise Server 15

قم بتمكين وضع FIPS على SLES 15 باستخدام أداة الإعداد المدعومة من SUSE، وأعد التشغيل بأمان، وتحقق من حالة سياسة النواة والتشفير، وتحقق من حدود الشهادة.

كيفية تثبيت جوجل كروم على نظام التشغيل جوجل روم دون الإخلال بسياسات الأمان

كيفية تثبيت جوجل كروم على نظام التشغيل جوجل روم دون الإخلال بسياسات الأمان

قم بتثبيت متصفح جوجل كروم على نظام التشغيل Gooroom OS بأمان باستخدام حزم .deb الرسمية، وAPT، وفحوصات السياسات، وإرشادات التحديث، وإصلاحات الأجهزة المُدارة.

كيفية تصدير سجلات نظام SLES إلى خادم Syslog بعيد بشكل آمن

كيفية تصدير سجلات نظام SLES إلى خادم Syslog بعيد بشكل آمن

إعادة توجيه سجلات نظام SLES بشكل آمن إلى خادم syslog بعيد باستخدام rsyslog وشهادات TLS والتحقق من اسم النظير وقوائم الانتظار والتحقق من الصحة والاختبار.

تكامل Active Directory مع SSSD في SLES 15: دليل خطوة بخطوة

تكامل Active Directory مع SSSD في SLES 15: دليل خطوة بخطوة

قم بربط نظام SLES 15 بـ Active Directory باستخدام SSSD عبر YaST. قم بإعداد DNS والوقت، وتكوين تسجيلات دخول المجال، والتحقق من Kerberos، ومقارنة SSSD وWinbind وrealmd.

Fix Realtek RTL8821CE Wi-Fi Driver Issues on Pardus Linux

Fix Realtek RTL8821CE Wi-Fi Driver Issues on Pardus Linux

Fix RTL8821CE Wi-Fi on Pardus Linux by checking the built-in rtw88 driver, Realtek firmware, rfkill, NetworkManager, and safe fallback options.

إصلاح مشكلة "فشل مؤقت في حل أسماء النطاقات" في دبيان 12 باستخدام systemd-resolved

إصلاح مشكلة "فشل مؤقت في حل أسماء النطاقات" في دبيان 12 باستخدام systemd-resolved

تشخيص وإصلاح حالات فشل تحليل DNS في Debian 12 باستخدام systemd-resolved، بما في ذلك resolv.conf و NetworkManager و networkd و cache و verification.

كيفية تثبيت نظامي التشغيل Pardus Linux وWindows 11 بأمان

كيفية تثبيت نظامي التشغيل Pardus Linux وWindows 11 بأمان

قم بتثبيت Pardus 25.2 بجانب Windows 11 عن طريق النسخ الاحتياطي، وتقليص حجم وحدة تخزين Windows، والتمهيد من USB UEFI، وحماية أقسام EFI والاسترداد الحالية.