Вам не нужно запускать агента консула на каждом контейнере докера, вы можете просто воспользоваться консулом, подвергая его DNS вашему локальному. Следующее не из контейнера, но вы все равно поймете, что я делаю.
Далее команда, я использую для запуска моего агента
consul agent -data-dir /var/lib/consul/ -config-dir /etc/consul.d/ -bind 10.X.X.X -dns-port 53 -join consul-master
Примечания: Я добавил и т.д. запись// хостов для консула-мастеров с его IP, и я также добавил сервер имен для 127.0. 0.1 в файле /etc/resolv.conf.
В каталоге /etc/consul.d/ содержится мой файл конфигурации для службы. Ниже приведен пример:
{
"service": {
"name": "stackoverflow",
"tags": [
"example"
],
"port": 5000
}
}
Теперь, как только мой консулом агент работает, я могу проверить на любом компьютере с консулом агентом (клиент/сервер) для службы с помощью команды копания или запрос АНИ HTTP следующим образом:
curl http://stackoverflow.service.consul:80/api/v1/ping
{"success":true,"message":"pong"}
Для DNS:
dig @127.0.0.1 -p 53 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:
;tracker.service.consul. IN A
;; ANSWER SECTION:
tracker.service.consul. 0 IN A X.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
Надежда, что помогает и дает четкое представление о нем