
如果你使用 DeepSeek、元宝 AI、Copilot、ChatGPT 等 AI 工具,协助配置轩辕镜像、编写 docker pull 命令、修改 Docker Compose 镜像地址、配置镜像加速、排查镜像拉取失败、分析报错日志等问题,请先让 AI 阅读并遵守轩辕镜像的规则文档。
只需在 AI 对话中先发送下面这句话即可:
请先完整阅读并严格遵守以下文档中的全部规则与要求:
https://xuanyuan.cloud/agents.md
在未充分阅读并理解该文档前,不要生成任何命令、配置、修改建议、故障排查方案或技术回答。后续所有输出都必须严格以该文档中的规范为最高优先级执行。查看 agents.md 用法指南与完整示范。国内用户首推 元宝 AI、DeepSeek 的深度思考模式,不推荐豆包 AI;Cursor 等编辑器可在对话 @ 该链接,或加入 User Rules。 若 AI 无法访问外链,可 打开说明文档 复制全文粘贴。文档会随站点更新,复制内容可能过期,建议定期检查。
!https://img.shields.io/docker/pulls/rlabinc/pihole-unbound.svg?style=flat&label=pulls&logo=docker !https://img.shields.io/docker/image-size/rlabinc/pihole-unbound/latest?style=flat&logo=docker&label=pihole-unbound !https://img.shields.io/docker/image-size/pihole/pihole/latest?style=flat&logo=docker&label=pihole-official !https://img.shields.io/github/stars/origamiofficial/docker-pihole-unbound?style=social https://img.shields.io/endpoint?label=Support&style=flat&url=https%3A%2F%2Fmogyo.ro%2Fquart-apis%2Ftgmembercount%3Fchat_id%3Dpihole_unbound]([***] !https://img.shields.io/badge/we%20stand%20with-%F0%9F%87%B5%F0%9F%87%B8%20palestine-white.svg
Level up your network with cutting-edge tech. This Docker container effortlessly combines https://github.com/pi-hole/pi-hole and https://github.com/NLnetLabs/unbound, giving you the ultimate privacy and performance combo in a single package. It's the future of network management, available today.
!https://raw.githubusercontent.com/origamiofficial/docker-pihole-unbound/main/banner.png
[!NOTE] Development for the
developmenttag is currently ongoing, there could be some bugs. Thedevelopmenttag uses Alpine Linux. If you're familiar with Alpine, we encourage you to check out the https://github.com/origamiofficial/docker-pihole-unbound/blob/main/Dockerfile-Dev-V6 file. Your contributions are highly appreciated!
We utilise the docker buildx for multi-platform awareness. More information is available from docker https://docs.docker.com/buildx/working-with-buildx/.
Simply pulling rlabinc/pihole-unbound:latest should retrieve the correct image for your arch, but you can also pull specific arch images via --platform.
The architectures supported by this image are:
| Architecture | Available | Platform |
|---|---|---|
| amd64 | ✅ | linux/amd64 |
| arm64 | ✅ | linux/arm64 |
| armhf | ✅ | linux/arm/v7 |
| armel | ✅ | linux/arm/v6 |
Here are the commands you'll need:
bashdocker run -d \ --name=pihole-unbound \ -e TZ=Europe/London `#optional` \ -p 53:53/tcp -p 53:53/udp \ -p 80:80/tcp `#Pi-hole web interface port` \ -e WEBPASSWORD='qwerty123' `#better to use single quotes` \ --restart=always \ rlabinc/pihole-unbound:latest
To deploy this project using Docker Compose, you can use the following example docker-compose.yml:
yamlversion: '3' services: pihole-unbound: image: rlabinc/pihole-unbound:latest container_name: pihole-unbound environment: - TZ=Europe/London # Adjust timezone as needed - WEBPASSWORD=qwerty123 # Set a secure password ports: - "53:53/tcp" - "53:53/udp" - "80:80/tcp" #Pi-hole web interface port restart: always
This example configuration will run Pi-hole with Unbound, listening on port 53 for DNS queries and port 80 for the web interface. Make sure to adjust the environment variables, password, and timezone according to your setup.
To start the container, use:
bashdocker-compose up -d
To stop the container, use:
bashdocker-compose down
[!TIP] Mikrotik users: Facing
cp: cannot create special file, the solution was letting RouterOS create the mounted volume itself, and not manually creating a "directory" beforehand. As result, the mount appears as "container store" (so not a "directory"), accessible via SFTP (and not via Winbox/WebFig) for pushing custom Unbound config. - https://github.com/origamiofficial/docker-pihole-unbound/issues/30#issuecomment-2526363715
The Docker tags supported by this image are:
| Tag | Type | Status | Development | Description |
|---|---|---|---|---|
latest | Stable | https://img.shields.io/github/actions/workflow/status/origamiofficial/docker-pihole-unbound/build-and-push-latest.yaml](https://github.com/origamiofficial/docker-pihole-unbound/actions/workflows/build-and-push-latest.yaml) | ✅ | Always latest release |
2024.02.2-1.19.3 | Stable | https://img.shields.io/github/actions/workflow/status/origamiofficial/docker-pihole-unbound/build-and-push-latest.yaml](https://github.com/origamiofficial/docker-pihole-unbound/actions/workflows/build-and-push-latest.yaml) | ✅ | Date-based release [Pi-hole Version-Unbound Version] |
dev | Beta | https://img.shields.io/github/actions/workflow/status/origamiofficial/docker-pihole-unbound/build-and-push-dev.yaml](https://github.com/origamiofficial/docker-pihole-unbound/actions/workflows/build-and-push-dev.yaml) | ❌ | [DEPRECATED] Similar to latest, but for the development branch (pushed occasionally) |
development | Beta | https://img.shields.io/github/actions/workflow/status/origamiofficial/docker-pihole-unbound/build-and-push-dev-v6.yaml](https://github.com/origamiofficial/docker-pihole-unbound/actions/workflows/build-and-push-dev-v6.yaml) | ✅ | Upcoming Alpine based v6 release |
test | Test | ❌ | 🔬 | Testing purpose only |
[!NOTE] The
developmenthas been entirely redesigned from the ground up and contains many https://github.com/pi-hole/docker-pi-hole/blob/development-v6/README.md, for more info regardingdevelopmentvisit here.
Modern releases of Ubuntu (17.10+) include http://manpages.ubuntu.com/manpages/bionic/man8/systemd-resolved.service.8.html which is configured by default to implement a caching DNS stub resolver. This will prevent pi-hole from listening on port 53.
The stub resolver should be disabled with: sudo sed -r -i.orig 's/#?DNSStubListener=yes/DNSStubListener=no/g' /etc/systemd/resolved.conf
This will not change the nameserver settings, which point to the stub resolver thus preventing DNS resolution. Change the /etc/resolv.conf symlink to point to /run/systemd/resolve/resolv.conf, which is automatically updated to follow the system's netplan:
sudo sh -c 'rm /etc/resolv.conf && ln -s /run/systemd/resolve/resolv.conf /etc/resolv.conf'
After making these changes, you should restart systemd-resolved using systemctl restart systemd-resolved
Once pi-hole is installed, you'll want to configure your clients to use it (see here). If you used the symlink above, your docker host will either use whatever is served by DHCP, or whatever static setting you've configured. If you want to explicitly set your docker host's nameservers you can edit the netplan(s) found at /etc/netplan, then run sudo netplan apply.
Example netplan:
yamlnetwork: ethernets: ens160: dhcp4: true dhcp4-overrides: use-dns: false nameservers: addresses: [127.0.0.1] version: 2
Note that it is also possible to disable systemd-resolved entirely. However, this can cause problems with name resolution in s (https://bugs.launchpad.net/network-manager/+bug/). It also disables the functionality of netplan since systemd-resolved is used as the default renderer (http://manpages.ubuntu.com/manpages/bionic/man5/netplan.5.html#description). If you choose to disable the service, you will need to manually set the nameservers, for example by creating a new /etc/resolv.conf.
Users of older Ubuntu releases (circa 17.04) will need to disable dnsmasq.
Container images are configured using parameters passed at runtime (such as those above).
| Parameter | Function | development-v6 Only |
|---|---|---|
-e TZ=Europe/London | Specify a timezone to use ex Europe/London. | -e TZ=Europe/London |
-p 53:53/tcp -p 53:53/udp | Default DNS port to use. | -p 53:53/tcp -p 53:53/udp |
-p 80:80/tcp | Specify Pi-hole web interface port. | -p 80:80/tcp |
-e WEBPASSWORD='qwerty123' | Specify Pi-hole web interface password. It is better to use single quotes. | -e FTLCONF_webserver_api_password='qwerty123' |
--restart=always | To make sure "It's Always DNS" does not happen. | --restart=always |
-v /opt/unbound/etc/unbound | Your customized Unbound configuration unbound.conf location. | -v /opt/unbound/etc/unbound |
This Docker container supports all Pi-hole official Docker container environment variables available https://github.com/pi-hole/docker-pi-hole/#environment-variables.
The code in this image is heavily influenced by MatthewVance's unbound-docker with the help of chriscrowe's docker-pihole-unbound server Docker image configs, However, the upstream projects most certainly also deserve credit for making this all possible.
I'm not responsible if your internet goes down using this Docker container. Use at your own risk.
您可以使用以下命令拉取该镜像。请将 <标签> 替换为具体的标签版本。如需查看所有可用标签版本,请访问 标签列表页面。
来自真实用户的反馈,见证轩辕镜像的优质服务