使用 Docker 安装 Pi-hole 的完整指南

最后更新: 30月2026

厌倦了每次上网或使用手机应用时都被广告狂轰滥炸?别担心,Pi-hole 提供了一个绝佳的解决方案,它本质上是一个智能 DNS 过滤器。最棒的是,你无需在家里的每台设备上都安装任何东西;该系统在你的网络核心运行,在垃圾内容到达你的屏幕之前就将其拦截并屏蔽。

要搭建这套系统,目前最明智的选择是使用 Docker。通过将 Pi-hole 放在容器中,您可以避免占用计算机操作系统资源,使更新变得极其简单,并最大限度地发挥硬件的性能——无论是树莓派、旧服务器,甚至是运行 Ubuntu 或 Debian 的虚拟机——而不会出现任何服务冲突。

使用 Pi-hole 拦截广告
相关文章:
Pi-hole 广告拦截完整指南

先决条件和场地准备

在深入了解之前,值得一提的是,Pi-hole 非常轻量级。流畅运行它只需要大约512 MB 的内存和 2 到 4 GB 的磁盘空间。至于操作系统,它与使用 systemd 或 sysvinit 的发行版完美兼容,例如 Debian、Ubuntu、Fedora 或 Raspberry Pi OS。

网络是关键所在。为了保证系统稳定运行,Pi-hole 需要一个静态 IP 地址。如果您不想手动配置服务器,可以在路由器上预留一个 IP 地址,这样路由器就会始终为运行 Pi-hole 容器的计算机分配相同的地址。

  什么是 Webminal:用于学习的在线 Linux 终端

使用 Docker 部署 Pi-hole

最简单的设置方法是通过docker-compose.yml文件。这种方法允许您一次性定义所有配置。务必将卷(例如 /etc/pihole 和 /etc-dnsmasq.d)映射到主机上的本地文件夹,这样即使更新容器镜像,也不会丢失所有配置或黑名单。

透明外壳中的树莓派微型计算机,代表 Pi-hole 服务器的硬件。
相关文章:
Pi-hole 和 Unbound 在线隐私保护完整指南

在配置文件中,请注意端口设置。端口 53 是 DNS 服务的核心端口,必须保持空闲。如果容器无法启动,很可能是主机上的systemd-resolved 或 dnsmasq 服务占用了该端口。在这种情况下,您需要禁用冲突的服务,或者配置一个网桥来重定向流量。

如果您决定同时使用 Pi-hole 作为 DHCP 服务器,请记住在 compose 的 cap_add 部分添加NET_ADMIN功能,并且最好使用主机网络模式 (network_mode: host) 以避免连接问题。

初始设置和访问管理

执行命令后 docker-compose up -d系统即将上线。要访问控制面板,请通过您分配的端口(默认端口为 80,但您可以将其更改为 8080 或 89 以避免与其他 Web 服务器冲突)连接到服务器的 IP 地址。如果您没有在环境变量中定义密码…… 网页密码系统会生成一个随机值,您可以通过以下命令查看日志来找到它。 docker logs pihole | grep random.

为了提高安全性,最好尽快更改密码。您可以使用以下方式访问容器终端: docker exec -it pihole /bin/bash 并运行命令 pihole -a -p 设置一个自己容易记住但别人难以记住的密码。

  学习 Python 编程的 5 个工具

上游过滤和DNS优化

为了确保 Pi-hole 在无法识别地址时知道该向哪个 DNS 服务器查询,您需要配置一个上游 DNS 服务器。Quad9 是一个非常可靠的选择只需在 DNS 设置选项卡中选择其过滤的服务器(例如 9.9.9.9)即可。这可以为您的浏览活动增加一层额外的安全性和隐私保护。

Pi-hole 的核心在于其屏蔽列表。如果您想从一份可靠的列表开始,可以添加StevenBlack的列表。无论何时修改列表,无论是使用 SQLite3 删除条目还是添加新的 URL,都必须前往“工具”菜单并运行“更新 Gravity”命令,以便刷新数据库并使更改生效。

进阶技巧:本地域名和管理

如果您在家中使用多种服务,您可以创建 本地域名 为了避免记住 IP 地址,请创建一个名为 `.ips` 的文件。 local.list 在已挂载的 Pi-hole 卷上,定义 IP 和域名格式。然后,创建一个引用该列表的 dnsmasq 配置文件,并重启容器。

无需访问网站即可管理系统,您可以从主机运行一些非常有用的命令。例如,要将域名添加到黑名单,请使用`pihole -b mydomain.com`;要暂时禁用过滤 10 分钟,可以使用`pihole disable 10m`,这在误屏蔽合法网站时非常方便。

通过结合适中的硬件和 Docker 的灵活性,确保 53 端口畅通,并正确配置数据卷以持久化数据,完​​全可以掌控家庭广告。一旦您调整了路由器上的 DNS 设置并优化了 Gravity 列表,您就能在所有设备上享受更流畅、更快速的网络体验。

树莓派开发板的特写镜头,其电子元件、微芯片和端口清晰可见,非常适合用来展示教程的主要硬件。
相关文章:
树莓派上 AdGuard Home 安装与优化完整指南