我在我的服务中有一个HTTP健康检查,公开在localhost:35000/health
上。目前它总是返回200 OK
。对健康检查的配置是通过HTTP API编程方式,而不是一种服务的配置,但在本质上,它是:Mac容器托管网络的Docker - 领事健康检查连接被拒绝
set id: service-id
set name: health check
set notes: consul does a GET to '/health' every 30 seconds
set http: http://127.0.0.1:35000/health
set interval: 30s
当我直接在我的主机上运行的开发模式(consul agent -dev -ui
)领事健康检查通过没有任何问题。然而,当我在泊坞窗容器中运行领事,健康检查与失败:
2017/07/08 09:33:28 [WARN] agent: http request failed 'http://127.0.0.1:35000/health': Get http://127.0.0.1:35000/health: dial tcp 127.0.0.1:35000: getsockopt: connection refused
泊坞窗容器启动领事,据我所知,在exaclty相同的状态主机版本:
version: '2'
services:
consul-dev:
image: "consul:latest"
container_name: "net-sci_discovery-service_consul-dev"
hostname: "consul-dev"
ports:
- "8400:8400"
- "8500:8500"
- "8600:8600"
volumes:
- ./etc/consul.d:/etc/consul.d
command: "agent -dev -ui -client=0.0.0.0 -config-dir=/etc/consul.d"
我猜问题是,领事正试图对容器回送接口执行GET请求,而不是我打算的,这是主机的回送接口。这是一个正确的假设吗?更重要的是,我需要做些什么来纠正问题?