Docker Compose 内的请求连接被拒绝

Edd*_*oli 10 linux deployment docker docker-compose

我的主机上有一个 API 在端口 8000 上运行。同时,我有一个 docker compose 集群,其中有一个容器应该连接所述 API。为了获取请求的 url,我在 Windows 计算机上使用“host.docker.internal:8000”,效果非常好。但是,我有一个 Linux 部署服务器,其中“host.docker.internal”无法解析任何内容,导致 API 连接错误。我在stackoverflow 上的另一篇文章中看到,您通过在 Linux 上添加以下内容来解决此问题docker-compose.yaml

services:
  service_name:
    extra_hosts:
      - host.docker.internal:host-gateway
Run Code Online (Sandbox Code Playgroud)

这将 docker0 IP 添加到/etc/hosts,但是当我尝试执行 GET 请求时,生成的消息是:

Failed to connect to host.docker.internal port 8000: Connection refused

我现在真的很困惑。我不知道这是否是防火墙问题、docker问题、docker compose问题、docker on linux问题。请帮忙...

A.W*_*Wan 15

感谢@Hans Kilian:

  • 添加extra_hosts到 docker-compose 文件
  • 更改要使用的 URL,host.docker.internal而不是localhost
  • 更改服务以0.0.0.0代替localhost


Aka*_*ph7 7

我遇到了类似的问题,并通过确保我的隧道接受来自任何地方的连接来使其正常工作。

前:

ssh -N -L 5435:endpoint.rds.amazonaws.com:5432 admin@machine.ip
Run Code Online (Sandbox Code Playgroud)

后:

ssh -N -L 0.0.0.0:5435:endpoint.rds.amazonaws.com:5432 admin@machine.ip
Run Code Online (Sandbox Code Playgroud)