嗨我有个问题。
我使用码头组合ver3和领事映像作为容器,在我的主机上,我有一个简单的服务,应该响应http请求,它设置在端口40001上。因此,现在我希望通过http (换句话说,从docker容器向运行在主机上的服务发送请求),让docker向此服务发送请求作为健康检查。
我为领事撰写的船坞很简单:
version: '3'
services:
consul:
image: consul:latest
command: consul agent -dev -log-level=warning -ui -client=0.0.0.0
hostname: consul
container_name: consul
ports:
- 8500:8500
- 8600:8600/udp
- 40000-41000:40000-41000所以我启动这个容器,主机上的服务在里面注册,使用http健康检查地址在主机上使用"http://localhost:40005//Health“进行服务检查。请求的间隔大约是15秒,所以我期望这样的请求到达服务时,服务将响应200。
此外,我也可以进入UI的领事在集装箱。
好的,主机上的服务不会注册任何传入的请求,但有趣的是,当我运行独立领事时,它工作正常(也就是说,我正在进行健康检查)。
所以我的问题是,这可能是容器无法与主机上的服务通信的问题。
发布于 2020-05-25 12:43:08
例如,假设您在主机上的端口5555上运行了一个服务。
以下是四种解决方案,如果您想要从码头容器与主机通信:
docker0,它的IP地址类似于172.17.0.1 (您必须检查这些值)。
服务地址为http://172.17.0.1:5555host.docker.internal (这是医生)。
服务地址将是http://host.docker.internal:5555。http://host.docker.internal:5555。http://[host_public_ip_or_dns]:5555。https://stackoverflow.com/questions/62002249
复制相似问题