Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/qt/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何从docker容器中运行的web服务中获取客户端IP?_Docker - Fatal编程技术网

如何从docker容器中运行的web服务中获取客户端IP?

如何从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 现在导致无法访问应用程序。出于某种奇怪的原因,应

我有一个应用程序,它提取发出请求的客户端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
现在导致无法访问应用程序。出于某种奇怪的原因,应用程序似乎在指定的端口不再可用

即使在我删除-p4300:4300时,这也不起作用,因为我在控制台中收到一条消息,即使用--net=host时不需要它。即:

 docker run --rm --net=host -p image

关于如何做到这一点有什么建议吗?这就是如何从docker容器中运行的web服务中获取客户端IP的方法?我在mac上运行docker。不知道这是否与问题有关。

如果使用
net=host
配置,则不需要
-p:
设置,因为这仅用于在使用网桥网络配置时向前端口。
只需删除此标志并浏览到应用程序侦听的任何端口。它应该会起作用。

不幸的是,我试过了,但也不起作用。我更新了问题,将其包括在内。