我有一个任务要在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:8081
、172.17.0.1:8082
和172.17.0.1:8083
上的其他容器。这相当于在主机上使用localhost:8081
、localhost:8082
和localhost: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