你好,我有一个问题。
我使用 docker compose ver3 和 consul 镜像作为容器,在我的主机上我有一个简单的服务,应该响应 http 请求,并且它设置在端口 40001 上。所以现在我想让 docker 向该服务发送请求作为运行状况检查通过 http(换句话说,将请求从 docker 容器发送到主机上运行的服务)。
我的 consul docker compose 很简单:
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
Run Code Online (Sandbox Code Playgroud)
因此,我启动这个容器,主机上的服务在其中注册,主机上的服务的 http 运行状况检查地址为“ http://localhost:40005//Health ”。请求的间隔约为 15 秒,因此我预计此类请求到达服务并且服务将响应 200。
我还可以访问容器中领事的 UI。
主机上的服务不会注册任何传入请求,但有趣的是,当我运行独立领事时,它工作正常(也就是说,我正在进行健康检查)。
所以我的问题是,这是否可能是容器无法与主机上的服务通信的问题。
例如,假设您的主机上的端口 5555 上运行着一个服务。
如果您想从 docker 容器与主机通信,以下是四种解决方案:
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。| 归档时间: |
|
| 查看次数: |
4535 次 |
| 最近记录: |