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

كيفية الاتصال بحاوية MySQL من حاوية أخرى في Docker؟

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

How to Connect to a MySQL Container from Another Container in Docker?

الاتصال بحاوية MySQL من حاوية أخرى

لقد قمت بإعداد حاوية Docker تقوم بتشغيل MySQL والمنفذ المكشوف 3306، ولكن كيف يمكن ذلك هل تصل إلى قاعدة البيانات هذه من حاوية أخرى؟

باستخدام عنوان IP

في البداية، حاولت الاتصال باستخدام عنوان IP الخاص بحاوية MySQL (172.17.0.2). بينما يعمل هذا، فهو ليس مثاليًا لأن عناوين IP يمكن أن تتغير.

الشبكات المعرفة من قبل المستخدم

الطريقة الأفضل هي استخدام الشبكات المعرفة من قبل المستخدم لتوصيل الحاويات. يمكنك إنشاء شبكة وإرفاق كل من حاويتي MySQL وPHP بها.

شبكة عامل إنشاء شبكة my_network
docker network create my_network

ربط الحاويات

قم بتشغيل كلتا الحاويتين على نفس الشبكة، مع توفير اسم الشبكة باستخدام علامة --network:

docker run -d --name php_container --network my_network my_php_image docker run -d --name mysql_container --network my_network my_mysql_image
docker run -d --name php_container --network my_network my_php_image
docker run -d --name mysql_container --network my_network my_mysql_image
داخل الحاويات الموجودة على تلك الشبكة، يمكنك حل أسماء الحاويات والاتصال باستخدام اسم المضيف. على سبيل المثال، من حاوية PHP، يمكنك الاتصال بـ MySQL باستخدام:

$mysqli = new mysqli("mysql_container"، "mattia"، "prova"، "prova");
docker run -d --name php_container --network my_network my_php_image
docker run -d --name mysql_container --network my_network my_mysql_image

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

أحدث البرنامج التعليمي أكثر>

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

Copyright© 2022 湘ICP备2022001581号-3