首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Docker:获取容器内客户端IP地址

问Docker:获取容器内客户端IP地址
EN

Stack Overflow用户
提问于 2020-07-01 15:07:21
回答 1查看 2.2K关注 0票数 4

如何在任何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容器?

谢谢

EN

回答 1

Stack Overflow用户

发布于 2020-07-01 15:19:34

您可以在docker运行时将主机ip作为环境变量传递,然后使用$_ENV['your_env_name']在php中获取它;

代码语言:javascript
复制
# 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}");
代码语言:javascript
复制
# PASS HOST IP AS ENV
docker run -it -d -p 8080:8080 -e HOST_IP=$HOST_IP --name yourname docker:image;
代码语言:javascript
复制
// Your php script
echo $_ENV['HOST_IP'];
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/62671411

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档