我想将DNS服务器设置为成群运行的Docker容器。 我有一台专用服务器,过去我曾在该服务器上“本地”运行绑定。现在,我想将其移动到docker容器中,以便在需要时可以轻松移动设置。
我选择了sameersbn / bind作为图像,因为它似乎已广泛传播并满足了我的需求。
服务器似乎运行正常,但在通知时似乎公开了网关网桥的ip。
如何通过外部计算机可访问的方式进行设置。 如果我明确地让dns服务器检查它在任何地方都可以正常工作
$host www.<mydomain>.net 1.2.3.4
Using domain server:
Name: 1.2.3.4
Address: 1.2.3.4#53
Aliases:
www.<mydomain>.net has address 1.2.3.4
没有此信息
$host www.<mydomain>.net.
Host www.<mydomain>.net not found: 2(SERVFAIL)
这似乎是因为DNS暴露了“错误的” ip
$dig <mydomain>.net
; <<>> DiG 9.10.6 <<>> <mydomain>.net
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: SERVFAIL, id: 14304
;; flags: qr rd ra; QUERY: 1, ANSWER: 0, AUTHORITY: 0, ADDITIONAL: 1
;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 4096
;; QUESTION SECTION:
;<mydomain>.net. IN A
;; Query time: 1809 msec
;; SERVER: 172.18.0.1#53(172.18.0.1)
;; WHEN: Thu Jul 12 13:13:53 CEST 2018
;; MSG SIZE rcvd: 38
IP 172.18.0.1是docker_gwbride的IP
当我检查服务器本身时,可以看到:
$ ifconfig docker_gwbridge | head -2
docker_gwbridge: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 172.18.0.1 netmask 255.255.0.0 broadcast 0.0.0.0
我希望任何人都可以知道如何在docker容器中获取绑定,以将上述示例中的真实IP(1.2.3.4)暴露给外界。
编辑: 群配置的yml文件如下:
version: "3"
services:
bind:
image: sameersbn/bind:latest
# container_name: bind
#dns: 1.2.3.4
environment:
- ROOT_PASSWORD=<secretPassword>
ports:
- 1.2.3.4:53:53/udp
- 1.2.3.4:53:53/tcp
volumes:
- /srv/docker/bind:/data
非常感谢!