如何从docker容器中运行的web服务中获取客户端IP?
我有一个应用程序,它提取发出请求的客户端IP。当我直接在服务器上运行应用程序时,它可以工作,我可以获得IP 但当我通过执行以下命令在docker中运行它时:如何从docker容器中运行的web服务中获取客户端IP?,docker,Docker,我有一个应用程序,它提取发出请求的客户端IP。当我直接在服务器上运行应用程序时,它可以工作,我可以获得IP 但当我通过执行以下命令在docker中运行它时: docker run --rm -d -p 4300:4300 image 突然,报告的客户端IP现在是172.17.0.1 在谷歌上四处搜索,我看到了传入--net=host的建议,但这样做: docker run --rm --net=host -p 4300:4300 image 现在导致无法访问应用程序。出于某种奇怪的原因,应
docker run --rm -d -p 4300:4300 image
突然,报告的客户端IP现在是172.17.0.1
在谷歌上四处搜索,我看到了传入--net=host
的建议,但这样做:
docker run --rm --net=host -p 4300:4300 image
现在导致无法访问应用程序。出于某种奇怪的原因,应用程序似乎在指定的端口不再可用
即使在我删除-p4300:4300时,这也不起作用,因为我在控制台中收到一条消息,即使用--net=host时不需要它。即:
docker run --rm --net=host -p image
关于如何做到这一点有什么建议吗?这就是如何从docker容器中运行的web服务中获取客户端IP的方法?我在mac上运行docker。不知道这是否与问题有关。如果使用
net=host
配置,则不需要-p:
设置,因为这仅用于在使用网桥网络配置时向前端口。
只需删除此标志并浏览到应用程序侦听的任何端口。它应该会起作用。不幸的是,我试过了,但也不起作用。我更新了问题,将其包括在内。