在我的机器上,我在Docker中运行一个应用程序(它在http://localhost:8181上运行)。
我已经使用docker run -p 8181:8181 myapp
启动了Docker。
经过一些搜索后,当我运行ifconfig(172.17.0.1)和我的计算机的ip时,我试图将我的请求发送到docker0
的输出。我也尝试过localhost和0.0.0.0:http://<ip>:8181/myapp
。我正在运行Ubuntu 16.04。
如何向docker中运行的服务器发送请求?
答案 0 :(得分:2)
将您的应用程序从侦听localhost:8181更改为侦听0.0.0.0:8181。 Docker端口映射将路由到容器的IP,而不是容器内的loopback接口,因此您的应用需要侦听所有接口。
然后使用端口映射选项运行容器,该选项将主机上的8181映射到容器内的同一端口:
docker run -p 8181:8181 myapp
最后,您在端口8181上连接到docker主机的IP以访问该应用程序。使用较新版本的Docker for Win / Mac以及所有版本的Linux安装,您可以在主机上使用localhost:8181。如果您使用的是docker-machine(带有docker-toolbox),该IP需要是您的远程docker主机或VM,那么该IP将列在docker-machine ls
中。