Инструменты пользователя

Инструменты сайта


service:pihole

Различия

Показаны различия между двумя версиями страницы.

Ссылка на это сравнение

Предыдущая версия справа и слеваПредыдущая версия
Следующая версия
Предыдущая версия
service:pihole [04.10.2024 10:11] viacheslavservice:pihole [27.03.2025 21:59] (текущий) – [Docker] viacheslav
Строка 15: Строка 15:
 pihole -up pihole -up
 </code> </code>
 +:!: В 6-й версии изменились названия переменных и т. д. [[https://docs.pi-hole.net/docker/upgrading/v5-v6/|Upgrading from v5.x]]
 ===== Установка ===== ===== Установка =====
 ==== Docker ==== ==== Docker ====
Строка 27: Строка 27:
 </code> </code>
 https://github.com/pi-hole/docker-pi-hole?tab=readme-ov-file#installing-on-ubuntu-or-fedora https://github.com/pi-hole/docker-pi-hole?tab=readme-ov-file#installing-on-ubuntu-or-fedora
 +
 +Если systemd-resolve был выключен, то нужно привязать порт 53 к конкретному адресу хоста, иначе контейнеры не смогут разрешать внешние имена.
 +<code yaml>
 +    ports:
 +      - 192.168.1.15:53:53/tcp
 +      - 192.168.1.15:53:53/udp
 +</code>
 +https://discourse.pi-hole.net/t/solve-dns-resolution-in-other-containers-when-using-docker-pihole/31413
  
 <code yaml> <code yaml>
Строка 35: Строка 43:
     environment:     environment:
       TZ: 'Europe/Moscow'       TZ: 'Europe/Moscow'
-      WEBPASSWORD: 'Qwerty123456' +      FTLCONF_webserver_api_password: 'Qwerty123456' 
-      WEB_PORT: 5001 +      FTLCONF_webserver_port: 5001 
-      VIRTUAL_HOST: 'bva.dyndns.info' +      FTLCONF_dns_upstreams: '8.8.8.8;8.8.4.4;2001:4860:4860:0:0:0:0:8888;2001:4860:4860:0:0:0:0:8844;208.67.222.222;208.67.220.220;2620:119:35::35
-      PIHOLE_DNS_: '8.8.8.8;8.8.4.4;2001:4860:4860:0:0:0:0:8888;2001:4860:4860:0:0:0:0:8844;208.67.222.222;208.67.220.220;2620:119:35::35+
 ;2620:119:53::53;84.200.69.80;84.200.70.40;2001:1608:10:25:0:0:1c04:b12f;2001:1608:10:25:0:0:9249:d69b;1.1.1.1;1.0.0.1;2606:4700:4700::11 ;2620:119:53::53;84.200.69.80;84.200.70.40;2001:1608:10:25:0:0:1c04:b12f;2001:1608:10:25:0:0:9249:d69b;1.1.1.1;1.0.0.1;2606:4700:4700::11
 11;2606:4700:4700::1001' 11;2606:4700:4700::1001'
-      DNSSEC: true +      FTLCONF_dns_dnssec: true 
-      DNSMASQ_LISTENING: 'all'+      FTLCONF_dns_listeningMode: 'all'
     ports:     ports:
-      - 53:53/tcp +      - 192.168.1.15:53:53/tcp 
-      - 53:53/udp+      - 192.168.1.15:53:53/udp
       - 5001:5001       - 5001:5001
     volumes:     volumes:
       - '~/volumes/pihole/pihole:/etc/pihole'       - '~/volumes/pihole/pihole:/etc/pihole'
       - '~/volumes/pihole/dnsmasq:/etc/dnsmasq.d'       - '~/volumes/pihole/dnsmasq:/etc/dnsmasq.d'
- 
 </code> </code>
  
Строка 83: Строка 89:
 </code> </code>
  
-===== Ошибки =====+===== Ошибки, проблемы ===== 
 +==== Контейнер не стартует после перезагрузки хоста ==== 
 +Проблема возникает, когда DNS-порты привязаны к IP хоста. Если не указывать IP, всё работает. 
 +<code yaml> 
 +    ports: 
 +      - 192.168.1.15:53:53/tcp 
 +      - 192.168.1.15:53:53/udp 
 +</code> 
 +Дело в том, что сеть не успевает полностью подняться до запуска контейнера и его запуск обламывается. Для решения можно использовать следующий костыль: 
 + 
 +<code bash> 
 +# Сделать override-файл для докер-демона, запускающий скрипт 
 +systemctl edit docker 
 + 
 +[Service] 
 +# wait for the network to be up 
 +ExecStartPre=/etc/systemd/system/docker.service.d/wait_for_network.sh 
 +</code> 
 + 
 +<code bash> 
 +# Скрипт 
 +cat << EOF > /etc/systemd/system/docker.service.d/wait_for_network.sh 
 +#!/bin/bash 
 +ipServerAddress="192.168.1.1" # Адрес роутера, например 
 +cycleLength=1 # The length of a wait cycle in seconds 
 +timeout=15    # Maximum number of seconds to wait before giving up 
 + 
 +elapsedTime=0 
 +ping -c 1 \$ipServerAddress > /dev/null 2>&
 +while [ \$? -ne 0 ]; do 
 +    if [ "\$elapsedTime" -ge "\$timeout" ]; then 
 +        # Timeout 
 +        exit 1 
 +    fi 
 + 
 +    elapsedTime=\$((elapsedTime + cycleLength)) 
 +    sleep \$cycleLength 
 +    ping -c 1 \$ipServerAddress > /dev/null 2>&
 +done 
 +EOF 
 + 
 +# Сделать скрипт запускаемым 
 +chmod ug+x /etc/systemd/system/docker.service.d/wait_for_network.sh 
 +</code> 
 +https://discourse.pi-hole.net/t/solved-failed-to-allocate-and-map-port-53-53-after-system-restart/64872/
 ==== DNSMASQ_WARN: reducing DNS packet size for nameserver XXX.XXX.XXX.XXX to 1232 ==== ==== DNSMASQ_WARN: reducing DNS packet size for nameserver XXX.XXX.XXX.XXX to 1232 ====
  
service/pihole.1728036666.txt.gz · Последнее изменение: 04.10.2024 10:11 — viacheslav

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki