
如果你使用 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 无法访问外链,可 打开说明文档 复制全文粘贴。文档会随站点更新,复制内容可能过期,建议定期检查。
本仓库包含以下Docker镜像:pdns-mysql、pdns-pgsql、pdns-recursor和pdns-admin。镜像pdns-mysql包含可完全配置的PowerDNS 4.x权威服务器,带有MySQL后端(不含MySQL服务器)。镜像pdns-pgsql包含可完全配置的PowerDNS 4.x权威服务器,带有PostgreSQL后端(不含PostgreSQL服务器)。镜像pdns-recursor包含可完全配置的PowerDNS 4.x递归服务器。镜像pdns-admin包含https://github.com/PowerDNS-Admin/PowerDNS-Admin Web应用的前端(Caddy)和后端(uWSGI),该应用基于Flask编写,用于管理PowerDNS服务器。
pdns-mysql、pdns-pgsql和pdns-recursor镜像还提供alpine标签(感谢@PoppyPop)。
所有镜像均可在Docker Hub获取:
https://hub.docker.com/r/pschiffe/pdns-mysql/ https://hub.docker.com/r/pschiffe/pdns-pgsql/ https://hub.docker.com/r/pschiffe/pdns-recursor/ https://hub.docker.com/r/pschiffe/pdns-admin/
源码GitHub仓库:https://github.com/pschiffe/docker-pdns
 !Docker镜像大小(alpine标签) !Docker拉取次数
https://hub.docker.com/r/pschiffe/pdns-mysql/
带有PowerDNS 4.x权威服务器和MySQL后端的Docker镜像,需外部MySQL服务器。MySQL配置环境变量:
(名称=默认值) PDNS_gmysql_host=mysql PDNS_gmysql_port=3306 PDNS_gmysql_user=root PDNS_gmysql_password=powerdns PDNS_gmysql_dbname=powerdns
若与官方https://hub.docker.com/_/mariadb/%E9%95%9C%E5%83%8F%E4%BB%A5%E5%88%AB%E5%90%8D%60mysql%60%E9%93%BE%E6%8E%A5%EF%BC%8C%E5%8F%AF%E8%87%AA%E5%8A%A8%E9%85%8D%E7%BD%AE%E8%BF%9E%E6%8E%A5%EF%BC%88%E6%97%A0%E9%9C%80%E6%8C%87%E5%AE%9A%E4%B8%8A%E8%BF%B0%E5%8F%98%E9%87%8F%EF%BC%89%E3%80%82%E6%95%B0%E6%8D%AE%E5%BA%93%E8%A1%A8%E7%BC%BA%E5%A4%B1%E6%97%B6%E4%BC%9A%E8%87%AA%E5%8A%A8%E5%88%9D%E5%A7%8B%E5%8C%96%E3%80%82
PowerDNS服务器通过环境变量配置:以PDNS_为前缀的变量会去除前缀并将_替换为-后写入/etc/pdns/pdns.conf。例如PDNS_gmysql_host=mysql会变为gmysql-host=mysql。支持SUPERMASTER_IPS变量配置超级主服务器(多IP用空格分隔),详情见文档。所有配置项见官方文档。
主服务器(启用API及从服务器配置):
docker run -d -p 53:53 -p 53:53/udp --name pdns-master \ --hostname ns1.example.com --link mariadb:mysql \ -e PDNS_master=yes \ -e PDNS_api=yes \ -e PDNS_api_key=secret \ -e PDNS_webserver=yes \ -e PDNS_webserver_address=0.0.0.0 \ -e PDNS_webserver_password=secret2 \ -e PDNS_version_string=anonymous \ -e PDNS_default_ttl=1500 \ -e PDNS_allow_axfr_ips=172.5.0.21 \ -e PDNS_only_notify=172.5.0.21 \ pschiffe/pdns-mysql
从服务器(配置超级主服务器):
docker run -d -p 53:53 -p 53:53/udp --name pdns-slave \ --hostname ns2.example.com --link mariadb:mysql \ -e PDNS_gmysql_dbname=powerdnsslave \ -e PDNS_slave=yes \ -e PDNS_version_string=anonymous \ -e PDNS_disable_axfr=yes \ -e PDNS_allow_notify_from=172.5.0.20 \ -e SUPERMASTER_IPS=172.5.0.20 \ pschiffe/pdns-mysql
!Docker镜像大小(latest标签) !Docker镜像大小(alpine标签) !Docker拉取次数
https://hub.docker.com/r/pschiffe/pdns-pgsql/
带有PowerDNS 4.x权威服务器和PostgreSQL后端的Docker镜像,需外部PostgreSQL服务器。PostgreSQL配置环境变量:
(名称=默认值) PDNS_gpgsql_host=pgsql PDNS_gpgsql_port=5432 PDNS_gpgsql_user=postgres PDNS_gpgsql_password=powerdns PDNS_gpgsql_dbname=powerdns
若与官方https://hub.docker.com/_/postgres%E9%95%9C%E5%83%8F%E4%BB%A5%E5%88%AB%E5%90%8D%60pgsql%60%E9%93%BE%E6%8E%A5%EF%BC%8C%E5%8F%AF%E8%87%AA%E5%8A%A8%E9%85%8D%E7%BD%AE%E8%BF%9E%E6%8E%A5%E3%80%82%E6%95%B0%E6%8D%AE%E5%BA%93%E8%A1%A8%E7%BC%BA%E5%A4%B1%E6%97%B6%E8%87%AA%E5%8A%A8%E5%88%9D%E5%A7%8B%E5%8C%96%E3%80%82%E9%85%8D%E7%BD%AE%E6%96%B9%E5%BC%8F%E4%B8%8Epdns-mysql%E7%9B%B8%E5%90%8C%EF%BC%88%E9%80%9A%E8%BF%87%60PDNS_%60%E5%89%8D%E7%BC%80%E5%8F%98%E9%87%8F%EF%BC%89%EF%BC%8C%E6%94%AF%E6%8C%81%60SUPERMASTER_IPS%60%E5%8F%98%E9%87%8F%E3%80%82%E6%89%80%E6%9C%89%E9%85%8D%E7%BD%AE%E9%A1%B9%E8%A7%81%E5%AE%98%E6%96%B9%E6%96%87%E6%A1%A3%E3%80%82
主服务器(启用API及从服务器配置):
docker run -d -p 53:53 -p 53:53/udp --name pdns-master \ --hostname ns1.example.com --link postgres:pgsql \ -e PDNS_master=yes \ -e PDNS_api=yes \ -e PDNS_api_key=secret \ -e PDNS_webserver=yes \ -e PDNS_webserver_address=0.0.0.0 \ -e PDNS_webserver_password=secret2 \ -e PDNS_version_string=anonymous \ -e PDNS_default_ttl=1500 \ -e PDNS_allow_axfr_ips=172.5.0.21 \ -e PDNS_only_notify=172.5.0.21 \ pschiffe/pdns-pgsql
从服务器(配置超级主服务器):
docker run -d -p 53:53 -p 53:53/udp --name pdns-slave \ --hostname ns2.example.com --link postgres:pgsql \ -e PDNS_gpgsql_dbname=powerdnsslave \ -e PDNS_slave=yes \ -e PDNS_version_string=anonymous \ -e PDNS_disable_axfr=yes \ -e PDNS_allow_notify_from=172.5.0.20 \ -e SUPERMASTER_IPS=172.5.0.20 \ pschiffe/pdns-pgsql
!Docker镜像大小(latest标签) !Docker镜像大小(alpine标签) !Docker拉取次数
https://hub.docker.com/r/pschiffe/pdns-recursor/
带有PowerDNS 4.x递归服务器的Docker镜像。通过环境变量配置:以PDNS_为前缀的变量去除前缀并将_替换为-后写入/etc/pdns/recursor.conf。所有配置项见官方文档。
启用API的递归服务器:
docker run -d -p 53:53 -p 53:53/udp --name pdns-recursor \ -e PDNS_api_key=secret \ -e PDNS_webserver=yes \ -e PDNS_webserver_address=0.0.0.0 \ -e PDNS_webserver_password=secret2 \ pschiffe/pdns-recursor
!Docker镜像大小(latest标签) !Docker拉取次数
https://hub.docker.com/r/pschiffe/pdns-admin/
包含https://github.com/PowerDNS-Admin/PowerDNS-Admin Web应用的Docker镜像,用于管理PowerDNS服务器,需外部MySQL或PostgreSQL服务器。该镜像包含uWSGI(处理Python应用请求)和Caddy(处理静态文件及可选HTTPS),区别于仅含gunicorn的官方镜像。
MySQL环境变量:
(名称=默认值) PDNS_ADMIN_SQLA_DB_HOST=mysql PDNS_ADMIN_SQLA_DB_PORT=3306 PDNS_ADMIN_SQLA_DB_USER=root PDNS_ADMIN_SQLA_DB_PASSWORD=powerdnsadmin PDNS_ADMIN_SQLA_DB_NAME=powerdnsadmin
PostgreSQL环境变量:
PDNS_ADMIN_SQLA_DB_TYPE=postgres PDNS_ADMIN_SQLA_DB_HOST=pgsql PDNS_ADMIN_SQLA_DB_PORT=5432 PDNS_ADMIN_SQLA_DB_USER=postgres PDNS_ADMIN_SQLA_DB_PASSWORD=powerdnsadmin PDNS_ADMIN_SQLA_DB_NAME=powerdnsadmin
与对应数据库镜像链接(别名mysql/pgsql)可自动配置,表缺失时自动初始化。
需配置PowerDNS服务器API(示例配置:api=yes、api-key=secret、webserver=yes、webserver-address=0.0.0.0)。通过环境变量连接:
(名称=默认值) PDNS_API_URL="http://pdns:8081/" PDNS_API_KEY="" PDNS_VERSION=""
与本仓库的pdns-mysql/pdns-pgsql镜像以别名pdns链接时自动配置。
需通过PDNS_ADMIN_SALT环境变量指定SALT以生成API密钥,可通过命令python3 -c 'import bcrypt; print(bcrypt.gensalt().decode("utf-8"));'生成(示例值:$2b$12$xxxxxxxxxxxxxxxxxxxxxx,docker-compose中`# PowerDNS Docker镜像
本仓库包含以下Docker镜像:pdns-mysql、pdns-pgsql、pdns-recursor和pdns-admin。镜像pdns-mysql包含可完全配置的PowerDNS 4.x权威服务器,带有MySQL后端(不含MySQL服务器)。镜像pdns-pgsql包含可完全配置的PowerDNS 4.x权威服务器,带有PostgreSQL后端(不含PostgreSQL服务器)。镜像pdns-recursor包含可完全配置的PowerDNS 4.x递归服务器。镜像pdns-admin包含https://github.com/PowerDNS-Admin/PowerDNS-Admin Web应用的前端(Caddy)和后端(uWSGI),该应用基于Flask编写,用于管理PowerDNS服务器。
pdns-mysql、pdns-pgsql和pdns-recursor镜像还提供alpine标签(感谢@PoppyPop)。
所有镜像均可在Docker Hub获取:
https://hub.docker.com/r/pschiffe/pdns-mysql/ https://hub.docker.com/r/pschiffe/pdns-pgsql/ https://hub.docker.com/r/pschiffe/pdns-recursor/ https://hub.docker.com/r/pschiffe/pdns-admin/
源码GitHub仓库:https://github.com/pschiffe/docker-pdns
 !Docker镜像大小(alpine标签) !Docker拉取次数
https://hub.docker.com/r/pschiffe/pdns-mysql/
带有PowerDNS 4.x权威服务器和MySQL后端的Docker镜像,需外部MySQL服务器。MySQL配置环境变量:
(名称=默认值) PDNS_gmysql_host=mysql PDNS_gmysql_port=3306 PDNS_gmysql_user=root PDNS_gmysql_password=powerdns PDNS_gmysql_dbname=powerdns
若与官方https://hub.docker.com/_/mariadb/%E9%95%9C%E5%83%8F%E4%BB%A5%E5%88%AB%E5%90%8D%60mysql%60%E9%93%BE%E6%8E%A5%EF%BC%8C%E5%8F%AF%E8%87%AA%E5%8A%A8%E9%85%8D%E7%BD%AE%E8%BF%9E%E6%8E%A5%EF%BC%88%E6%97%A0%E9%9C%80%E6%8C%87%E5%AE%9A%E4%B8%8A%E8%BF%B0%E5%8F%98%E9%87%8F%EF%BC%89%E3%80%82%E6%95%B0%E6%8D%AE%E5%BA%93%E8%A1%A8%E7%BC%BA%E5%A4%B1%E6%97%B6%E4%BC%9A%E8%87%AA%E5%8A%A8%E5%88%9D%E5%A7%8B%E5%8C%96%E3%80%82
PowerDNS服务器通过环境变量配置:以PDNS_为前缀的变量会去除前缀并将_替换为-后写入/etc/pdns/pdns.conf。例如PDNS_gmysql_host=mysql会变为gmysql-host=mysql。支持SUPERMASTER_IPS变量配置超级主服务器(多IP用空格分隔),详情见文档。所有配置项见官方文档。
主服务器(启用API及从服务器配置):
docker run -d -p 53:53 -p 53:53/udp --name pdns-master \ --hostname ns1.example.com --link mariadb:mysql \ -e PDNS_master=yes \ -e PDNS_api=yes \ -e PDNS_api_key=secret \ -e PDNS_webserver=yes \ -e PDNS_webserver_address=0.0.0.0 \ -e PDNS_webserver_password=secret2 \ -e PDNS_version_string=anonymous \ -e PDNS_default_ttl=1500 \ -e PDNS_allow_axfr_ips=172.5.0.21 \ -e PDNS_only_notify=172.5.0.21 \ pschiffe/pdns-mysql
从服务器(配置超级主服务器):
docker run -d -p 53:53 -p 53:53/udp --name pdns-slave \ --hostname ns2.example.com --link mariadb:mysql \ -e PDNS_gmysql_dbname=powerdnsslave \ -e PDNS_slave=yes \ -e PDNS_version_string=anonymous \ -e PDNS_disable_axfr=yes \ -e PDNS_allow_notify_from=172.5.0.20 \ -e SUPERMASTER_IPS=172.5.0.20 \ pschiffe/pdns-mysql
!Docker镜像大小(latest标签) !Docker镜像大小(alpine标签) !Docker拉取次数
https://hub.docker.com/r/pschiffe/pdns-pgsql/
带有PowerDNS 4.x权威服务器和PostgreSQL后端的Docker镜像,需外部PostgreSQL服务器。PostgreSQL配置环境变量:
(名称=默认值) PDNS_gpgsql_host=pgsql PDNS_gpgsql_port=5432 PDNS_gpgsql_user=postgres PDNS_gpgsql_password=powerdns PDNS_gpgsql_dbname=powerdns
若与官方https://hub.docker.com/_/postgres%E9%95%9C%E5%83%8F%E4%BB%A5%E5%88%AB%E5%90%8D%60pgsql%60%E9%93%BE%E6%8E%A5%EF%BC%8C%E5%8F%AF%E8%87%AA%E5%8A%A8%E9%85%8D%E7%BD%AE%E8%BF%9E%E6%8E%A5%E3%80%82%E6%95%B0%E6%8D%AE%E5%BA%93%E8%A1%A8%E7%BC%BA%E5%A4%B1%E6%97%B6%E8%87%AA%E5%8A%A8%E5%88%9D%E5%A7%8B%E5%8C%96%E3%80%82%E9%85%8D%E7%BD%AE%E6%96%B9%E5%BC%8F%E4%B8%8Epdns-mysql%E7%9B%B8%E5%90%8C%EF%BC%88%E9%80%9A%E8%BF%87%60PDNS_%60%E5%89%8D%E7%BC%80%E5%8F%98%E9%87%8F%EF%BC%89%EF%BC%8C%E6%94%AF%E6%8C%81%60SUPERMASTER_IPS%60%E5%8F%98%E9%87%8F%E3%80%82%E6%89%80%E6%9C%89%E9%85%8D%E7%BD%AE%E9%A1%B9%E8%A7%81%E5%AE%98%E6%96%B9%E6%96%87%E6%A1%A3%E3%80%82
主服务器(启用API及从服务器配置):
docker run -d -p 53:53 -p 53:53/udp --name pdns-master \ --hostname ns1.example.com --link postgres:pgsql \ -e PDNS_master=yes \ -e PDNS_api=yes \ -e PDNS_api_key=secret \ -e PDNS_webserver=yes \ -e PDNS_webserver_address=0.0.0.0 \ -e PDNS_webserver_password=secret2 \ -e PDNS_version_string=anonymous \ -e PDNS_default_ttl=1500 \ -e PDNS_allow_axfr_ips=172.5.0.21 \ -e PDNS_only_notify=172.5.0.21 \ pschiffe/pdns-pgsql
从服务器(配置超级主服务器):
docker run -d -p 53:53 -p 53:53/udp --name pdns-slave \ --hostname ns2.example.com --link postgres:pgsql \ -e PDNS_gpgsql_dbname=powerdnsslave \ -e PDNS_slave=yes \ -e PDNS_version_string=anonymous \ -e PDNS_disable_axfr=yes \ -e PDNS_allow_notify_from=172.5.0.20 \ -e SUPERMASTER_IPS=172.5.0.20 \ pschiffe/pdns-pgsql
!Docker镜像大小(latest标签) !Docker镜像大小(alpine标签) !Docker拉取次数
https://hub.docker.com/r/pschiffe/pdns-recursor/
带有PowerDNS 4.x递归服务器的Docker镜像。通过环境变量配置:以PDNS_为前缀的变量去除前缀并将_替换为-后写入/etc/pdns/recursor.conf。所有配置项见官方文档。
启用API的递归服务器:
docker run -d -p 53:53 -p 53:53/udp --name pdns-recursor \ -e PDNS_api_key=secret \ -e PDNS_webserver=yes \ -e PDNS_webserver_address=0.0.0.0 \ -e PDNS_webserver_password=secret2 \ pschiffe/pdns-recursor
!Docker镜像大小(latest标签) !Docker拉取次数
https://hub.docker.com/r/pschiffe/pdns-admin/
包含https://github.com/PowerDNS-Admin/PowerDNS-Admin Web应用的Docker镜像,用于管理PowerDNS服务器,需外部MySQL或PostgreSQL服务器。该镜像包含uWSGI(处理Python应用请求)和Caddy(处理静态文件及可选HTTPS),区别于仅含gunicorn的官方镜像。
MySQL环境变量:
(名称=默认值) PDNS_ADMIN_SQLA_DB_HOST=mysql PDNS_ADMIN_SQLA_DB_PORT=3306 PDNS_ADMIN_SQLA_DB_USER=root PDNS_ADMIN_SQLA_DB_PASSWORD=powerdnsadmin PDNS_ADMIN_SQLA_DB_NAME=powerdnsadmin
PostgreSQL环境变量:
PDNS_ADMIN_SQLA_DB_TYPE=postgres PDNS_ADMIN_SQLA_DB_HOST=pgsql PDNS_ADMIN_SQLA_DB_PORT=5432 PDNS_ADMIN_SQLA_DB_USER=postgres PDNS_ADMIN_SQLA_DB_PASSWORD=powerdnsadmin PDNS_ADMIN_SQLA_DB_NAME=powerdnsadmin
与对应数据库镜像链接(别名mysql/pgsql)可自动配置,表缺失时自动初始化。
需配置PowerDNS服务器API(示例配置:api=yes、api-key=secret、webserver=yes、webserver-address=0.0.0.0)。通过环境变量连接:
(名称=默认值) PDNS_API_URL="http://pdns:8081/" PDNS_API_KEY="" PDNS_VERSION=""
与本仓库的pdns-mysql/pdns-pgsql镜像以别名pdns链接时自动配置。
需通过PDNS_ADMIN_SALT环境变量指定SALT以生成API密钥,可通过命令python3 -c 'import bcrypt; print(bcrypt.gensalt().decode("utf-8"));'生成(示例值:$2b$12$xxxxxxxxxxxxxxxxxxxxxx,docker-compose中需转义为$)。
Caddy支持通过Let's Encrypt提供HTTPS:设置SSL_MAIN_DOMAIN(主域名)和SSL_EXTRA_DOMAINS(逗号分隔的重定向域名),暴露端口8080->80、8443->443、8443/udp->443/udp,并持久化/var/lib/caddy目录(存储证书)。
用户上传目录需持久化:/opt/powerdns-admin/upload
与pdns-mysql链接:
docker run -d -p 8080:8080 --name pdns-admin \ --link mariadb:mysql --link pdns-master:pdns \ -v pdns-admin-upload:/opt/powerdns-admin/upload \ pschiffe/pdns-admin
启用HTTPS:
docker run -d -p 80:8080 -p 443:8443 -p 443:8443/udp --name pdns-admin \ --link mariadb:mysql --link pdns-master:pdns \ -v pdns-admin-caddy:/var/lib/caddy \ -v pdns-admin-upload:/opt/powerdns-admin/upload \ -e SSL_MAIN_DOMAIN=www.pdns-admin.com \ -e SSL_EXTRA_DOMAINS=pdns-admin.com,pdns-admin.eu \ pschiffe/pdns-admin
使用内置docker-compose文件部署:
docker-compose -f docker-compose-mysql.yml up -d
使用内置Ansible剧本构建运行容器:
ansible-playbook ansible-playbook-mysql.yml
您可以使用以下命令拉取该镜像。请将 <标签> 替换为具体的标签版本。如需查看所有可用标签版本,请访问 标签列表页面。
来自真实用户的反馈,见证轩辕镜像的优质服务