
如果你使用 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/github/release/tschaffter/docker-dnsmasq.svg?include_prereleases&color=94398d&labelColor=555555&logoColor=ffffff&style=for-the-badge&logo=github](https://github.com/tschaffter/docker-dnsmasq/releases) https://img.shields.io/github/workflow/status/tschaffter/docker-dnsmasq/CI.svg?color=94398d&labelColor=555555&logoColor=ffffff&style=for-the-badge&logo=github](https://github.com/tschaffter/docker-dnsmasq/actions) https://img.shields.io/github/license/tschaffter/docker-dnsmasq.svg?color=94398d&labelColor=555555&logoColor=ffffff&style=for-the-badge&logo=github](https://github.com/tschaffter/docker-dnsmasq/blob/main/LICENSE) https://img.shields.io/docker/pulls/tschaffter/dnsmasq.svg?color=94398d&labelColor=555555&logoColor=ffffff&style=for-the-badge&label=pulls&logo=docker](https://hub.docker.com/r/tschaffter/dnsmasq)
https://thekelleys.org.uk/gitweb/?p=dnsmasq.git;a=summary是一款轻量级、易于配置的DNS转发器,旨在为小规模网络提供DNS(可选DHCP和TFTP)服务。它还可以解析不在全局DNS中的本地机器名称。如果您使用华硕路由器,您的路由器可能正在使用https://thekelleys.org.uk/gitweb/?p=dnsmasq.git;a=summary。
本镜像特性:
--server {docker_service_name}选项实现使用Docker启动Dnsmasq:docker compose up -d
使用dig工具通过Dnsmasq解析github.com的IP地址:
console$ dig @localhost +noall +answer +stats github.com github.com. 59 IN A 192.30.255.113 ;; Query time: 24 msec ;; SERVER: 127.0.0.1#53(127.0.0.1) ;; WHEN: Sun Mar 07 20:55:33 PST 2021 ;; MSG SIZE rcvd: 44
停止Dnsmasq:docker stop dnsmasq
Dnsmasq有三种配置方式:
本仓库提供两个示例配置文件:
静态名称服务器(如Cloudflare DNS服务器1.1.1.1和1.0.0.1,或Google DNS服务器8.8.8.8和8.8.4.4)可通过配置文件或命令行参数指定(参见docker-compose.yml)。
发布此Docker镜像的一个主要动机是解决Dnsmasq无法解析非IP地址形式名称服务器的问题。当使用Docker容器中的名称服务器(如https://github.com/getdnsapi/stubby,一种本地DNS隐私存根解析器,可与Dnsmasq配合使用以启用DNS-over-TLS)时,通常通过Docker服务名引用其地址,这会导致解析问题。
此问题的解决方案在入口脚本docker-entrypoint.sh中实现,通过ping命令将命令行参数中指定的名称服务器地址解析为IP地址。此解决方案仅适用于通过命令行参数指定的服务器地址。
启动Dnsmasq服务器。添加-d或--detach选项可在后台运行:
consoledocker compose up
停止服务器:按Ctrl+C,然后输入docker compose down。如果在后台运行,只需输入docker compose down。
Dig是一款命令行工具,通过查询名称服务器执行DNS查找并显示结果。启动Dnsmasq后,运行以下命令解析github.com的IP地址:
console$ dig @localhost +noall +answer +stats github.com github.com. 59 IN A 192.30.255.113 ;; Query time: 24 msec ;; SERVER: 127.0.0.1#53(127.0.0.1) ;; WHEN: Sun Mar 07 20:55:33 PST 2021 ;; MSG SIZE rcvd: 44
响应包含以下信息:
第二次运行相同命令:
console$ dig @localhost +noall +answer +stats github.com github.com. 59 IN A 192.30.255.113 ;; Query time: 0 msec ;; SERVER: 127.0.0.1#53(127.0.0.1) ;; WHEN: Sun Mar 07 20:55:49 PST 2021 ;; MSG SIZE rcvd: 55
此时查询时间为0毫秒,因为Dnsmasq在首次查询后缓存了信息,后续查询直接从缓存获取。有关如何配置Dnsmasq缓存的更多信息,请阅读文章How to Do DNS Caching with dnsmasq。
参见dnsmasq.d/example.com.conf中指定的示例:
console$ dig @localhost +noall +answer +stats myhost.example.com myhost.example.com. 0 IN A 192.168.1.10 ;; Query time: 1 msec ;; SERVER: 127.0.0.1#53(127.0.0.1) ;; WHEN: Sun Mar 07 21:53:48 PST 2021 ;; MSG SIZE rcvd: 62
如上所示,主机名myhost.example.com已成功解析为本地IP地址192.168.1.10。
本仓库使用https://semver.org/跟踪项目发布。采用"非移动"GitHub标签,即标签创建后将始终指向相同的git提交。
本仓库发布的制品是Docker镜像。镜像版本与Dnsmasq版本对齐,而非本仓库的GitHub标签。此策略的动机是该项目主要是Dnsmasq的包装器,使用与部署的Dnsmasq版本对应的Docker镜像标签对用户更具信息价值。
以下是可用的镜像标签说明:
| 标签名称 | 是否移动 | 描述 |
|---|---|---|
latest | 是 | 最新稳定版本 |
edge | 是 | 默认分支的最新提交 |
edge-<sha> | 否 | 同上,包含git提交引用 |
<major>.<minor> | 是 | 稳定版本 |
<major>.<minor>-<sha> | 否 | 同上,包含git提交引用 |
注意:在生产环境部署容器时应避免使用
latest等移动标签,因为这会难以跟踪运行的镜像版本且难以回滚。如果您希望使用最新版本而无需手动更新配置,且可重现性为次要因素,则使用移动标签是合理的。
https://github.com/tschaffter/docker-dnsmasq/blob/main/LICENSE
您可以使用以下命令拉取该镜像。请将 <标签> 替换为具体的标签版本。如需查看所有可用标签版本,请访问 标签列表页面。
来自真实用户的反馈,见证轩辕镜像的优质服务
以下是 tschaffter/dnsmasq 相关的常用 Docker 镜像,适用于 不同场景 等不同场景: