0

我正在尝试使用“使用 Docker”(第 11 章)中的示例来设置领事代理。该示例建议运行它来设置其中一个领事节点:

docker run -d --name consul -h consul-1 \
         -p 8300:8300 -p 8301:8301 -p 8301:8301/udp \
         -p 8302:8302/udp -p 8400:8400 -p 8500:8500 \
         -p 172.17.42.1:53:8600/udp \
         gliderlabs/consul agent -data-dir /data -server \
                    -client 0.0.0.0 \
                    -advertise $HOSTA -bootstrap-expect 2

我假设-p 172.17.42.1:53:8600/upp 使用对作者有效的 IP 地址将容器的 DNS 服务与 consul 节点链接起来。我应该在这里使用什么 IP 地址?

4

2 回答 2

1

看起来172.17.42.1是 docker 1.8 在容器连接到主机时使用的默认网桥地址。这在 1.9 中发生了变化,似乎172.17.0.1适合我——尽管我不知道这是否有保证。

于 2016-01-15T21:14:25.960 回答
0

您似乎正在运行一个示例设置,所以如果您将其公开给您的 localhost 127.0.0.1 会更好。这是一项 DNS 服务,只要您使用正确的 DNS 端口发出 dig 命令,它就可以正常工作。例如以下将用于端口 8600:

dig @127.0.0.1 -p 8600 stackoverflow.service.consul

; <<>> DiG 9.8.2rc1-RedHat-9.8.2-0.62.rc1.55.amzn1 <<>> @127.0.0.1 -p 53 tracker.service.consul
; (1 server found)
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 57167
;; flags: qr aa rd; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 0
;; WARNING: recursion requested but not available

;; QUESTION SECTION:
;stackoverflow.service.consul.      IN  A

;; ANSWER SECTION:
stackoverflow.service.consul.   0   IN  A   10.X.X.X

;; Query time: 1 msec
;; SERVER: 127.0.0.1#53(127.0.0.1)
;; WHEN: Fri Jul  7 11:29:01 2017
;; MSG SIZE  rcvd: 56

如果您希望它在默认 DNS 端口上工作,以便可以直接处理查询。您可以使用类似 dnsmaq 或以下链接中列出的任何方法进行 DNS 转发:

https://www.consul.io/docs/guides/forwarding.html

于 2017-07-14T12:37:07.027 回答