2017-06-16 40 views
2

從Docker容器中,我如何檢測到我在AWS環境中運行?我希望同一個容器可以在啓動時自動執行一些AWS命令如果從AWS內部運行,但是如果在本地環境中運行則跳過這些命令。從Docker容器中檢測AWS主機環境

目前,我在考慮簡單的方法是在AWS中運行時設置環境變量。

還有別的辦法嗎?

+0

看到的是https:/ /stackoverflow.com/questions/22409367/fetching-aws-instance-metadata-from-within-docker-container。 – jarmod

回答

2

如果您的碼頭工人容器缺乏捲曲wget的,你可以使用這一招在擊:

if (exec 2>/dev/null ; echo > /dev/tcp/169.254.169.254/80) ; then 
    echo "AWS" 
fi 
+0

最具創新 - 謝謝! –

1

檢查,如果你是在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 
+0

正確。謝謝! –

相關問題