![](/img/trans.png)
[英]Docker on AWS - Environment Variables not inheriting from host to container
[英]Detect AWS host environment from within a Docker Container
如何从Docker容器中检测到我正在AWS环境中运行? 我希望同一个容器有选择地在从AWS内部运行的启动IF上执行一些AWS命令,但是如果在本地环境中运行,则跳过这些命令。
当前,我认为简单的方法是在AWS中运行时设置环境变量。
还有另一种方法吗?
如果您的Docker容器缺少curl或wget ,则可以在Bash中使用此技巧:
if ( exec 2>/dev/null ; echo > /dev/tcp/169.254.169.254/80 ) ; then
echo "AWS"
fi
例如:
curl -i http://169.254.169.254/ | grep "200 OK"
文件: http : //docs.aws.amazon.com/AWSEC2/latest/UserGuide/identify_ec2_instances.html
检查您是否在AWS上运行的粗略方法。 在AWS上运行的所有实例都可以访问IP为169.254.169.254
的内部元数据服务器。 如果您可以连接到它,那么您就在AWS上。 否则你不是。
$ curl -s --connect-timeout 2 169.254.169.254 > /dev/null
$ echo $?
0
在非AWS机器上:
$ curl -s --connect-timeout 2 169.254.169.254 > /dev/null
$ echo $?
28
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.