如何在 docker 上向服务器 运行 发出请求

How to make request to server running on docker

在我的机器上,我 运行 在 Docker 中安装了一个应用程序(它 运行 在 http://localhost:8181 中)。

我从 Docker 开始 docker run -p 8181:8181 myapp

经过一些搜索后,我尝试将我的请求发送到 docker0 的输出,当我 运行 ifconfig 时,它是 172.17.0.1,以及我的计算机的 ip。我也试过 localhost 和 0.0.0.0: http://<ip>:8181/myapp。我 运行宁 Ubuntu 16.04。

如何在 docker 中向服务器 运行ning 发送请求?

将您的应用程序从侦听 localhost:8181 更改为侦听 0.0.0.0:8181。 Docker端口映射会路由到容器的IP,而不是容器内部的loopback接口,所以你的app需要监听所有的接口。

然后你 运行 你的容器,就像你拥有的端口映射选项一样,将主机上的 8181 映射到容器内的相同端口:

docker run -p 8181:8181 myapp

最后,您在端口 8181 上连接到 docker 主机的 IP 以访问该应用程序。对于 Win/Mac 的 Docker 的较新版本,以及 Linux 安装的所有版本,这可以是 localhost:8181 在您的主机上。如果您使用 docker-machine(与 docker-toolbox),该 IP 需要是您的远程 docker 主机或 VM,该 IP 将列在 docker-machine ls.