"إذا أراد العامل أن يؤدي عمله بشكل جيد، فعليه أولاً أن يشحذ أدواته." - كونفوشيوس، "مختارات كونفوشيوس. لو لينجونج"
الصفحة الأمامية > برمجة > استخدام MySQL في حاوية Docker لمشاريعك

استخدام MySQL في حاوية Docker لمشاريعك

تم النشر بتاريخ 2024-08-18
تصفح:682

Using MySQL in a Docker Container for your Projects

أنا مؤمن بشدة بالحفاظ على نظافة نظام المضيف الخاص بي. وحاويات Docker هي الحل الأمثل لذلك. لنفترض أنك تعمل على تطبيق React مع واجهة Node/Express الخلفية وخادم MySQL لتلبية احتياجات قاعدة بياناتك. عادةً، يمكنك تثبيت mysql في نظامك المضيف، وإنشاء قاعدة بيانات، وإنشاء مستخدم بكلمة مرور ومنح المستخدم امتيازات للعمل مع قاعدة البيانات تلك.

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

صدقني، بمجرد معرفة سير عملك باستخدام هذا المسار، فلن تعود أبدًا إلى الطرق القديمة. إذن، إليك كيفية القيام بذلك وبطريقة أساسية وبسيطة جدًا.

إذا كانت لديك بعض الخبرة في استخدام Docker وترغب في تخطي هذا البرنامج التعليمي واستخدام إصدار TLDR مباشرةً، فسيكون هذا Gist أسرع بكثير.

ماذا سنحتاج؟

لاستخدام Docker، نحتاج إلى Docker، دوه! لن أخوض في تفاصيل تثبيت Docker هنا. إذا لم تكن مرتاحًا مع واجهة سطر الأوامر (CLI) أو كنت تستخدم Windows/MacOS، فانتقل إلى Docker Desktop، فهو سيقوم بكل العمل الثقيل نيابةً عنك خلف الكواليس.

يمكن لمستخدمي Linux تثبيت Docker Engine باستخدام المكون الإضافي Docker Compose أو Docker Desktop أيضًا إذا لم تشعر بذلك.

لا تحتاج عادةً إلى حساب على Docker Hub لتنزيل الصور العامة مثل صورة MySQL الرسمية التي سنستخدمها.

حسنًا، ماذا الآن؟

هناك طريقتان للقيام بذلك.

استخدام Docker Run (غير مستحسن)

لتتمكن من تشغيل الحاوية مباشرةً باستخدام أمر docker run، سيتعين عليك تنزيل صورة MySQL على نظامك أولاً. لسحب الصورة إلى نظامك، ما عليك سوى استخدام هذا الأمر:

docker pull mysql

ملاحظة: إذا لم تكن بحاجة إلى إصدار معين من MySQL، فسيقوم هذا الأمر بتنزيل الإصدار الأحدث (الإصدار الذي يحتوي على أحدث علامة). يمكنك استكشاف المزيد من العلامات والإصدارات من Docker Hub إذا كنت بحاجة إلى ذلك.

بمجرد الانتهاء من تنزيل Docker، يمكنك رؤية الصورة التي تم تنزيلها مثل هذا:

docker image ls

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

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

هذا هو السبب الذي يجعلني لا أوصي بهذا النهج. هناك طريقة أفضل.

عامل الميناء يؤلف

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

ملاحظة: يمكنك إنشاء ملف الإنشاء الخاص بك بأي اسم. إذا كنت تستخدم اسمك أو قمت بتخزين ملف الإنشاء الخاص بك في مجلدات أخرى، فسيتعين عليك توفير علامة -f حتى يعمل. وبدلاً من ذلك، إذا كنت تقوم بتشغيل الأمر من نفس المجلد الذي يحتوي على ملفك، فيمكنك تسمية الملف docker-compose.yaml.

ملف Docker Compose هو ملف YAML. سوف يبدو شكلنا كالتالي:

# This Docker Compose YAML deploys a MySQL database
services:
  container-name:

    image: mysql # Official MySQL image from Docker Hub
    restart: always

    environment:
      # Note - Root password is mandatory for the container to run and grant privileges to our User.
      MYSQL_ROOT_PASSWORD: ${MYSQL_ROOT_PASSWORD}

      MYSQL_DATABASE: ${MYSQL_DATABASE} # Same name as used in your project

      # DB User Details
      MYSQL_USER: ${MYSQL_USER}
      MYSQL_PASSWORD: ${MYSQL_PASSWORD}

    ports:
      # Adjust this port as per your needs -> :
      - 3308:3306 # DB is available at localhost:3308 on the host.

    volumes:
      - ./volumes/db-mnt:/var/lib/mysql

هذا الملف موجود أيضًا على Gist المذكور في البداية.

من المهم أن تعرف

  1. تعيين المنفذ: المنفذ الأول هو المنفذ المضيف (نظامك) الذي تم تعيينه للمنفذ الثاني (المنفذ الموجود داخل حاوية عامل الإرساء). هذا يعني أنه في المثال أعلاه، يمكنك الوصول إلى قاعدة البيانات على localhost:3308. ما لم تكن تعرف ما تفعله، احتفظ بالمنفذ الثاني كـ 3306. هذا هو المنفذ الافتراضي لـ MySQL.
  2. Volume Bind Mount: نقوم بتثبيت وحدة تخزين محلية على الحاوية للاحتفاظ بالبيانات داخل قاعدة البيانات. وهذا يجعل من السهل إجراء النسخ الاحتياطي والتنقل إذا لزم الأمر. يمكنك أيضًا السماح لـ Docker بإدارة حجمه الخاص وإنشاء نسخ احتياطية دورية على نظامك المضيف. #### ملف البيئة لتوفير بيانات الاعتماد اللازمة لـ Docker أثناء إنشاء الحاوية، سنقوم بإنشاء ملف .env، تمامًا كما نفعل في تطبيقات React أو Backend.

يمكنك إما إنشاء هذا الملف في نفس المجلد الذي يوجد به ملف الإنشاء الخاص بك، أو يمكنك إنشاؤه في أي مكان تريده ولكن ستحتاج إلى توفير المسار أثناء استدعاء docker-compose.

# Content of the Environment Variables file
MYSQL_ROOT_PASSWORD=rootpassword
MYSQL_DATABASE=nameofdatabase
MYSQL_USER=dbusername
MYSQL_PASSWORD=dbuserpassword

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

docker-compose up -d

أنت الآن جاهز لإجراء اتصال بقاعدة البيانات باستخدام الوسائل المفضلة لديك.

وبما أننا قمنا بتكوين حاوياتنا للتشغيل من ملف إنشاء، فيمكنك نسخها احتياطيًا بأمان في نظام git في الريبو الخاص بك. فقط تأكد من تجاهل ملف .env.

بيان الافراج تم إعادة إنتاج هذه المقالة على: https://dev.to/nyukeit/using-mysql-in-a-docker-container-for-your-projects-4ham?1 إذا كان هناك أي انتهاك، يرجى الاتصال بـ [email protected] لحذفه
أحدث البرنامج التعليمي أكثر>

تنصل: جميع الموارد المقدمة هي جزئيًا من الإنترنت. إذا كان هناك أي انتهاك لحقوق الطبع والنشر الخاصة بك أو الحقوق والمصالح الأخرى، فيرجى توضيح الأسباب التفصيلية وتقديم دليل على حقوق الطبع والنشر أو الحقوق والمصالح ثم إرسالها إلى البريد الإلكتروني: [email protected]. سوف نتعامل مع الأمر لك في أقرب وقت ممكن.

Copyright© 2022 湘ICP备2022001581号-3