簡體   English   中英

從Docker容器中檢測AWS主機環境

[英]Detect AWS host environment from within a Docker Container

如何從Docker容器中檢測到我正在AWS環境中運行? 我希望同一個容器有選擇地在從AWS內部運行的啟動IF上執行一些AWS命令,但是如果在本地環境中運行,則跳過這些命令。

當前,我認為簡單的方法是在AWS中運行時設置環境變量。

還有另一種方法嗎?

如果您的Docker容器缺少curlwget ,則可以在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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM