Creare host Docker in Azure con Docker MachineCreate Docker Hosts in Azure with Docker-Machine

L'esecuzione dei contenitori Docker richiede una VM host che esegue il daemon Docker.Running Docker containers requires a host VM running the docker daemon. Questo argomento descrive come usare il comando docker-machine per creare nuove macchine virtuali Linux, configurate con il daemon Docker, in esecuzione in Azure.This topic describes how to use the docker-machine command to create new Linux VMs, configured with the Docker daemon, running in Azure.

Nota:Note:

  • Questo articolo si basa sulla versione di Docker Machine 0.9.0-rc2 o versione successivaThis article depends on docker-machine version 0.9.0-rc2 or greater
  • I contenitori Windows saranno supportati tramite Docker Machine nel prossimo futuroWindows Containers will be supported through docker-machine in the near future

Creare VM con Docker MachineCreate VMs with Docker Machine

Creare macchine virtuali host di Docker in Azure con il comando docker-machine create usando il driver azure.Create docker host VMs in Azure with the docker-machine create command using the azure driver.

Il driver Azure richiede l'ID sottoscrizione.The Azure driver requires your subscription ID. È possibile usare l'interfaccia della riga di comando di Azure o il Portale di Azure per recuperare la sottoscrizione di Azure.You can use the Azure CLI or the Azure Portal to retrieve your Azure Subscription.

Uso del portale di AzureUsing the Azure Portal

  • Selezionare Sottoscrizioni nella pagina di esplorazione a sinistra e copiare l'ID sottoscrizione.Select Subscriptions from the left navigation page and copy the subscription id.

Uso dell'interfaccia della riga di comando di AzureUsing the Azure CLI

  • Digitare azure account list e copiare l'ID sottoscrizione.Type azure account list and copy the subscription id.

Digitare docker-machine create --driver azure per visualizzare le opzioni e i relativi valori predefiniti.Type docker-machine create --driver azure to see the options and their default values. È anche possibile visualizzare la documentazione del driver di Azure per Docker per altre informazioni.You can also see the Docker Azure Driver documentation for more info.

L'esempio seguente si basa sui valori predefiniti, ma imposta facoltativamente questi valori:The following example relies upon the default values, but it does optionally set these values:

  • azure-dns per il nome associato all'indirizzo IP pubblico e ai certificati generati.azure-dns for the name associated with the public IP and certificates generated. Questo è il nome DNS della macchina virtuale.This is the DNS name of your virtual machine. La macchina virtuale può quindi arrestare e rilasciare in modo sicuro l'indirizzo IP dinamico e consentire di riconnettersi dopo che una macchina virtuale viene avviata nuovamente con un nuovo indirizzo IP.The VM can then safely stop, release the dynamic IP, and provide the ability to reconnect after the vm starts again with a new IP. Il prefisso del nome deve essere univoco per tale area, ovvero UNIQUE_DNSNAME_PREFIX.westus.cloudapp.azure.com.The name prefix must be unique for that region UNIQUE_DNSNAME_PREFIX.westus.cloudapp.azure.com.
  • porta 80 aperta sulla macchina virtuale per l'accesso Internet in uscitaopen port 80 on the VM for outbound internet access
  • dimensioni della macchina virtuale per usare l'archiviazione Premium più velocesize of the VM to utilize faster premium storage
  • archiviazione Premium usata per il disco della macchina virtualepremium storage used for the vm disk
docker-machine create -d azure --azure-subscription-id <Your AZURE_SUBSCRIPTION_ID> --azure-dns <Your UNIQUE_DNSNAME_PREFIX> --azure-open-port 80 --azure-size Standard_DS1_v2 --azure-storage-type "Premium_LRS" mydockerhost 

Scegliere un host di Docker con Docker MachineChoose a docker host with docker-machine

Dopo aver creato un ingresso nella Docker Machine per l'host, è possibile impostare l'host predefinito quando si eseguono comandi di Docker.Once you have an entry in docker-machine for your host, you can set the default host when running docker commands.

Tramite PowerShellUsing PowerShell

docker-machine env MyDockerHost | Invoke-Expression 

Tramite BashUsing Bash

eval $(docker-machine env MyDockerHost)

È ora possibile eseguire i comandi di Docker con l'host specificatoYou can now run docker commands against the specified host

docker ps
docker info

Eseguire un contenitoreRun a container

Dopo aver configurato l'host, è possibile eseguire un semplice server Web per verificare che la configurazione dell'host sia corretta.With a host configured, you can now run a simple web server to test whether your host was configured correctly. In questo esempio viene usata un'immagine nginx standard. Specificare che deve essere in ascolto sulla porta 80 e che, se la VM dell'host viene riavviata, anche il contenitore deve essere riavviato (--restart=always).Here we use a standard nginx image, specify that it should listen on port 80, and that if the host VM restarts, the container will restart as well (--restart=always).

docker run -d -p 80:80 --restart=always nginx

L'output dovrebbe essere simile a quanto segue.The output should look something like the following:

Unable to find image 'nginx:latest' locally
latest: Pulling from library/nginx
efd26ecc9548: Pull complete
a3ed95caeb02: Pull complete
83f52fbfa5f8: Pull complete
fa664caa1402: Pull complete
Digest: sha256:12127e07a75bda1022fbd4ea231f5527a1899aad4679e3940482db3b57383b1d
Status: Downloaded newer image for nginx:latest
25942c35d86fe43c688d0c03ad478f14cc9c16913b0e1c2971cb32eb4d0ab721

Eseguire il test del contenitoreTest the container

Esaminare i contenitori in esecuzione usando docker ps:Examine running containers using docker ps:

CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS              PORTS                         NAMES
d5b78f27b335        nginx               "nginx -g 'daemon off"   5 minutes ago       Up 5 minutes        0.0.0.0:80->80/tcp, 443/tcp   goofy_mahavira

Quindi per vedere il contenitore in esecuzione digitare docker-machine ip <VM name> per trovare l'indirizzo IP da immettere nel browser:And, to see the running container, type docker-machine ip <VM name> to find the IP address to enter in the browser:

PS C:\> docker-machine ip MyDockerHost
191.237.46.90

Esecuzione di un contenitore ngnix

SummarySummary

Docker Machine consente di eseguire facilmente il provisioning di host Docker in Azure per le convalide di host Docker singoli.With docker-machine, you can easily provision docker hosts in Azure for your individual docker host validations. Per l'hosting di produzione di contenitori, vedere l'articolo sul servizio contenitore di AzureFor production hosting of containers, see the Azure Container Service

Per sviluppare applicazioni .NET Core con Visual Studio, vedere gli Strumenti Docker per Visual StudioTo develop .NET Core Applications with Visual Studio, see Docker Tools for Visual Studio