Guida introduttiva: Distribuire un'istanza di contenitore in Azure usando l'interfaccia della riga di comando di Docker
Istanze di Azure Container consente di eseguire i contenitori Docker serverless in Azure in modo semplice e rapido. Distribuire un'istanza di contenitore su richiesta quando si sviluppano app native del cloud e si vuole passare facilmente dallo sviluppo locale alla distribuzione cloud.
In questo argomento di avvio rapido si usano i comandi nativi dell'interfaccia della riga di comando di Docker per distribuire un contenitore Docker e rendere la relativa applicazione disponibile in Istanze di Azure Container. L'integrazione tra Docker e Azure abilita questa funzionalità. Pochi secondi dopo aver eseguito un comando docker run
, è possibile passare all'applicazione in esecuzione nel contenitore:
Se non si ha una sottoscrizione di Azure, creare un account gratuito prima di iniziare.
Per questo argomento di avvio rapido è necessario Docker Desktop versione 2.3.0.5 o successiva, disponibile per Windows o macOS oppure installare l'interfaccia della riga di comando di integrazione fra Docker e Istanze di Azure Container per Linux.
Importante
Non sono supportate tutte le funzionalità di Istanze di Azure Container. È possibile fornire feedback sull'integrazione fra Docker e Azure creando un problema nel repository di GitHub aci-integration-beta.
Creare un contesto di Azure
Per usare i comandi di Docker per l'esecuzione di contenitori in Istanze di Azure Container, accedere prima di tutto ad Azure:
docker login azure --tenant-id "[tenant ID]"
Per trovare l'ID tenant, passare alle proprietà microsoft Entra ID.
Quando richiesto, immettere o selezionare le credenziali di Azure.
Creare un contesto di Istanze di Azure Container eseguendo docker context create aci
. Questo contesto associa Docker a una sottoscrizione e a un gruppo di risorse di Azure per consentire la creazione e la gestione di istanze di contenitore. Ad esempio, per creare un contesto denominato myacicontext:
docker context create aci myacicontext
Quando richiesto, selezionare l'ID sottoscrizione di Azure, quindi selezionare un gruppo di risorse esistente o crearne un nuovo. Se si sceglie un nuovo gruppo di risorse, ha un nome generato dal sistema alla creazione. Le Istanze di Azure Container, analogamente a tutte le risorse di Azure, devono essere distribuite in un gruppo di risorse. I gruppi di risorse consentono di organizzare e gestire le risorse di Azure correlate.
Eseguire docker context ls
per confermare che il contesto di Istanze di Azure Container è stato aggiunto ai contesti Docker:
docker context ls
Creazione di un contenitore
Dopo aver creato un contesto Docker, è possibile creare un contenitore in Azure. In questo argomento di avvio rapido viene usata l'immagine mcr.microsoft.com/azuredocs/aci-helloworld
pubblica. In questa immagine è inclusa una piccola app Web scritta in Node.js che distribuisce una pagina HTML statica.
Per prima cosa, passare al contesto di Istanze di Azure Container. Tutti i comandi Docker successivi vengono eseguiti in questo contesto.
docker context use myacicontext
Eseguire il comando docker run
seguente per creare l'istanza di contenitore di Azure con la porta 80 esposta a Internet:
docker run -p 80:80 mcr.microsoft.com/azuredocs/aci-helloworld
Output di esempio per una distribuzione riuscita:
[+] Running 2/2
⠿ hungry-kirch Created 5.1s
⠿ single--container--aci Done 11.3s
hungry-kirch
Eseguire docker ps
per ottenere informazioni dettagliate sul contenitore in esecuzione, incluso l'indirizzo IP pubblico:
docker ps
L'output di esempio mostra un indirizzo IP pubblico, in questo caso 52.230.225.232:
CONTAINER ID IMAGE COMMAND STATUS PORTS
hungry-kirch mcr.microsoft.com/azuredocs/aci-helloworld Running 52.230.225.232:80->80/tcp
Passare ora all'indirizzo IP nel browser. Se viene visualizzata una pagina Web simile all'immagine seguente, congratulazioni! È stata completata la distribuzione di un'applicazione in esecuzione in un contenitore Docker in Azure.
Effettuare il pull dei log del contenitore
Quando è necessario risolvere i problemi di un contenitore o dell'applicazione in esecuzione (o semplicemente visualizzarne l'output), iniziare visualizzando i log dell'istanza del contenitore.
Ad esempio, eseguire il comando docker logs
per visualizzare i log del contenitore hungry-kirch nel contesto di Istanze di Azure Container:
docker logs hungry-kirch
L'output visualizza i log per il contenitore e dovrebbe mostrare le richieste HTTP GET generate quando l'applicazione è stata visualizzata nel browser.
listening on port 80
::ffff:10.240.255.55 - - [07/Jul/2020: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 - - [07/Jul/2020: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 - - [07/Jul/2020: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"
Pulire le risorse
Quando il contenitore non è più necessario, eseguire docker rm
per rimuoverlo. Questo comando arresta ed elimina l'istanza di contenitore di Azure.
docker rm hungry-kirch
Passaggi successivi
In questo argomento di avvio rapido è stata creata un'istanza di contenitore di Azure da un'immagine pubblica usando l'integrazione fra Docker ed Azure. Per altre informazioni sugli scenari di integrazione, vedere la documentazione di Docker.
È anche possibile usare l'estensione Docker per Visual Studio Code per un'esperienza integrata di sviluppo, esecuzione e gestione di contenitori, immagini e contesti.
Per usare gli strumenti di Azure per creare e gestire istanze di contenitore, vedere altri argomenti di avvio rapido che usano l'interfaccia della riga di comando di Azure, Azure PowerShell, il portale di Azure e il modello di Azure Resource Manager.
Per usare Docker Compose per definire ed eseguire un'applicazione multi-contenitore in locale e quindi passare a Istanze di Azure Container, continuare con l'esercitazione.