Creación de una aplicación de varios contenedores (versión preliminar) mediante una configuración de Docker Compose
Nota:
Los contenedores sidecar (versión preliminar) se realizarán correctamente en aplicaciones de varios contenedores en App Service. Para empezar, consulte Tutorial: Configuración de un contenedor sidecar para un contenedor personalizado en Azure App Service (versión preliminar).
Web App for Containers proporciona una manera flexible de utilizar imágenes de Docker. En este inicio rápido se muestra cómo implementar una aplicación de varios contenedores (versión preliminar) en Web App for Containers en Cloud Shell mediante una configuración de Docker Compose.
Si no tiene una suscripción a Azure, cree una cuenta gratuita de Azure antes de empezar.
Requisitos previos
Use el entorno de Bash en Azure Cloud Shell. Para más información, consulte Inicio rápido para Bash en Azure Cloud Shell.
Si prefiere ejecutar comandos de referencia de la CLI localmente, instale la CLI de Azure. Si utiliza Windows o macOS, considere la posibilidad de ejecutar la CLI de Azure en un contenedor Docker. Para más información, vea Ejecución de la CLI de Azure en un contenedor de Docker.
Si usa una instalación local, inicie sesión en la CLI de Azure mediante el comando az login. Siga los pasos que se muestran en el terminal para completar el proceso de autenticación. Para ver otras opciones de inicio de sesión, consulte Inicio de sesión con la CLI de Azure.
En caso de que se le solicite, instale las extensiones de la CLI de Azure la primera vez que la use. Para más información sobre las extensiones, consulte Uso de extensiones con la CLI de Azure.
Ejecute az version para buscar cuál es la versión y las bibliotecas dependientes que están instaladas. Para realizar la actualización a la versión más reciente, ejecute az upgrade.
En este artículo se necesita la versión 2.0.32 de la CLI de Azure, o cualquier versión posterior. Si usa Azure Cloud Shell, ya está instalada la versión más reciente.
Descarga del ejemplo
En esta guía de inicio rápido se usa el archivo de Compose de Docker. El archivo de configuración se pueden encontrar en los ejemplos de Azure.
version: '3.3'
services:
db:
image: mysql:5.7
volumes:
- db_data:/var/lib/mysql
restart: always
environment:
MYSQL_ROOT_PASSWORD: somewordpress
MYSQL_DATABASE: wordpress
MYSQL_USER: wordpress
MYSQL_PASSWORD: wordpress
wordpress:
depends_on:
- db
image: wordpress:latest
ports:
- "8000:80"
restart: always
environment:
WORDPRESS_DB_HOST: db:3306
WORDPRESS_DB_USER: wordpress
WORDPRESS_DB_PASSWORD: wordpress
volumes:
db_data:
En Cloud Shell, cree un directorio de inicio rápido y luego cambie a él.
mkdir quickstart
cd $HOME/quickstart
A continuación, ejecute el comando siguiente para clonar el repositorio de la aplicación de ejemplo en el directorio de inicio rápido. Después, cambie al directorio multicontainerwordpress
.
git clone https://github.com/Azure-Samples/multicontainerwordpress
cd multicontainerwordpress
Crear un grupo de recursos
Un grupo de recursos es un contenedor lógico en el que los recursos de Azure, como aplicaciones web, bases de datos y cuentas de almacenamiento, se implementen y administren. Por ejemplo, más adelante puede elegir eliminar todo el grupo de recursos en un solo paso.
En Cloud Shell, cree un grupo de recursos con el comando az group create
. En el ejemplo siguiente, se crea un grupo de recursos denominado myResourceGroup en la ubicación Centro-sur de EE. UU. Para ver todas las ubicaciones de App Service que se admiten en Linux en el nivel Estándar, ejecute el comando az appservice list-locations --sku S1 --linux-workers-enabled
.
az group create --name myResourceGroup --location "South Central US"
Generalmente se crean el grupo de recursos y los recursos en una región cercana.
Cuando finaliza el comando, una salida de JSON muestra las propiedades del grupo de recursos.
Crear un plan de Azure App Service
En Cloud Shell, cree un plan de App Service en el grupo de recursos con el comando az appservice plan create
.
En el ejemplo siguiente se crea un plan de App Service denominado myAppServicePlan
en el plan de tarifa Estándar (--sku S1
) y en un contenedor Linux (--is-linux
).
az appservice plan create --name myAppServicePlan --resource-group myResourceGroup --sku S1 --is-linux
Cuando se crea el plan de App Service, la CLI de Azure muestra información similar al ejemplo siguiente:
{ "adminSiteName": null, "appServicePlanName": "myAppServicePlan", "geoRegion": "South Central US", "hostingEnvironmentProfile": null, "id": "/subscriptions/0000-0000/resourceGroups/myResourceGroup/providers/Microsoft.Web/serverfarms/myAppServicePlan", "kind": "linux", "location": "South Central US", "maximumNumberOfWorkers": 1, "name": "myAppServicePlan", < JSON data removed for brevity. > "targetWorkerSizeId": 0, "type": "Microsoft.Web/serverfarms", "workerTierName": null }
Creación de una aplicación de Docker Compose
Nota
Actualmente, Docker Compose en Azure App Services tiene un límite de 4000 caracteres al convertirse a Base64.
En el terminal de Cloud Shell, cree una aplicación web de varios contenedores en el plan de App Service myAppServicePlan
con el comando az webapp create. No olvide reemplazar <app_name> por un nombre de aplicación único (los caracteres válidos son a-z
, 0-9
y -
).
az webapp create --resource-group myResourceGroup --plan myAppServicePlan --name <app_name> --multicontainer-config-type compose --multicontainer-config-file compose-wordpress.yml
Cuando se haya creado la aplicación web, la CLI de Azure mostrará información similar a la del ejemplo siguiente:
{ "additionalProperties": {}, "availabilityState": "Normal", "clientAffinityEnabled": true, "clientCertEnabled": false, "cloningInfo": null, "containerSize": 0, "dailyMemoryTimeQuota": 0, "defaultHostName": "<app_name>.azurewebsites.net", "enabled": true, < JSON data removed for brevity. > }
Navegación hasta la aplicación
Vaya a la aplicación implementada en (http://<app_name>.azurewebsites.net
). La aplicación puede tardar unos minutos en cargarse. Si recibe un error, deje pasar unos minutos, y actualice el explorador.
Enhorabuena, ha creado una aplicación de varios contenedores en Web App for Containers.
Limpieza de la implementación
Después de ejecutar el script de ejemplo, se puede usar el comando siguiente para quitar el grupo de recursos y todos los recursos asociados.
az group delete --name myResourceGroup