如何在任何docker容器中接收客户端ip地址?
在我的php应用程序中,我需要用$_SERVERREMOTE_ADDR检查客户端的ip地址来控制访问,这在目前是不可能的。
例如,我在端口8080的容器中运行一个php-apache for服务器。
我的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容器?
谢谢
发布于 2020-07-01 15:19:34
您可以在docker运行时将主机ip作为环境变量传递,然后使用$_ENV['your_env_name']在php中获取它;
# GET & SET HOST IP
# double check this on the system you're working on.
# should work on most linux env
# Adjust NR=1 or NR=2 NR=3 depending on the ip addresses returned
export HOST_IP=$(echo "$(ifconfig)" | grep -oE "\b([0-9]{1,3}\.){3}[0-9]{1,3}\b" | awk "NR==7{print;exit}");# PASS HOST IP AS ENV
docker run -it -d -p 8080:8080 -e HOST_IP=$HOST_IP --name yourname docker:image;// Your php script
echo $_ENV['HOST_IP'];https://stackoverflow.com/questions/62671411
复制相似问题