我在我的服務中有一個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請求,而不是我打算的,這是主機的回送接口。這是一個正確的假設嗎?更重要的是,我需要做些什麼來糾正問題?