Avvio rapido: Distribuire un'istanza di contenitore in Azure con 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. Questa funzionalità è abilitata dall'integrazione tra Docker e Azure. Pochi secondi dopo aver eseguito un comando docker run, è possibile passare all'applicazione in esecuzione nel contenitore:

App distribuita usando Istanze di Azure Container visualizzata nel browser

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

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, questo viene creato con un nome generato dal sistema. 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

Creare 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.

App distribuita usando Istanze di Azure Container visualizzata nel browser

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.