python-3.x - 有什么方法可以从 docker 容器中获取 EC2 实例 ip?
问题描述
我有一个在 Amazon EC2 实例上的 docker 容器内运行的 python 程序。我想在不使用http://169.254.169.254/latest/meta-data/local-ipv4
此 URL 的情况下在我的 python 程序(在 docker 容器内运行)中获取 EC2 实例私有 IP。socket
使用python的库很容易获得机器的私有IP ,比如
socker.gethostbyname(socket.gethostname())
但它没有给出 EC2 实例的 IP。有人知道怎么做吗?
解决方案
如果您使用的是覆盖网络或外部网络,则无法从容器中获取主机 IP。可以通过运行从主机获取 EC2 实例的 IP
curl http://169.254.169.254/latest/meta-data/local-ipv4
启动容器时将其作为环境变量传递。例如。docker run -e HOSTIP=$(http://169.254.169.254/latest/meta-data/local-ipv4)
或在您的撰写文件中:
environment:
- HOSTIP=${HOSTIP:-`curl http://169.254.169.254/latest/meta-data/local-ipv4`}
推荐阅读
- azureservicebus - 如何查看转发到特定队列的所有 Azure 服务总线订阅
- swift - 在 Swift 中初始化类的属性
- sql - Oracle 12.1 JSON SQL 命令
- java - 管理员和员工不能在同一域但不同的 URL 上同时登录
- python - 传递给子函数时Python列表索引超出范围
- azure-cosmosdb - 使用私有终结点表 API Azure Cosmos DB
- python - 在 Python 中正确计算向量场的散度
- oracle - 如何在oracle中连接表,其中一个表中的列是另一个表中的行数据
- nuget - dotnet 工具更新未在 nuget 中获取最新版本
- tsql - 如何 SQL 询问关于午夜交互的问题