从 docker 容器访问 localhost

时间:2021-06-17 14:38:17

标签: java docker

我有一个任务要在 localhost:8081、localhost:8082 和 localhost:8083 上设置 3 个 docker 容器,我已经成功完成了。然后有一个最后一个容器,它是 localhost:8080 上的 Java 应用程序,它需要使用 HttpClient 和 HttpRequest 将请求发送到其他容器,我已经这样做了,用“docker network create web_server --driver brigde”创建了一个桥,我用 --network web_server 运行容器,这样他们就可以使用容器名称进行通信它有效。但是我的老师告诉我将请求发送到 http://localhost:8081、8082 等。有没有办法让容器访问 localhost?我使用 docker for linux

2 个答案:

答案 0 :(得分:2)

在 Linux 容器上,您可以使用 IP 地址 172.17.0.1 访问主机。因此,从您的 Java 应用程序内部,您应该能够访问 172.17.0.1:8081172.17.0.1:8082172.17.0.1:8083 上的其他容器。这相当于在主机上使用 localhost:8081localhost:8082localhost:8083

答案 1 :(得分:0)

在您的 --network="host" 命令上添加 docker run,然后 docker 容器中的 127.0.0.1 将指向您的 docker 主机。 (仅适用于 linux 或 windows 容器上的 docker)

对于 docker for mac 或 docker for windows 只需使用主机连接服务 host.docker.internal 而不是 127.0.0.1

相关问题