Pi-hole Docker: كيفية تشغيل DNS محلي مستقر باستخدام Docker Compose

Pi-hole Docker يمكن أن يكون حلًّا قويًا لتعطيل الإعلانات وحماية الشبكة عبر DNS محلي مستقر وسهل إدارة. في هذا المقال أشرح متطلبات التشغيل، إعداد Docker Compose نموذجي، ونصائح لزيادة الاعتمادية والأمان في بيئة المنزل أو الهوم لاب.
لماذا تشغيل Pi-hole عبر Docker؟

استخدام Pi-hole داخل حاوية Docker يجعل النشر قابلاً للنقل، يسهل التحديث والنسخ الاحتياطي، ويسمح بفصل الخدمات على نفس الجهاز. أما Docker Compose فيسهل تعريف التكوين وتشغيله بصيغة واحدة قابلة للمراجعة والتحكم.
متطلبات أساسية
- جهاز صغير مستمر التشغيل (Raspberry Pi 4، NUC، أو NAS يدعم Docker).
- نظام تشغيل يدعم Docker وDocker Compose.
- عنوان IP ثابت على الشبكة المحلية أو حجز DHCP ثابت للمضيف الذي يشغل الحاوية.
- نسخة احتياطية من إعدادات الشبكة قبل التغيير (للتراجع عند الحاجة).
Pi-hole Docker — خطوات تشغيل سريعة
فيما يلي خطوات موجزة ثم نعرض نموذج docker-compose.yml وتفسيرات لكل خيار:
- تثبيت Docker وDocker Compose على الجهاز المضيف.
- إنشاء مجلد للمشروع مع مجلدات للبيانات (مثل /srv/pihole) ومنح الأذونات المناسبة.
- كتابة ملف docker-compose.yml يحتوي على خدمة Pi-hole مع خرائط وحدات التخزين، متغيرات البيئة، وتهيئة الشبكة.
- تعيين الجهاز كمزوّد DNS داخل الراوتر أو ضبط DHCP ليعطي عناوين DNS لعملاء الشبكة إلى عنوان Pi-hole.
- مراقبة السجلات والاختبار، ثم تفعيل سياسات الحظر وقوائم التصفية المناسبة.
نموذج مبسّط لملف docker-compose.yml
هذا مثال مبسط يوضح الفكرة العامة (تجنّب استخدامه حرفيًا دون تعديل على مساراتك ومستخدمك):
version: '3.8'
services:
pihole:
image: pihole/pihole:latest
restart: unless-stopped
environment:
TZ: "Your/Timezone"
WEBPASSWORD: "change-this-password"
volumes:
- ./etc-pihole/:/etc/pihole/
- ./etc-dnsmasq.d/:/etc/dnsmasq.d/
ports:
- "53:53/tcp"
- "53:53/udp"
- "80:80"
cap_add:
- NET_ADMIN
networks:
pihole_net:
ipv4_address: 192.168.1.2
networks:
pihole_net:
driver: bridge
ipam:
config:
- subnet: 192.168.1.0/24
إعداد الشبكة وتكامل DHCP
الطريقة الأكثر موثوقية هي تعيين Pi-hole كخادم DNS في الراوتر، أو تعطيل DHCP في الراوتر وتفعيل DHCP على جهاز آخر موثوق (مثل خادم صغير أو راوتر يدعم ذلك). تجنّب تشغيل DHCP داخل Pi-hole ما لم تكن متأكدًا من عدم وجود تعارض مع الراوتر.
إذا أردت فصل الخدمة أمنياً، يمكنك تشغيل الحاوية على شبكة جسر مخصّصة وإعطاءها عنوان IP ثابت كما في المثال السابق.
نسخ احتياطي، تحديث ومراقبة
- احتفظ بنسخ منتظمة من مجلدات البيانات.
- راجع سجلات Pi-hole وواجهة الويب للتأكد من أن عملاء الشبكة ينجحون في حل أسماء النطاق.
تحسين الاعتمادية والأمان
- ضع مراقبة بسيطة (مثل Prometheus أو تنبيهات عبر البريد) لمراقبة حالة الحاويات.
- حدّث صور الحاوية بانتظام واختبر التحديث في بيئة غير إنتاجية إن أمكن.
- فكّر في تكوين حل احتياطي DNS خارجي (مثل DoH/DoT) للعمل عند فشل الاتصال بالإنترنت؛ راجع مقالنا عن DNS over HTTPS وكيف تفرضه على النظام والمتصفح لمزيد من الخلفية التقنية.
- إذا كان لديك هوم لاب متعدد الحاويات، قد يفيدك الاطّلاع على نصائح إدارة الحاويات في دليلنا عن تشغيل حاويات Docker في الهوم لاب.
ماذا لو تعطل Pi-hole أو حاجب خدمة؟
اجعل لديك خطة استرجاع سريعة: إعداد DNS احتياطي في الراوتر (مثل 1.1.1.1 أو 9.9.9.9) يمكن أن يمنع انقطاع الإنترنت للأجهزة إذا توقّف السيرفر المحلي. كما تأكد من الوصول إلى واجهة الإدارة محلياً عبر عنوان IP ثابت.
روابط مفيدة
- الموقع الرسمي لـ Pi-hole — لتحميل الوثائق والصور الرسمية.
- توثيق Docker Compose — للمراجعة الدقيقة لصيغة الملف وخيارات الشبكات والأمان.
أسئلة شائعة FAQ
هل يمكن تشغيل Pi-hole على نفس الجهاز الذي يشغل خدمات أخرى؟
نعم، لكن ضع حاويات منفصلة وفصِّل الموارد مع قيود الشبكة لتجنب تعارض المنافذ. الأفضل إعطاء Pi-hole IP ثابت أو شبكة مخصصة.
هل يؤثر Pi-hole على سرعة الإنترنت؟
عادة لا يؤثر سلباً؛ بل يمكن أن يحسّن تجربة التصفح بتقليل الاستدعاءات إلى أنظمة الإعلانات. ومع ذلك، إعداد سياسات DNS احتياطية يضمن استمرارية الاتصال عند أي خلل.
هل يجب أن أشغل DHCP عبر Pi-hole؟
فقط إذا كان راوتر الشبكة لا يسمح بتعيين DNS بسهولة أو إذا أردت تحكماً كاملاً. تذكر أن تشغيل DHCP في مكانين يؤدي إلى تعارضات؛ اختَر خياراً واحداً.
الخاتمة
تشغيل Pi-hole Docker باستخدام Docker Compose يوفّر طريقة قابلة للصيانة لإدارة DNS وحظر الإعلانات على الشبكة المنزلية. اتبع خطوات النسخ الاحتياطي، ضبط الشبكة بحذر، ومراقبة الحالة لتضمن بيئة مستقرة وآمنة.



