AdGuard Home Docker Compose 模版

AdGuard Home Docker Compose 模版

_

概览

编排解释:

  1. 启动 AdGuard Home 容器(版本 v0.107.75,可替换成 latest)。

  2. 映射持久化数据(工作目录和配置文件分别挂载到 ./data/work./data/conf,方便备份和迁移)。

  3. 暴露全协议端口(覆盖 DNS、DHCP、DoH、DoT、QUIC 等常见协议)。

  4. 配置资源限制(通过环境变量控制 CPU 和内存,避免抢占服务器资源)。

yaml

networks:
  1panel-network:
    external: true

services:
  adguardhome:
    container_name: ${CONTAINER_NAME}
    deploy:
      resources:
        limits:
          cpus: ${CPUS}
          memory: ${MEMORY_LIMIT}
    image: adguard/adguardhome:v0.107.75
    labels:
      createdBy: Apps
    networks:
      - 1panel-network
// [!code fold:start]
    ports:
      - ${PANEL_APP_PORT_DNS}:53/tcp
      - ${PANEL_APP_PORT_DNS}:53/udp
      - ${PANEL_APP_PORT_DHCP_1}:67/udp
      - ${PANEL_APP_PORT_DHCP_2}:68/udp
      - ${PANEL_APP_PORT_HTTP_1}:80/tcp
      - ${PANEL_APP_PORT_DOH}:443/tcp
      - ${PANEL_APP_PORT_DOH}:443/udp
      - ${PANEL_APP_PORT_HTTP}:3000/tcp
      - ${PANEL_APP_PORT_DOT}:853/tcp
      - ${PANEL_APP_PORT_QUIC_1}:784/udp
      - ${PANEL_APP_PORT_DOT}:853/udp
      - ${PANEL_APP_PORT_QUIC_2}:8853/udp
      - ${PANEL_APP_PORT_DNS_CRYPT}:5443/tcp
      - ${PANEL_APP_PORT_DNS_CRYPT}:5443/udp
    restart: on-failure:5
    volumes:
      - ./data/work:/opt/adguardhome/work
      - ./data/conf:/opt/adguardhome/conf
      - /opt/1panel/www/sites/dns/ssl:/opt/adguardhome/ssl

细节解释

1. 版本锁定(镜像标签)

使用 adguard/adguardhome:v0.107.75 可以替换成 latest

  • AdGuard Home 的新版本有时会调整配置结构或 API,锁定版本能避免夜间自动更新导致家里网络突然“断网”。

2. 资源控制(deploy 配置)

  • deploy.resources.limits.cpusmemory 通过环境变量CPUS{CPUS} 和 {MEMORY_LIMIT} 注入。

  • AdGuard Home 本身很轻量,一般给 0.5 核 CPU 和 256MB~512MB 内存足够应对几十台设备的 DNS 请求。设置限制可以防止因 DNS 攻击或日志积压拖垮宿主机。

3. 端口映射(全覆盖)

  • DNS 核心:53(TCP/UDP)

  • 安全 DNS:DoH(443)、DoT(853)、DNS-over-QUIC(784/8853)

  • 管理后台:3000(Web UI)

  • DHCP 服务:67/68(UDP)

  • DNSCrypt:5443

  • 注意:该模板默认同时暴露了大量端口,如果你的环境是家庭内网,建议仅开放 53 和 3000,其他端口按需打开即可,减少攻击面。

4. 数据卷与 SSL 证书

  • ./data/work:存放 AdGuard Home 的运行数据(统计、日志等)。

  • ./data/conf:存放核心配置文件 AdGuardHome.yaml

  • ./ssl:映射了宿主机上的 1Panel 站点证书目录,方便直接启用 DoH/DoT 的 HTTPS 证书,免去手动申请和配置证书的麻烦。

5. 重启策略(restart: on-failure:5)

  • always 不同,on-failure:5 表示如果容器异常退出,最多重启 5 次,5 次后如果还是失败则停止尝试。这比一直死循环重启更适合 AdGuard 这种作为网络基础设施的服务,避免因反复崩溃浪费资源。


使用场景与注意事项

适用场景

  • 家庭 / 小型网络 DNS 防污染:配合规则列表实现广告拦截和隐私保护。

  • 局域网 DHCP 服务:接管路由器的 DHCP 功能,实现更精细的 IP 管理。

  • 外部加密 DNS 服务器:通过 DoH/DoT 为移动设备提供安全 DNS 解析(需公网 IP 配合 SSL 证书)。

注意事项

  • 端口冲突:家里用 53 端口转发时,宿主机不能有 systemd-resolveddnsmasq 提前占用 53 端口,否则容器起不来。需要先关闭宿主机的 DNS 服务。

  • 环境变量:这个模版依赖CONTAINER_NAME{CONTAINER\_NAME}、{PANEL_APP_PORT_*} 等 1Panel 应用商店的环境变量。如果脱离 1Panel 直接使用,需要把 ${} 替换为实际的端口号,如 - 3000:3000

  • 防火墙:如果是公网暴露,务必在防火墙只允许信任 IP 访问 3000 管理后台,否则容易被扫描爆破。

  • SSL 证书路径/opt/1panel/www/sites/dns/ssl 是 1Panel 特定路径,如果用其他证书管理工具,记得替换成你实际存放证书的路径。

Halo 博客 Docker Compose 模版(PostgreSQL + 1Panel)2026-07-29
SearXNG Docker 部署教程(基于 1Panel)2026-07-29

评论区