Inicio rápido: Implementación de una instancia de contenedor en Azure mediante Azure PowerShell
Use Azure Container Instances para ejecutar contenedores de Docker sin servidor en Azure con sencillez y velocidad. Implemente una aplicación en una instancia de contenedor a petición cuando no necesite una plataforma de orquestación de contenedores completa, como Azure Kubernetes Service.
En este inicio rápido, usará Azure PowerShell para implementar un contenedor aislado de Windows y hacer que su aplicación esté disponible con un nombre de dominio completo (FQDN) y un puerto. Unos pocos segundos después de ejecutar un comando de implementación único, puede ir a la aplicación que se ejecuta en el contenedor:
! [Aplicación implementada en Azure Container Instances vista en el explorador] [./media/container-instances-quickstart/view-an-application-running-in-an-azure-container-instance.png]
Si no tiene una suscripción a Azure, cree una cuenta gratuita antes de empezar.
Nota
Se recomienda usar el módulo Azure Az de PowerShell para interactuar con Azure. Para comenzar, consulte Instalación de Azure PowerShell. Para más información sobre cómo migrar al módulo Az de PowerShell, consulte Migración de Azure PowerShell de AzureRM a Az.
Azure Cloud Shell
En Azure se hospeda Azure Cloud Shell, un entorno de shell interactivo que puede utilizar mediante el explorador. Puede usar Bash o PowerShell con Cloud Shell para trabajar con los servicios de Azure. Puede usar los comandos preinstalados de Cloud Shell para ejecutar el código de este artículo sin tener que instalar nada en su entorno local.
Para iniciar Azure Cloud Shell:
Opción | Ejemplo o vínculo |
---|---|
Seleccione Pruébelo en la esquina superior derecha de un bloque de código o de comandos. Solo con seleccionar Pruébelo no se copia automáticamente el código o comando en Cloud Shell. | |
Vaya a https://shell.azure.com o seleccione el botón Iniciar Cloud Shell para abrir Cloud Shell en el explorador. | |
Seleccione el botón Cloud Shell en la barra de menús de la esquina superior derecha de Azure Portal. |
Para usar Azure Cloud Shell:
Inicie Cloud Shell.
Seleccione el botón Copiar en un bloque de código (o bloque de comandos) para copiar el código o comando.
Pegue el código o comando en la sesión de Cloud Shell. Para ello, seleccione Ctrl+Mayús+V en Windows y Linux, o bien seleccione Cmd+Mayús+V en macOS.
Seleccione Enter para ejecutar el código o comando.
Si decide instalar y usar PowerShell localmente, para este tutorial se requiere el módulo de Azure PowerShell. Ejecute Get-Module -ListAvailable Az
para encontrar la versión. Si necesita actualizarla, consulte Instalación del módulo de Azure PowerShell. Si PowerShell se ejecuta localmente, también deberá ejecutar Connect-AzAccount
para crear una conexión con Azure.
Crear un grupo de recursos
Las instancias de contenedores de Azure, al igual que otros recursos de Azure, se deben implementar en un grupo de recursos. Los grupos de recursos le permiten organizar y administrar los recursos relacionados de Azure.
Primero, cree un grupo de recursos denominado myResourceGroup en la ubicación eastus con el siguiente comando New-AzResourceGroup:
New-AzResourceGroup -Name myResourceGroup -Location EastUS
Creación de un puerto para la instancia de contenedor
Puede exponer los contenedores en Internet mediante la especificación para que se abran uno o varios puertos, o la especificación de una etiqueta de nombre DNS o ambas. En este inicio rápido, implementará un contenedor con una etiqueta de nombre DNS para que sea accesible públicamente. En esta guía, realizamos ambas acciones, pero primero debe crear un objeto de puerto en PowerShell para que la instancia de contenedor lo use.
$port = New-AzContainerInstancePortObject -Port 80 -Protocol TCP
Crear un grupo de contenedores
Ahora que tiene un grupo de recursos y un puerto, puede ejecutar un contenedor expuesto a Internet en Azure. Para crear una instancia de contenedor con Azure PowerShell, primero debe crear un ContainerInstanceObject
al proporcionar un nombre, una imagen y un puerto para el contenedor. En este inicio rápido, usará la imagen mcr.microsoft.com/azuredocs/aci-helloworld
pública.
New-AzContainerInstanceObject -Name myContainer -Image mcr.microsoft.com/azuredocs/aci-helloworld -Port @($port)
A continuación, use el cmdlet New-AzContainerGroup. Debe proporcionar un nombre para el grupo de contenedores, el nombre del grupo de recursos, una ubicación para el grupo de contenedores, la instancia de contenedor que ha creado, el tipo de sistema operativo y una etiqueta de nombre DNS de dirección IP única.
Ejecute un comando similar al siguiente para iniciar una instancia de contenedor. Establezca un valor -IPAddressDnsNameLabel
que sea único dentro de la región de Azure en la que cree la instancia. Si recibe un mensaje de error "DNS name label not available" (La etiqueta de nombre DNS no está disponible), pruebe otra etiqueta de nombre DNS diferente.
$containerGroup = New-AzContainerInstanceObject -ResourceGroupName myResourceGroup -Name myContainerGroup -Location EastUS -Container myContainer -OsType Windows -IPAddressDnsNameLabel aci-quickstart-win -IpAddressType Public -IPAddressPort @($port)
Al cabo de unos segundos, debe recibir una respuesta de Azure. El estado ProvisioningState
del contenedor es inicialmente En creación, pero debería cambiar a Correcto en un minuto o dos. Compruebe el estado de la implementación mediante el cmdlet Get-AzContainerGroup:
Get-AzContainerGroup -ResourceGroupName myResourceGroup -Name myContainerGroup
También puede imprimir el objeto $containerGroup y filtrar la tabla para el estado de aprovisionamiento del contenedor, el nombre de dominio completo (FQDN) y la dirección IP.
$containerGroup | Format-Table InstanceViewState, IPAddressFqdn, IPAddressIP
El estado de aprovisionamiento, el FQDN y la dirección IP del contenedor aparecen en la salida del cmdlet:
PS Azure:\> Get-AzContainerGroup -ResourceGroupName myResourceGroup -Name myContainerGroup
ResourceGroupName : myResourceGroup
Id : /subscriptions/<Subscription ID>/resourceGroups/myResourceGroup/providers/Microsoft.ContainerInstance/containerGroups/myContainerGroup
Name : myContainerGroup
Type : Microsoft.ContainerInstance/containerGroups
Location : eastus
Tags :
ProvisioningState : Creating
Containers : {myContainer}
ImageRegistryCredentials :
RestartPolicy : Always
IpAddress : 52.226.19.87
DnsNameLabel : aci-demo-win
Fqdn : aci-demo-win.eastus.azurecontainer.io
Ports : {80}
OsType : Windows
Volumes :
State : Pending
Events : {}
Si el estado ProvisioningState
del contenedor es Correcto, vaya a su FQDN en el explorador. Si ve una página web parecida a la siguiente, enhorabuena. Ha implementado correctamente una aplicación que se ejecuta en un contenedor de Docker en Azure.
! [Visualización de una aplicación implementada en Azure Container Instances en el explorador] [./media/container-instances-quickstart/view-an-application-running-in-an-azure-container-instance.png]
Limpieza de recursos
Cuando haya terminado con el contenedor, elimínelo con el cmdlet Remove-AzContainerGroup:
Remove-AzContainerGroup -ResourceGroupName myResourceGroup -Name myContainerGroup
Pasos siguientes
En esta guía de inicio rápido, ha creado una instancia de contenedor de Azure a partir de una imagen en un repositorio público de Docker Hub. Si quiere compilar una imagen de contenedor e implementarla desde un registro de contenedor privado de Azure, vaya al tutorial de Azure Container Instances.