المطورون
تعذر الوصول إلى حاوية Docker من Mac
يشغّل Docker على Mac الحاويات في جهاز افتراضي يعمل بنظام Linux. للوصول إلى حاوية من macOS، انشر عادةً منفذًا إلى localhost.
الأعراض
- يفشل
curl localhost:8080، لكن الخدمة تعمل داخل الحاوية. - لا يمكنك إرسال ping إلى عنوان IP للحاوية أو الاتصال به.
- لا تظهر واجهة
docker0على Mac. - تعمل الخدمة على Linux لكن ليس على Mac.
الأسباب المحتملة
- لم يُنشر المنفذ. دون
-p، لا يعيد Docker Desktop توجيه المنفذ إلى Mac. - عناوين IP للحاويات على Docker Desktop. تقول وثائق Docker الخاصة بـ Docker Desktop إنه يتعذر الوصول إلى شبكة الجسر الخاصة به من المضيف.
- تستمع الخدمة على 127.0.0.1 في الحاوية. عندئذٍ لا يمكن الاتصال بها إلا من الحاوية نفسها.
- زوج منافذ خاطئ. في
-p 8080:80، المنفذ 8080 هو منفذ Mac والمنفذ 80 هو منفذ الحاوية.
كيفية التحقق
اعرض الحاويات قيد التشغيل ومنافذها المنشورة.
docker psالمخرجات يعرض عمود PORTS أزواجًا مثل
0.0.0.0:8080->80/tcp. عدم وجود زوج يعني أن المنفذ غير منشور.اعرض المنافذ المنشورة لحاوية واحدة.
docker port my-containerاختبر الخدمة من داخل الحاوية إذا كانت الصورة تتضمن wget. يعني الرد أن الخدمة تعمل.
docker exec my-container wget -qO- http://localhost:80اطّلع على العملية التي تستمع على المنفذ في Mac.
lsof -nP -iTCP:8080 -sTCP:LISTEN
كيفية الإصلاح
ابدأ الحاوية بمنفذ منشور. الرقم الأول هو المنفذ على Mac.
docker run -d -p 8080:80 nginxاتصل من Mac باستخدام localhost ومنفذ Mac.
curl http://localhost:8080اجعل الخدمة في الحاوية تستمع على 0.0.0.0 بدلًا من 127.0.0.1. راجع توثيقها لمعرفة الإعداد.
إذا كان منفذ Mac قيد الاستخدام، فاختر منفذ Mac آخر. راجع المنفذ مستخدم بالفعل على Mac.
مع OrbStack، يمكنك أيضًا استخدام عنوان IP للحاوية أو اسمها
container-name.orb.local.
باستخدام Kilobat
تعمل فحوصات Kilobat على Mac. استخدم
--context containerعندما تعمل الشيفرة التي تفشل داخل حاوية. ينتهي التقرير عندئذٍ بأمر لتشغيله هناك.kilobat why http://localhost:8080 --context container
الأسئلة
لماذا لا يمكنني إرسال ping إلى حاوية على Docker Desktop؟
تقول وثائق Docker إن Docker Desktop لا يستطيع توجيه حركة البيانات من Mac إلى حاويات Linux. انشر منفذًا بدلًا من ذلك.
هل يعمل OrbStack بطريقة مختلفة؟
نعم. تقول وثائق OrbStack إنه يمكنك الاتصال بالحاويات من Mac باستخدام عنوان IP وأسماء .orb.local.
المصادر
- وثائق Docker: استكشاف إرشادات الشبكات على Docker Desktop
- وثائق Docker: الشبكات على Docker Desktop
- وثائق OrbStack: شبكات الحاويات
- lsof(8)، صفحة دليل مثبّتة مع macOS 27.2
تم التحقق في 29 أكتوبر 2026.