从docker容器访问localhost



我有一个任务要在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?我正在使用linux 的docker

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

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

对于docker For mac或docker For windows,只需使用主机连接服务host.docker.internal代替127.0.0.1

最新更新