
如果你使用 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-dns-rest是一个为Docker容器提供RESTful DNS服务的工具,主要用于测试依赖DNS进行服务发现的应用。它能够将指定域名映射到Docker容器的IP地址,并在容器启停时自动注册或注销DNS记录,从而模拟特定环境(如 staging 环境)的DNS解析场景。
*.example.com)bashdocker run -d -p 5080:80 -v /var/run/docker.sock:/docker.sock --name dns \ docker.xuanyuan.run/phensley/docker-dns-rest --verbose
参数说明:
-p 5080:80:将容器80端口映射到主机5080端口-v /var/run/docker.sock:/docker.sock:挂载Docker socket,用于监听容器事件--name dns:指定容器名称为dns--verbose:启用详细日志模式bashdocker logs -f dns
若Docker运行在Vagrant虚拟机中,需添加路由确保主机可访问容器网络:
bashroute add -net 172.17.0.0 <Vagrant VM IP> # 示例:route add -net 172.17.0.0 192.168.222.5
bashdocker inspect -f '{{.NetworkSettings.IPAddress}}' dns # 输出示例:172.17.0.2
通过REST API将域名关联到指定容器(按名称或ID):
bashcurl -X PUT \ -d '{"domains": ["*.example.com", "www.staging.internal.com"]}' \ http://<DNS容器IP>:80/container/name/www # 示例:http://172.17.0.2:80/container/name/www
响应:{"code": 0} 表示成功
启动名称为www的容器(需与上一步注册的名称匹配):
bashdocker run -it --name www docker.xuanyuan.run/ubuntu bash
此时DNS日志会显示域名映射信息:
2014-10-11T15:26:29.198673 [dnsrest] setting www (83854cf229) as active 2014-10-11T15:26:29.198821 [dnsrest] added *.example.com. -> 172.17.0.3 2014-10-11T15:26:29.198900 [dnsrest] added www.staging.internal.com. -> 172.17.0.3
使用host命令测试域名解析:
bashhost test.example.com <DNS容器IP> # 示例:host test.example.com 172.17.0.2
输出示例:
test.example.com has address 172.17.0.3
停止容器:DNS记录自动注销
bashdocker stop www
日志显示:
2014-10-11T15:28:35.050232 [dnsrest] setting www (83854cf229) as inactive 2014-10-11T15:28:35.050378 [dnsrest] removed *.example.com. -> 172.17.0.3
重启容器:DNS记录自动重新注册(使用新IP)
bashdocker start www
启动容器时通过--dns参数指定DNS服务器:
bashdocker run -it --name shell --dns <DNS容器IP> --dns-search example.com ubuntu bash
在容器内测试解析:
bashping foo # 解析为 foo.example.com ping www.staging.internal.com
| 命令行参数 | 说明 | 默认值 |
|---|---|---|
--verbose | 启用详细日志输出 | 禁用 |
--no-recursion | 禁用未匹配域名的递归转发 | 启用(转发至8.8.8.8) |
--resolver | 指定递归查询的DNS服务器 | 8.8.8.8 |
示例:禁用递归转发
bashdocker run -d -p 5080:80 -v /var/run/docker.sock:/docker.sock --name dns \ phensley/docker-dns-rest --verbose --no-recursion
您可以使用以下命令拉取该镜像。请将 <标签> 替换为具体的标签版本。如需查看所有可用标签版本,请访问 标签列表页面。
来自真实用户的反馈,见证轩辕镜像的优质服务