Docker容器向http发送请求
嗨,我有个问题 我使用docker compose ver3和Concur image作为容器,在我的主机上我有一个简单的服务,应该响应http请求,它设置在端口40001上。所以现在我想让docker通过http向这个服务发送请求作为健康检查(换句话说,将请求从docker容器发送到主机上运行的服务) 我为领事撰写的docker文章很简单:Docker容器向http发送请求,docker,consul,Docker,Consul,嗨,我有个问题 我使用docker compose ver3和Concur image作为容器,在我的主机上我有一个简单的服务,应该响应http请求,它设置在端口40001上。所以现在我想让docker通过http向这个服务发送请求作为健康检查(换句话说,将请求从docker容器发送到主机上运行的服务) 我为领事撰写的docker文章很简单: version: '3' services: consul: image: consul:latest command: consul a
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健康检查地址为“”。请求的间隔约为15秒,所以我希望这样的请求到达服务,服务将以200秒响应
我还可以访问容器中领事的用户界面
主机上的服务并没有注册任何传入的请求,但有趣的是,当我运行独立的consur时,它工作正常(也就是说,我正在接受健康检查)
所以我的问题是,这可能是容器无法与主机上的服务通信的问题。例如,假设您的主机上有一个在端口5555上运行的服务
如果要从docker容器与主机通信,以下是四种解决方案:
docker0
,其IP地址类似于172.17.0.1
(您必须检查这些值)。服务地址将为
http://172.17.0.1:5555
host.Docker.internal
()。服务地址将为
http://host.docker.internal:5555
服务地址将为
http://host.docker.internal:5555
服务地址将是http://[host\u public\u ip\u或\u dns]:5555
docker0
,其IP地址类似于172.17.0.1
(您必须检查这些值)。服务地址将为
http://172.17.0.1:5555
host.Docker.internal
()。服务地址将为
http://host.docker.internal:5555
服务地址将为
http://host.docker.internal:5555
服务地址将是http://[host\u public\u ip\u或\u dns]:5555