Implementación de aplicaciones en Azure Container Instances con Docker Desktop

Publicado el 25 junio, 2020

Senior Program Manager, Azure Tools

En esta entrada de blog ha colaborado MacKenzie Olson, administrador de programas, Azure Container Instances. 

Hoy estamos entusiasmados con la primera versión de la nueva integración de Docker Desktop con Microsoft Azure. El mes pasado Microsoft y Docker anunciaron esta colaboración y hoy ya puede experimentar esta funcionalidad por sí mismo.

La nueva versión perimetral de Docker Desktop proporciona una integración entre Docker y Microsoft Azure que permite usar comandos nativos de Docker para ejecutar las aplicaciones como contenedores sin servidor con Azure Container Instances.

Puede usar la CLI de Docker para iniciar sesión en Azure de forma rápida y sencilla, crear un contexto de Container Instances usando una suscripción y un grupo de recursos de Azure y, después, ejecutar aplicaciones de contenedor único en Container Instances con el comando docker run. También puede implementar aplicaciones multicontenedor en Container Instances, que se definen en un archivo de Docker Compose con el comando docker compose up.

Del código a la nube con contenedores sin servidor

Azure Container Instances es una excelente solución para ejecutar un único contenedor de Docker o una aplicación compuesta por varios contenedores definidos con un archivo de Docker Compose. Container Instances permite ejecutar contenedores en la nube sin necesidad de configurar ninguna infraestructura y aprovechar características como el montaje de repositorios de Azure Storage y GitHub como volúmenes. Puesto que no hay ninguna sobrecarga de administración de la infraestructura o la plataforma, Container Instances satisface a los usuarios que necesitan ejecutar rápidamente contenedores en la nube.

Container Instances es también una buena opción para ejecutar las mismas cargas de trabajo en producción. En este caso, se recomienda aprovechar los comandos de Docker dentro de un flujo de CI/CD automatizado. Esto ahorra el tiempo de tener que reescribir los archivos de configuración, ya que los mismos archivos de Dockerfile y Docker Compose se pueden implementar en producción con herramientas como las Acciones de GitHub. Container Instances tiene también un modelo de precios de pago por uso, lo que significa que solo se le facturará el consumo de CPU y memoria por segundo cuando el contenedor esté en ejecución.

Echemos un vistazo a la nueva integración entre Docker y Azure con un ejemplo. Tenemos un contenedor de trabajo que extrae continuamente pedidos de una cola para procesarlos según sea necesario. Estos son los pasos para ejecutar esto en Container Instances con los comandos nativos de Docker:

Creación y ejecución de un contenedor en Azure Container Instances con la CLI de Docker

Ejecución de un contenedor único

Como puede ver en la animación anterior, la nueva integración de la CLI de Docker con Azure facilita la ejecución de un contenedor en Azure Container Instances. La CLI de Docker permite iniciar sesión en Azure con Multi-Factor Authentication y crear un contexto de Docker con Container Instances como back-end. En la documentación encontrará más información sobre los contextos de Container Instances.

Una vez creado el nuevo contexto de Container Instances, puede utilizarse para usar Container Instances como destino de muchos de los comandos estándar de Docker que probablemente ya use, como docker run, docker ps y docker rm. La ejecución de un sencillo comando docker run <imagen> iniciará un contenedor en Container Instances usando la imagen que esté almacenada en un registro como Docker Hub o Azure Container Registry. Puede ejecutar otros comandos comunes de Docker para inspeccionar, adjuntar y ver registros del contenedor que esté en ejecución.

Uso de Docker Compose para implementar una aplicación multicontenedor

Vemos muchas aplicaciones en contenedores que se componen de varios contenedores relacionados. Los contenedores sidecar suelen realizar servicios de registro o firma para el contenedor principal. Con la nueva integración entre Docker y Azure, puede usar Docker Compose para describir estas aplicaciones multicontenedor.

Puede usar un contexto de Container Instances y un archivo de Docker Compose como parte del bucle interno de edición-compilación-depuración, así como en los flujos de CI/CD. Esto le permite usar los comandos docker compose up y down para poner en marcha o cerrar varios contenedores a la vez en Container Instances.

Visual Studio Code para una experiencia aún mejor

La extensión de Visual Studio Code para Docker proporciona una experiencia integrada para iniciar, detener y administrar sus contenedores, imágenes, contextos, etc. Use la extensión para hacer scaffolding de documentos Dockerfile y archivos de Docker Compose para cualquier lenguaje. Para Node.js, Python y .NET, obtiene depuración integrada de las aplicaciones con un solo clic dentro del contenedor. Y, por supuesto, está el explorador, que tiene varios paneles que facilitan la administración de los objetos de Docker desde Visual Studio Code.

Use el panel Contenedores para enumerar, iniciar, detener, inspeccionar y ver registros, entre otras cosas.

 o	El panel Contenedores del explorador de Docker muestra todos los contenedores y permite administrarlos

El panel Imágenes permite enumerar, extraer, etiquetar e insertar imágenes.

 o	El panel Imágenes del explorador de Docker muestra todas las imágenes y permite administrarlas
Conéctese a Azure Container Registry y a Docker Hub en el panel Registros para ver y administrar sus imágenes en la nube. Incluso puede implementarlas directamente en Azure.

 o	El panel Registros del explorador de Docker muestra los registros que se han conectado para permitir la inserción y la extracción de imágenes

El panel Contextos permite enumerar todos los contextos y cambiar rápidamente entre ellos. Al cambiar de contexto, los demás paneles se actualizan para mostrar los objetos de Docker del contexto seleccionado. Los contextos de Container Instances serán totalmente compatibles en la próxima versión de la extensión para Docker.

o	El panel Contextos del explorador de Docker muestra todos los contextos y permite cambiar entre ellos

Pruébelo

Para comenzar a usar la integración de Docker y Azure, instale la versión perimetral de Docker Desktop. Ya puede aprovechar la extensión de Visual Studio Code para Docker actual y pronto se agregará la compatibilidad con los contextos de Container Instances.

Si desea obtener más información sobre la versión de Docker Desktop, lea esta entrada de blog de Docker. En la documentación encontrará más información sobre el uso de contextos de Docker asociados a Container Instances.