![](/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.