You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

能否通过docker-compose.yml配置Docker嵌入式DNS服务器的自定义A及SRV记录?

在Docker Compose中配置嵌入式DNS的自定义A记录和SRV记录

Docker的嵌入式DNS服务器不支持直接在docker-compose.yml中定义自定义SRV记录,但可以通过以下方式分别或同时实现A记录和SRV记录的配置:

1. 配置自定义A记录(使用extra_hosts)

如果只需要设置A记录,可以直接用extra_hosts字段,这是Docker官方支持的方式,会在容器的/etc/hosts中添加对应条目,实现类似DNS解析的效果:

version: '3.8'
services:
  your-service:
    image: your-image:latest
    extra_hosts:
      - "myhost.mysuffix.local:114.123.456.789"

2. 同时配置A记录和SRV记录(自定义DNS服务器)

要添加SRV记录,必须搭建自定义DNS服务器(比如用dnsmasq),让Docker容器指向这个DNS服务来解析自定义记录:

步骤1:创建dnsmasq配置文件

新建dnsmasq.conf文件,添加需要的记录:

# 自定义A记录
address=/myhost.mysuffix.local/114.123.456.789
# 自定义SRV记录(格式:srv-host=服务名.域名,目标主机,端口,优先级,权重)
srv-host=_myservice._tcp.mysuffix.local,myhost.mysuffix.local,8009,5,0

步骤2:编写docker-compose.yml

定义一个DNS服务容器,然后让其他服务指定使用这个DNS:

version: '3.8'
services:
  custom-dns:
    image: andyshinn/dnsmasq:2.85
    volumes:
      - ./dnsmasq.conf:/etc/dnsmasq.conf
    ports:
      - "53:53/tcp"
      - "53:53/udp"
    cap_add:
      - NET_ADMIN
    restart: always

  your-app-service:
    image: your-app-image:latest
    dns:
      - custom-dns
    # 其他服务配置...

这样,your-app-service容器内就能正常解析myhost.mysuffix.local的A记录,以及myservice.mysuffix.local的SRV记录了。


内容的提问来源于stack exchange,提问作者ontherocks

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.15 16:53:24