
jacklul/pihole本镜像是基于官方 Pi-hole 镜像构建的增强版本,集成了 pihole-updatelists 脚本,旨在简化和自动化Pi-hole广告拦截列表的管理与更新流程。
主要用途:提供DNS级别的网络广告、跟踪器和***域名拦截功能,并通过集成的pihole-updatelists脚本实现广告拦截列表的自动化更新、多源列表聚合及自定义规则管理,适用于家庭或小型网络环境的广告过滤需求。
bashdocker run -d \ --name pihole-updatelists \ -p 53:53/tcp -p 53:53/udp \ -p 80:80 \ -e TZ="Asia/Shanghai" \ -e WEBPASSWORD="your_secure_password" \ -e SERVERIP="192.168.1.100" \ -e PIHOLE_DNS_1="8.8.8.8" -e PIHOLE_DNS_2="8.8.4.4" \ -e UPDATELISTS_AUTOUPDATE="true" \ -e UPDATELISTS_INTERVAL="24h" \ -v "$(pwd)/pihole:/etc/pihole" \ -v "$(pwd)/dnsmasq.d:/etc/dnsmasq.d" \ --restart=unless-stopped \ jacklul/pihole-updatelists:latest # 假设镜像名称为jacklul/pihole-updatelists,具体以实际为准
创建 docker-compose.yml 文件:
yamlversion: "3" services: pihole: image: jacklul/pihole-updatelists:latest # 替换为实际镜像名称和标签 container_name: pihole-updatelists restart: unless-stopped ports: - "53:53/tcp" - "53:53/udp" - "80:80" # Web管理界面端口(可自定义为其他端口,如8080:80) environment: # 基础配置(继承自官方Pi-hole) - TZ=Asia/Shanghai - WEBPASSWORD=your_secure_password # 必填:Web界面登录密码 - SERVERIP=192.168.1.100 # 主机IP地址 - PIHOLE_DNS_1=8.8.8.8 # 上游DNS服务器1 - PIHOLE_DNS_2=8.8.4.4 # 上游DNS服务器2 # pihole-updatelists配置(详细参数见GitHub文档) - UPDATELISTS_AUTOUPDATE=true # 启用自动更新 - UPDATELISTS_INTERVAL=24h # 每24小时更新一次列表 - UPDATELISTS_URLS=[***] # 自定义列表URL(示例) volumes: - ./pihole:/etc/pihole # 持久化Pi-hole配置和列表数据 - ./dnsmasq.d:/etc/dnsmasq.d # dnsmasq配置文件 cap_add: - NET_ADMIN # 部分环境需此权限修改网络配置(如DNS端口占用时)
| 环境变量 | 说明 | 示例值 |
|---|---|---|
TZ | 时区设置,用于日志时间和定时任务(如列表更新)。 | Asia/Shanghai |
WEBPASSWORD | Web管理界面登录密码(必填,建议使用强密码)。 | SecurePass123! |
SERVERIP | 主机IP地址,用于Web界面显示和客户端DNS指向。 | 192.168.1.100 |
PIHOLE_DNS_1 | 上游DNS服务器1(如Google DNS、Cloudflare DNS等)。 | 8.8.8.8 |
PIHOLE_DNS_2 | 上游DNS服务器2(可选,用于冗余)。 | 8.8.4.4 |
详细配置请参考 pihole-updatelists官方文档,以下为常用参数:
| 环境变量 | 说明 | 示例值 |
|---|---|---|
UPDATELISTS_AUTOUPDATE | 是否启用列表自动更新(true/false)。 | true |
UPDATELISTS_INTERVAL | 自动更新间隔(支持s/m/h/d单位,如12h表示每12小时更新)。 | 24h |
UPDATELISTS_URLS | 自定义拦截列表URL(多个URL用逗号分隔,覆盖默认列表)。 | [***] |
UPDATELISTS_CONFIG | 自定义配置文件路径(默认使用 /etc/pihole/updatelists.conf)。 | /etc/pihole/custom-updatelists.conf |
| 本地路径 | 容器内路径 | 说明 |
|---|---|---|
./pihole | /etc/pihole | 持久化存储Pi-hole配置、拦截列表数据库、统计数据等(必须挂载,避免重启后配置丢失)。 |
./dnsmasq.d | /etc/dnsmasq.d | 存储dnsmasq自定义配置(如额外DNS规则、端口修改等,可选挂载)。 |
http://<主机IP> 访问Pi-hole管理界面,使用 WEBPASSWORD 登录。Settings > Blocklists 中查看列表状态,或通过容器日志验证更新任务:
bashdocker logs pihole-updatelists | grep "updatelists"
./pihole 目录,防止数据丢失。WEBPASSWORD 需设置强密码,且避免将Web管理界面暴露在公网。manifest unknown 错误
TLS 证书验证失败
DNS 解析超时
410 错误:版本过低
402 错误:流量耗尽
身份认证失败错误
429 限流错误
凭证保存错误
来自真实用户的反馈,见证轩辕镜像的优质服务