Rövid útmutató: Tárolópéldány üzembe helyezése az Azure-ban az Azure CLI használatával

Az Azure Container Instances segítségével egyszerűen és gyorsan futtathat kiszolgáló nélküli Docker-tárolókat az Azure-ban. Igény szerint üzembe helyezhet alkalmazásokat a tárolópéldányokon, és nem kell teljes körű tárolóvezérlési platformot használnia (amilyen például az Azure Kubernetes Service).

Ebben a rövid útmutatóban az Azure CLI használatával üzembe helyezhet egy izolált Docker-tárolót, és elérhetővé teheti alkalmazását teljes tartománynévvel (FQDN). Néhány másodperccel egyetlen üzembehelyezési parancs végrehajtása után tallózhat a tárolóban futó alkalmazáshoz:

View an app deployed to Azure Container Instances in browser

If you don't have an Azure subscription, create an Azure free account before you begin.

Előfeltételek

  • Ehhez a rövid útmutatóhoz az Azure CLI 2.0.55-ös vagy újabb verziója szükséges. Az Azure Cloud Shell használata esetén a legújabb verzió már telepítve van.

    Figyelmeztetés

    Ajánlott eljárás: A parancssori felületen (CLI) átadott felhasználói hitelesítő adatok egyszerű szövegként vannak tárolva a háttérrendszerben. A hitelesítő adatok egyszerű szövegben való tárolása biztonsági kockázatot jelent; A Microsoft azt tanácsolja az ügyfeleknek, hogy a felhasználói hitelesítő adatokat cli környezeti változókban tárolják annak biztosítása érdekében, hogy a háttérrendszerben tárolt adatok titkosítva vagy átalakítva legyenek.

Erőforráscsoport létrehozása

Az Azure Container Instancest – mint minden Azure-erőforrást – egy erőforráscsoportban kell üzembe helyezni. Az erőforráscsoportok lehetővé teszik az egymáshoz kapcsolódó Azure-erőforrások rendszerezését és kezelését.

Először hozzon létre egy erőforráscsoportot myResourceGroup néven az eastus helyen az alábbi az group create paranccsal:

az group create --name myResourceGroup --location eastus

Tároló létrehozása

Most, hogy rendelkezik egy erőforráscsoporttal, futtathat egy tárolót az Azure-ban. Egy tárolópéldány Azure CLI-vel való létrehozásához adjon meg egy erőforráscsoport-nevet, egy tárolópéldánynevet és egy Docker-tárolórendszerképet az az container create parancsban. Ebben a rövid útmutatóban a nyilvános mcr.microsoft.com/azuredocs/aci-helloworld rendszerképet fogja használni. Ez a kép egy node.js-ben írt kis webalkalmazást tartalmaz, amely statikus HTML-oldalt szolgál ki.

Közzéteheti a tárolókat az interneten egy vagy több port megnyitásával, egy DNS-névcímke megadásával, vagy mindkettővel. Ebben a rövid útmutatóban dns-névcímkével rendelkező tárolót helyez üzembe, hogy a webalkalmazás nyilvánosan elérhető legyen.

Egy tárolópéldány elindításához hajtsa végre a következőhöz hasonló parancsot. Állítson be egy --dns-name-label egyedi értéket abban az Azure-régióban, ahol a példányt létrehozza. Ha „A DNS-névcímke nem érhető el” hibaüzenetet kap, próbálkozzon másik DNS-névcímkével.

az container create --resource-group myResourceGroup --name mycontainer --image mcr.microsoft.com/azuredocs/aci-helloworld --dns-name-label aci-demo --ports 80

Pár másodpercen belül az üzembe helyezés befejezéséről tájékoztató választ kell kapnia az Azure CLI-ről. Az állapotát az az container show paranccsal ellenőrizheti:

az container show --resource-group myResourceGroup --name mycontainer --query "{FQDN:ipAddress.fqdn,ProvisioningState:provisioningState}" --out table

A parancs futtatásakor a tároló teljes tartományneve (FQDN) és annak kiépítési állapota jelenik meg.

FQDN                               ProvisioningState
---------------------------------  -------------------
aci-demo.eastus.azurecontainer.io  Succeeded

Ha a tároló ProvisioningStatesikeres, lépjen a teljes tartománynévre a böngészőben. Ha egy, az alábbihoz hasonló weboldal jelenik meg, gratulálunk! Sikeresen üzembe helyezett egy Docker-tárolóban futó alkalmazást az Azure-ban.

View an app deployed to Azure Container Instances in browser

Ha az alkalmazás nem indul el azonnal, lehet, hogy csak várnia kell pár másodpercet, amíg a DNS elvégzi a propagálást. Ezt követően próbálja ismét frissíteni a böngészőjét.

A tároló naplóinak lekérése

Amikor hibaelhárítást kell végrehajtania egy tárolón, vagy az abban futtatott alkalmazáson (vagy csak meg kell néznie a kimenetet), először tekintse meg a tárolópéldány naplóit.

A tárolópéldány naplóit az az container logs paranccsal hívhatja le:

az container logs --resource-group myResourceGroup --name mycontainer

A kimenet megjeleníti a tároló naplóit, és a HTTP GET kéréseknek is meg kell jelenniük, amelyek akkor jöttek létre, amikor az alkalmazást a böngészőjében megtekintette.

listening on port 80
::ffff:10.240.255.55 - - [21/Mar/2019:17:43:53 +0000] "GET / HTTP/1.1" 304 - "-" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/72.0.3626.121 Safari/537.36"
::ffff:10.240.255.55 - - [21/Mar/2019:17:44:36 +0000] "GET / HTTP/1.1" 304 - "-" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/72.0.3626.121 Safari/537.36"
::ffff:10.240.255.55 - - [21/Mar/2019:17:44:36 +0000] "GET / HTTP/1.1" 304 - "-" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/72.0.3626.121 Safari/537.36"

Kimeneti stream csatolása

A naplók megtekintése mellett helyi standard kimeneti és hibastreameket csatolhat a tárolóhoz.

Először hajtsa végre az az container attach parancsot a helyi konzolnak a tároló kimeneti adatfolyamaihoz való csatolásához:

az container attach --resource-group myResourceGroup --name mycontainer

A csatolást követően frissítse a böngészőt néhány alkalommal, hogy további kimeneteket hozzon létre. Amikor kész, válassza le a konzolt a Control+C paranccsal. A következőhöz hasonló kimenetnek kell megjelennie:

Container 'mycontainer' is in state 'Running'...
(count: 1) (last timestamp: 2019-03-21 17:27:20+00:00) pulling image "mcr.microsoft.com/azuredocs/aci-helloworld"
(count: 1) (last timestamp: 2019-03-21 17:27:24+00:00) Successfully pulled image "mcr.microsoft.com/azuredocs/aci-helloworld"
(count: 1) (last timestamp: 2019-03-21 17:27:27+00:00) Created container
(count: 1) (last timestamp: 2019-03-21 17:27:27+00:00) Started container

Start streaming logs:
listening on port 80

::ffff:10.240.255.55 - - [21/Mar/2019:17:43:53 +0000] "GET / HTTP/1.1" 304 - "-" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/72.0.3626.121 Safari/537.36"
::ffff:10.240.255.55 - - [21/Mar/2019:17:44:36 +0000] "GET / HTTP/1.1" 304 - "-" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/72.0.3626.121 Safari/537.36"
::ffff:10.240.255.55 - - [21/Mar/2019:17:44:36 +0000] "GET / HTTP/1.1" 304 - "-" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/72.0.3626.121 Safari/537.36"
::ffff:10.240.255.55 - - [21/Mar/2019:17:47:01 +0000] "GET / HTTP/1.1" 304 - "-" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/72.0.3626.121 Safari/537.36"
::ffff:10.240.255.56 - - [21/Mar/2019:17:47:12 +0000] "GET / HTTP/1.1" 304 - "-" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/72.0.3626.121 Safari/537.36"

Clean up resources

Miután végzett a tárolóval, az az container delete parancs használatával távolíthatja el:

az container delete --resource-group myResourceGroup --name mycontainer

A tároló törlésének ellenőrzéséhez futtassa az az container list parancsot:

az container list --resource-group myResourceGroup --output table

A mycontainer tárolónak nem szabad megjelennie a parancs kimenetében. Ha az erőforráscsoportban nincs másik tároló, akkor semmilyen kimenet nem jelenik meg.

Ha végzett a myResourceGroup erőforráscsoporttal és az abban lévő erőforrásokkal, törölje le az az group delete paranccsal:

az group delete --name myResourceGroup

További lépések

Ebben a rövid útmutatóban létrehozott egy Azure-tárolópéldányt egy nyilvános Microsoft-rendszerkép használatával. Ha szeretne létrehozni és üzembe helyezni egy tárolórendszerképet egy privát Azure-tárolóregisztrációs adatbázisból, lépjen tovább az Azure Container Instances oktatóanyagára.

A tárolók Azure-beli vezénylési rendszerben való futtatásának lehetőségeiről az Azure Kubernetes Service (AKS) rövid útmutatóiban olvashat.