Python 3.x 如何在专用子网中获取EC2实例专用IP?

Python 3.x 如何在专用子网中获取EC2实例专用IP?,python-3.x,amazon-web-services,docker,amazon-ec2,amazon-elastic-beanstalk,Python 3.x,Amazon Web Services,Docker,Amazon Ec2,Amazon Elastic Beanstalk,我正在运行一个python应用程序,它在docker容器中运行,在私有子网中使用Beanstalk,我想获取EC2实例的私有/本地IP。是否可以不使用curl获取本地IP地址http://169.254.169.254/latest/meta-data/local-ipv4在docker容器内 虽然我尝试了docker run--net=host,但它仍然不可访问。您可以使用以下命令获取Linux实例的本地ip: hostname-I | awk'{print$1}' 对于EB,使用.ebexe

我正在运行一个python应用程序,它在docker容器中运行,在私有子网中使用Beanstalk,我想获取EC2实例的私有/本地IP。是否可以不使用
curl获取本地IP地址http://169.254.169.254/latest/meta-data/local-ipv4
在docker容器内


虽然我尝试了docker run--net=host,但它仍然不可访问。

您可以使用以下命令获取Linux实例的本地ip:

hostname-I | awk'{print$1}'


对于EB,使用.ebexentions并在script_name.config中编写bash脚本以运行:
export HOST_IP=$(hostname-I | awk'{print$1}')

您可以使用以下命令获取Linux实例的本地IP:

hostname-I | awk'{print$1}'


对于EB,使用.ebexentions并在script_name.config中编写一个bash脚本来运行:
export HOST_IP=$(hostname-I | awk'{print$1}')

您是说可以从元数据服务中检索IP,但不想?为什么?然后在容器中添加环境变量,如
HOST\u IP=$(curlhttp://169.254.169.254/latest/meta-data/local-ipv4)
并使用容器中的主机IP。所以你会离开的ENV@jarmod,很抱歉给你添麻烦。实际上,我担心元数据服务在私有子网的情况下不起作用,如果我没有错,或者它会起作用吗?它是aws服务,它应该在任何情况下都能起作用。谢谢@adii,但如果我不想使用该URL,还有其他方法吗?你是说你可以从元数据服务检索IP,但你不想?为什么?然后在容器中添加环境变量,如
HOST\u IP=$(curlhttp://169.254.169.254/latest/meta-data/local-ipv4)
并使用容器中的主机IP。所以你会离开的ENV@jarmod,很抱歉给你添麻烦。实际上,我担心元数据服务在私有子网的情况下不起作用,如果我没有错的话,或者它会起作用吗?它是aws服务,应该在所有情况下都能起作用。谢谢@adii,但如果我不想使用该URL,还有其他方法吗?只是好奇我在
docker run
中尝试了
--net=host
,但是它选择了docker IP而不是主机IP,在那里它应该正确使用主机网络堆栈!但我在这里做错了什么?只是好奇,我在
docker run
中尝试了
--net=host
,但它选择了docker IP而不是主机IP,在那里它应该正确使用主机网络堆栈!但我做错了什么?