在Docker容器中使用BIND9服务时,需要将主机的DNS服务器配置为Docker容器的IP地址。修改docker-compose文件并添加以下行:
dns:
-
dns_search:
-
其中,
为BIND9容器的IP地址,
为域名。
示例docker-compose.yml文件(假设BIND9容器的IP地址为172.17.0.2,域名为example.com):
version: '3.7'
services:
bind:
image: sameersbn/bind:latest
restart: always
container_name: bind
ports:
- "53:53/tcp"
- "53:53/udp"
volumes:
- /srv/docker/bind/logs:/var/log/bind
- /srv/docker/bind/data:/data
- /srv/docker/bind/config:/etc/bind
environment:
- ROOT_PASSWORD=
- WEBMIN_ENABLED=false
dns:
- 172.17.0.2
dns_search:
- example.com
然后,在主机上修改DNS设置,将DNS服务器设置为BIND9容器的IP地址。在Ubuntu系统上,可以通过以下命令编辑/etc/resolvconf/resolv.conf.d/head
文件:
sudo nano /etc/resolvconf/resolv.conf.d/head
添加以下内容:
nameserver 172.17.0.2
search example.com
保存并退出。最后,重启resolvconf服务使设置生效:
sudo service resolvconf restart
现在,您应该能够从Docker容器中成功解析DNS请求。