المطورون

تعذر الوصول إلى حاوية Docker من Mac

يشغّل Docker على Mac الحاويات في جهاز افتراضي يعمل بنظام Linux. للوصول إلى حاوية من macOS، انشر عادةً منفذًا إلى localhost.

ينطبق على: Docker Desktop وOrbStack على إصدارات macOS الحالية.تاريخ التحقق: 29 أكتوبر 2026

الأعراض

  • يفشل 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 هو منفذ الحاوية.

كيفية التحقق

  1. اعرض الحاويات قيد التشغيل ومنافذها المنشورة.

    docker ps

    المخرجات يعرض عمود PORTS أزواجًا مثل 0.0.0.0:8080->80/tcp. عدم وجود زوج يعني أن المنفذ غير منشور.

  2. اعرض المنافذ المنشورة لحاوية واحدة.

    docker port my-container
  3. اختبر الخدمة من داخل الحاوية إذا كانت الصورة تتضمن wget. يعني الرد أن الخدمة تعمل.

    docker exec my-container wget -qO- http://localhost:80
  4. اطّلع على العملية التي تستمع على المنفذ في Mac.

    lsof -nP -iTCP:8080 -sTCP:LISTEN

كيفية الإصلاح

  1. ابدأ الحاوية بمنفذ منشور. الرقم الأول هو المنفذ على Mac.

    docker run -d -p 8080:80 nginx
  2. اتصل من Mac باستخدام localhost ومنفذ Mac.

    curl http://localhost:8080
  3. اجعل الخدمة في الحاوية تستمع على 0.0.0.0 بدلًا من 127.0.0.1. راجع توثيقها لمعرفة الإعداد.

  4. إذا كان منفذ Mac قيد الاستخدام، فاختر منفذ Mac آخر. راجع المنفذ مستخدم بالفعل على Mac.

  5. مع OrbStack، يمكنك أيضًا استخدام عنوان IP للحاوية أو اسمها container-name.orb.local.

باستخدام Kilobat

  1. تعمل فحوصات 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.

المصادر

تم التحقق في 29 أكتوبر 2026.