كيفية تشغيل حاوية Postgres عبر Docker على Oracle Cloud Infrastructure

دقائق القراءة: 6
تشغيل حاوية Postgres باستخدام Docker على Oracle Cloud Infrastructure

إذا كنت تبحث عن طريقة عملية ومنخفضة التكلفة لتشغيل قاعدة بيانات Postgres داخل حاوية Docker على السحابة، فإن Oracle Cloud Infrastructure (OCI) يوفر خياراً مناسباً للغاية، خصوصاً مع فئة Always Free. في هذا الدليل، ستتعرف على الخطوات الأساسية لإنشاء آلة افتراضية، وتهيئة الشبكة، وتثبيت Docker، ثم تشغيل حاوية Postgres وربطها من جهازك المحلي بسهولة.

الفكرة الأساسية هنا هي استخدام آلة افتراضية VM مجانية ضمن OCI، ثم نشر قاعدة بيانات PostgreSQL داخل حاوية Docker بحيث تصبح متاحة للاستخدام في المشاريع الشخصية أو البيئات التجريبية الصغيرة.

لماذا Oracle Cloud Infrastructure مناسب لتشغيل Docker وPostgres؟

تمنح Oracle خيار Always Free الذي يتيح تشغيل بعض الموارد السحابية دون تكلفة مستمرة، وهو ما يجعله مناسباً للمطورين، ولمشاريع الاختبار، ولمن يريد تعلّم إدارة الخدمات السحابية عملياً.

تفاصيل موارد Oracle Cloud Infrastructure المجانية ضمن Always Free

لكن من المهم الانتباه إلى أن الحاوية التي ستشغلها يجب أن تتوافق مع موارد الآلة الافتراضية المجانية، والتي تأتي عادة بالمواصفات التالية:

  • النوع: VM.Standard.E2.1.Micro
  • 1/8 OCPU
  • 1 GB RAM
  • عرض نطاق شبكي يصل إلى 480 Mbps
  • مساحة تخزين للإقلاع تتجاوز 45 GB

كما يجب الانتباه إلى نقطة مهمة جداً: إذا أردت الوصول إلى الحاوية من خارج الخادم، فلا يكفي فقط ربط المنفذ داخل Docker، بل يجب أيضاً فتح هذا المنفذ من خلال Ingress Rules ضمن إعدادات الأمان الخاصة بالشبكة.

ومن الأمور الأساسية كذلك أن Docker لا يكون مثبتاً افتراضياً على الآلة، لأن OCI يوفّر لك نظام Oracle Linux فقط عند الإنشاء الأولي، لذلك سنقوم بتثبيته يدوياً.

الخطوة الأولى: إنشاء VM على Oracle Cloud Infrastructure

أول ما تحتاج إليه هو إنشاء آلة افتراضية جديدة. إذا كان لديك حساب سحابي جاهز على Oracle، فالأمر سيكون مباشراً. أما إذا كنت جديداً على المنصة، فيمكنك التسجيل عبر صفحة الخدمة المجانية:

https://cloud.oracle.com/free

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

بعد بدء الإنشاء، ستبدأ Oracle في تجهيز الآلة الافتراضية كما يظهر عادة في لوحة التحكم.

بدء تهيئة آلة افتراضية جديدة على Oracle Cloud Infrastructure

بعد وقت قصير، ستصبح الآلة في حالة تشغيل، وسيتم إسناد Public IP لها، وهو العنوان الذي ستستخدمه لاحقاً للوصول عبر SSH أو للاتصال بقاعدة البيانات من الخارج.

آلة افتراضية تعمل مع عنوان IP عام على Oracle Cloud Infrastructure

ويمكن تصور البنية في هذه المرحلة على النحو التالي: آلة افتراضية عامة داخل شبكة VCN، وسيتم تشغيل حاوية Postgres بداخلها وربطها بالمنفذ الذي نختاره.

تصور بنية تشغيل Docker وPostgres داخل آلة Oracle Cloud Infrastructure

الخطوة الثانية: إعداد Ingress Rules لفتح منافذ الوصول

لكي تتمكن من الوصول إلى الحاوية من خارج الخادم، يجب ضبط قواعد الدخول Ingress Rules في Security List الخاصة بالشبكة الفرعية العامة Public Subnet المرتبطة بالآلة.

الفكرة هنا بسيطة: أي منفذ ستقوم بربطه بين الخادم والحاوية عبر Docker، يجب أن يكون مفتوحاً أيضاً على مستوى الشبكة داخل OCI.

افتح صفحة تفاصيل Public Subnet، ثم انتقل إلى Security List المرتبطة بها أو أنشئ قائمة جديدة إذا رغبت في ذلك.

الوصول إلى Security List داخل الشبكة الفرعية العامة في Oracle Cloud

بما أننا سنشغّل صورة Postgres، فمن المنطقي استخدام المنفذ الافتراضي له وهو 5432. لذلك نضيف قاعدة تسمح بالوصول إلى هذا المنفذ.

إعداد قاعدة Ingress لفتح المنفذ 5432 في Oracle Cloud Infrastructure

يمكن ضبط الإعدادات الأساسية كما يلي:

  • Source CIDR: 0.0.0.0/0
  • Source Port Range: تركه فارغاً
  • Destination Port Range: 5432
  • Protocol: TCP

هذا الإعداد يعني أن أي عميل يمكنه الوصول إلى المنفذ المحدد. في البيئات الإنتاجية، يفضّل دائماً تقييد الوصول إلى عناوين IP موثوقة فقط لتحسين الأمان.

الخطوة الثالثة: الاتصال بالآلة عبر SSH وتثبيت Docker

بعد تشغيل الآلة الافتراضية وضبط إعدادات الشبكة، حان الوقت للاتصال بها. ستستخدم لهذا الغرض بروتوكول SSH مع المفتاح الخاص الذي أنشأته أثناء إنشاء المثيل.

ssh opc@public-id-address -i private-key-file

استبدل public-id-address بعنوان Public IP الخاص بالآلة، واستبدل private-key-file بمسار ملف المفتاح الخاص على جهازك.

بعد الدخول إلى الخادم، نفّذ أوامر تثبيت Docker التالية:

sudo yum-config-manager --enable ol7_addons
sudo yum install docker-engine -y
sudo systemctl start docker
sudo systemctl enable docker

تثبيت Docker على Oracle Linux داخل Oracle Cloud Infrastructure

بهذا تكون قد ثبّت Docker وفعّلته ليعمل تلقائياً مع كل إعادة تشغيل للخادم.

تشغيل حاوية Postgres باستخدام Docker

بعد تثبيت Docker، يمكنك الآن تشغيل حاوية Postgres بسهولة. استخدم الأمر التالي، مع الحرص على تغيير كلمة المرور إلى قيمة قوية وآمنة:

sudo docker run -d -p 5432:5432 --name postgres -e POSTGRES_PASSWORD=mysecretpassword postgres

هذا الأمر ينفذ عدة مهام في وقت واحد:

  • تشغيل الحاوية في الخلفية باستخدام -d
  • ربط المنفذ 5432 على الخادم بالمنفذ 5432 داخل الحاوية
  • تسمية الحاوية باسم postgres
  • تحديد كلمة مرور المستخدم الافتراضي postgres
  • سحب صورة postgres الرسمية من Docker Hub إذا لم تكن موجودة

للتحقق من أن الحاوية تعمل بشكل صحيح، استخدم الأمر التالي:

sudo docker ps

ربط المنافذ يتم وفق النمط التالي:

-p <host_port>:<container_port>

وفي حالتنا، هذا يعني أن المنفذ 5432 على الخادم يشير مباشرة إلى المنفذ 5432 داخل حاوية Postgres.

إنشاء قاعدة بيانات داخل حاوية PostgreSQL

الآن بعد أن أصبحت الحاوية تعمل، يمكنك الدخول إليها وإنشاء قاعدة بيانات جديدة.

أولاً ادخل إلى الحاوية:

sudo docker exec -it postgres bash

بعد ذلك افتح واجهة psql باستخدام المستخدم الافتراضي:

psql -U postgres

ثم أنشئ قاعدة البيانات كما يلي:

root@12d48fde2627:/# psql -U postgres
psql (13.3 (Debian 13.3-1.pgdg100+1))
Type "help" for help.

postgres=# CREATE DATABASE testdb;
CREATE DATABASE
postgres=# \q

بهذا أصبحت لديك قاعدة بيانات باسم testdb تعمل داخل الحاوية.

كيفية الاتصال بقاعدة Postgres من جهازك المحلي

بعد الانتهاء من إعداد الخادم والحاوية وقاعدة البيانات، يمكنك استخدام أي أداة لإدارة PostgreSQL من جهازك المحلي مثل:

  • DBeaver
  • pgAdmin

استخدم بيانات الاتصال التالية:

الإعداد القيمة
Host عنوان Public IP الخاص بالآلة
Port 5432
Username postgres
Password القيمة التي وضعتها في POSTGRES_PASSWORD
Database testdb

إذا كانت إعدادات الشبكة صحيحة والحاوية تعمل، فسيتم الاتصال بقاعدة البيانات بنجاح.

ملاحظات تقنية مهمة قبل استخدام هذا الإعداد

1. الموارد محدودة في Always Free

رغم أن تشغيل Postgres بهذه الطريقة ممتاز للتجارب والمشاريع الصغيرة، فإن موارد الخطة المجانية محدودة، لذلك لا يُنصح بالاعتماد عليها لتطبيقات ذات ضغط مرتفع أو قواعد بيانات كبيرة الحجم.

2. تأمين الوصول الخارجي

فتح المنفذ 5432 للعالم عبر 0.0.0.0/0 مفيد للتجربة، لكنه ليس الخيار الأكثر أماناً. الأفضل هو تقييد الوصول إلى عنوان IP الخاص بك أو استخدام طبقة إضافية من الحماية.

3. استمرارية البيانات

الأمر المستخدم لتشغيل الحاوية لا يضيف Volume دائم لتخزين البيانات. هذا يعني أن حذف الحاوية قد يؤدي إلى فقدان البيانات. إذا كنت تريد استمرارية حقيقية، فمن الأفضل ربط مجلد أو Volume مخصص ببيانات Postgres.

4. تشغيل Docker كمستخدم غير root

في هذا الشرح استُخدم sudo مع أوامر Docker، وهو مناسب كبداية. لكن في بيئات العمل المتقدمة قد تحتاج إلى إعداد Docker ليعمل مع مستخدم غير root وفق أفضل الممارسات الأمنية.

ملخص الخطوات العملية

  1. إنشاء آلة افتراضية مجانية على Oracle Cloud Infrastructure.
  2. الحصول على Public IP بعد اكتمال التهيئة.
  3. فتح المنفذ 5432 ضمن Ingress Rules.
  4. الاتصال بالخادم عبر SSH.
  5. تثبيت Docker على Oracle Linux.
  6. تشغيل حاوية Postgres باستخدام Docker.
  7. إنشاء قاعدة بيانات جديدة داخل الحاوية.
  8. الاتصال بقاعدة البيانات من جهازك المحلي عبر DBeaver أو pgAdmin.

الخلاصة التقنية

تشغيل Postgres داخل Docker على Oracle Cloud Infrastructure يُعد خياراً عملياً واقتصادياً للمطورين الذين يريدون بيئة اختبار سريعة وقابلة للوصول من الإنترنت. الميزة الأهم في هذا النهج هي سهولة الإعداد وقلة التكلفة، لكن نجاحه يعتمد على فهم جيد لإعدادات الشبكة، وفتح المنافذ بشكل صحيح، والانتباه إلى الأمان واستمرارية البيانات. إذا كنت تعمل على مشروع جانبي أو بيئة تطوير، فهذه الطريقة تمنحك نقطة انطلاق ممتازة دون تعقيد كبير.

اترك تعليقاً

لن يتم نشر عنوان بريدك الإلكتروني. الحقول الإلزامية مشار إليها بـ *