從Docker容器中,我如何檢測到我在AWS環境中運行?我希望同一個容器可以在啓動時自動執行一些AWS命令如果從AWS內部運行,但是如果在本地環境中運行則跳過這些命令。從Docker容器中檢測AWS主機環境
目前,我在考慮簡單的方法是在AWS中運行時設置環境變量。
還有別的辦法嗎?
從Docker容器中,我如何檢測到我在AWS環境中運行?我希望同一個容器可以在啓動時自動執行一些AWS命令如果從AWS內部運行,但是如果在本地環境中運行則跳過這些命令。從Docker容器中檢測AWS主機環境
目前,我在考慮簡單的方法是在AWS中運行時設置環境變量。
還有別的辦法嗎?
如果您的碼頭工人容器缺乏捲曲或wget的,你可以使用這一招在擊:
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
正確!並感謝您的參考! –
不客氣! – Robert
檢查,如果你是在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
正確。謝謝! –
看到的是https:/ /stackoverflow.com/questions/22409367/fetching-aws-instance-metadata-from-within-docker-container。 – jarmod