Docker:获取容器中的客户端IP地址

Docker:获取容器中的客户端IP地址,docker,docker-compose,docker-container,docker-networking,Docker,Docker Compose,Docker Container,Docker Networking,如何在任何docker容器中接收客户端ip地址 在我的php应用程序中,我需要使用$_SERVER[REMOTE_ADDR]检查客户端ip地址,以控制目前不可能的访问 例如,我在8080端口的容器中运行一个php apache Web服务器 我的ip地址是:192.168.80.177 集装箱网络:172.21.0.0/16 容器ip':172.21.0.3 当我访问localhost:8080时,docker网络网关的ip将被记录(172.21.0.1) 是否可以将我的客户端ip地址传递给do

如何在任何docker容器中接收客户端ip地址

在我的php应用程序中,我需要使用$_SERVER[REMOTE_ADDR]检查客户端ip地址,以控制目前不可能的访问

例如,我在8080端口的容器中运行一个php apache Web服务器

我的ip地址是:192.168.80.177 集装箱网络:172.21.0.0/16 容器ip':172.21.0.3

当我访问localhost:8080时,docker网络网关的ip将被记录(172.21.0.1)

是否可以将我的客户端ip地址传递给docker容器


谢谢

您可以在docker运行时将主机ip作为环境变量传递,然后在php中使用
$\u ENV['your\u ENV\u name']获取它。

#获取和设置主机IP
#在您正在使用的系统上再次检查此项。
#应该适用于大多数linux环境
#根据返回的ip地址调整NR=1或NR=2或NR=3
导出主机IP=$(echo“$(ifconfig)”|grep-oE“\b([0-9]{1,3}\){3}[0-9]{1,3}\b”| awk“NR==7{print;exit}”);
#将主机IP作为环境传递
docker run-it-d-p8080:8080-e HOST_IP=$HOST_IP--name yourname docker:image;
//您的php脚本
echo$_ENV['HOST_IP'];

刚刚意识到我的答案是针对主机的,但在这种情况下,客户端是什么意思?让我知道,这样我可以更新我的答案。对不起,我的答复太晚了。我想在生产中运行我的容器。因此,客户机是我的web应用程序(在docker PoProduction中运行)的访问者。我需要他的真实ip地址,最好是$u服务器['REMOTE\u ADDR']。