---
title: "الوصول إلى خدمة localhost على Mac من حاوية Docker · أدلة Kilobat"
url: "https://kilobat.app/ar/guides/localhost-from-container"
description: "داخل الحاوية، يشير localhost إلى الحاوية. استخدم host.docker.internal للوصول إلى قاعدة بيانات أو API أو خادم نموذج يعمل على Mac."
---

المطورون

# لا تستطيع حاوية الوصول إلى localhost على Mac

لكل حاوية مكدس شبكة خاص بها. داخل الحاوية، يشير `localhost` إلى الحاوية نفسها، وليس Mac.

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

## الأعراض

- يتلقى تطبيق في حاوية رسالة «connection refused» على `localhost:5432` أو منفذ مماثل.
- يعمل عنوان URL نفسه في Safari أو Terminal على Mac.
- يتعذر الوصول إلى خادم نموذج أو API على Mac من حاوية تطوير.

## الأسباب المحتملة

- **يشير localhost إلى الحاوية.** تبحث الحاوية عن الخدمة في مكدس الشبكة الخاص بها، حيث لا يستمع أي شيء.
- **يتغير عنوان المضيف.** تقول وثائق Docker إن عنوان IP للمضيف يتغير، وتوفر اسمًا خاصًا للمضيف بدلًا منه.
- **جدار حماية على Mac.** قد يحظر جدار حماية macOS أو تطبيق جدار حماية آخر الاتصالات الواردة إلى الخدمة.

## كيفية التحقق

1. تأكد من أن الخدمة تعمل على Mac. استبدل 8000 بمنفذك.

   ```
   curl http://localhost:8000
   ```
2. اعرف العنوان الذي تستمع عليه خدمة Mac.

   ```
   lsof -nP -iTCP:8000 -sTCP:LISTEN
   ```

   المخرجات تعني `*:8000` جميع العناوين. وتعني `127.0.0.1:8000` عنوان الاسترجاع فقط.
3. اختبر اسم المضيف من داخل الحاوية، إذا كانت الصورة تتضمن wget.

   ```
   docker exec my-container wget -qO- http://host.docker.internal:8000
   ```

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

1. في الحاوية، استخدم `host.docker.internal` بدلًا من `localhost`. يدعم Docker Desktop وOrbStack هذا الاسم.
2. اضبط العنوان في إعدادات التطبيق، مثلًا في متغير بيئة.

   ```
   docker run -e API_URL=http://host.docker.internal:8000 my-image
   ```
3. مع OrbStack، يمكنك استخدام شبكة المضيف بدلًا من ذلك. عندئذ تكون خدمات Mac على `localhost` في الحاوية.

   ```
   docker run --net host my-image
   ```
4. إذا استمر فشل الاتصال، فتحقق من إعدادات جدار حماية macOS. انظر [جدار حماية macOS يحظر الاتصالات الواردة](https://kilobat.app/ar/guides/macos-firewall-incoming).

## باستخدام Kilobat

1. تعمل فحوص Kilobat على Mac، وليس داخل الحاوية. أضف `--context container` للحصول على أمر تشغّله في الحاوية.

   ```
   kilobat why http://localhost:8000 --context container
   ```
2. إذا كانت خدمة مستضافة تتصل بـ Mac، فاستخدم `--context provider`. عندئذ يوضح Kilobat أن localhost خاص وخارج نطاق وصوله.

   ```
   kilobat why http://localhost:8000 --context provider
   ```

## الأسئلة

**هل يعمل host.docker.internal على Linux أيضًا؟**

تغطي هذه الصفحة Mac. في Docker Desktop لـ Mac وOrbStack، يُحل الاسم إلى المضيف.

**لماذا يصل Safari إلى الخدمة بينما لا تستطيع الحاوية ذلك؟**

يعمل Safari على Mac، لذا يشير localhost إلى Mac. للحاوية localhost خاص بها.

## المصادر

- [وثائق Docker: استكشاف إرشادات الشبكات على Docker Desktop](https://docs.docker.com/desktop/features/networking/networking-how-tos/)
- [وثائق OrbStack: شبكات الحاويات](https://docs.orbstack.dev/docker/network)
- [وثائق OrbStack: شبكة المضيف](https://docs.orbstack.dev/docker/host-networking)
- lsof(8)، صفحة دليل مثبّتة مع macOS 27.2

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

## أدلة ذات صلة

- [تعذر الوصول إلى حاوية Docker من Mac](https://kilobat.app/ar/guides/docker-container-from-mac): يشغّل Docker على Mac الحاويات في آلة افتراضية بنظام Linux.
- [جدار حماية macOS يحظر الاتصالات الواردة](https://kilobat.app/ar/guides/macos-firewall-incoming): يتحكم جدار حماية macOS في الاتصالات التي تبدأها حواسيب أخرى إلى Mac.
- [اكتشف سبب تعذر اتصال موقع أو API](https://kilobat.app/ar/guides/recipes/why-cant-it-connect): عندما يعمل الإنترنت ويتعذر الوصول إلى عنوان واحد، يفحص Kilobat كل طبقة بالتتابع.
- [المنفذ قيد الاستخدام بالفعل على Mac](https://kilobat.app/ar/guides/port-already-in-use): يمكن لعملية واحدة فقط الاستماع على منفذ TCP وعنوان معينين.
