Primeros pasos con Docker en Azure

¿No sería increíble aprovechar el flujo de trabajo que usa con Docker en todas las plataformas? De eso se trata este artículo. En Primeros pasos con Docker en Azure, Exploraré las posibilidades que ofrece la integración de estas dos instancias.

requisitos previos

Para seguir este tutorial, necesitarás:

  1. Docker instalado en su máquina de desarrollo local. Si está utilizando Linux, puede instalar Docker siguiendo los pasos descritos aquí. Alternativamente, puede instalar Docker Desktop para Mac o Docker Desktop para ventanas.
  2. un libre Cuenta en la nube de Azure para ejecutar los contenedores.
  3. Un editor de texto, preferiblemente con soporte para resaltado de sintaxis. Una buena opción multiplataforma es VSCode o Atom.

Conociendo los conceptos básicos, Docker vs. Azure

Antes de sumergirnos en la creación y administración de contenedores Docker en Azure, es una buena idea tener clara la terminología utilizada por cada plataforma.

Instancias de contenedor de Azure (ACI). Este es el servicio utilizado para implementar contenedores en la nube pública de Microsoft Azure. En esta guía utilizaremos una integración con ACI desarrollada por Docker que nos permitirá trabajar en la nube de Azure como si lo hiciéramos localmente.

Contexto ACI de Docker. Todos los contenedores que usaremos en Azure necesitan un entorno definido para ejecutarse. Docker ha llamado a estos entornos "contextos". Explicar en detalle el concepto de contextos de Docker está más allá del alcance de este artículo, pero puede pensar en contextos de manera similar a los "espacios de nombres" en Kubernetes.

Grupo de recursos de Azure. En Azure, un grupo de recursos consta de los recursos que usarán los contenedores. Esto incluye cuentas de almacenamiento, redes virtuales, máquinas virtuales y más.

Trabajar con Docker frente a trabajar con Azure

No hay mejor manera de comenzar con Docker en Azure que con un ejemplo que muestra sus diferencias básicas. En las próximas dos secciones, ejecutaremos un contenedor, primero usando Azure y luego Docker.

Cloud Shell nativo de Azure

Comencemos por crear un contenedor simple con Azure Cloud Shell. Para ello, abra la CLI de Azure, ya sea localmente o desde Azure Portal.

El siguiente paso es crear un grupo de recursos para ejecutar nuestro contenedor. Para este ejemplo, usaremos el nombre “azul-rg” y la ubicación “Este” (Este de EE. UU.); sin embargo, no dude en cambiar estos valores para que se ajusten a sus necesidades.

Desde la consola, ejecute el siguiente comando:

grupo az crear –nombre azure-rg –ubicación eastus

Recibirá un mensaje similar al siguiente que indica que el grupo de recursos se ha creado correctamente.

Ahora, ejecute el siguiente comando para crear el contenedor holamundoazur en el grupo de recursos azul-rg:

az container create \ --resource-group azure-rg \ --name azurehelloworld \ --image microsoft/aci-helloworld \ --ports 80 \ --dns-name-label unique-container-dns-label \ --ubicación Este

Una vez que el proceso esté listo, su contenedor debería estar en funcionamiento. Puede verificar el estado del contenedor y el FQDN ejecutando:

az container show \ --resource-group azure-rg \ --name azurehelloworld \ --query "{FQDN:ipAddress.fqdn,ProvisioningState:provisioningState}" \ --out table

La terminal debería mostrar algo similar a esto:

Ahora, copie el FQDN desde la ventana de la terminal, en nuestro ejemplo, contenedor-único-dns-label.eastus.azurecontainer.ioy péguelo en la barra de direcciones de su navegador. Debería ver una imagen similar a la que se muestra a continuación.

Habiendo demostrado el procedimiento en el entorno nativo de Azure, es hora de dar paso a Docker.

Integración Docker ACI

Antes de trabajar en la nube de Azure, el primer paso es iniciar sesión tanto en Docker Hub como en la nube de Azure. Comience abriendo la terminal y escribiendo en la consola el comando:

inicio de sesión de la ventana acoplable

Después de ingresar sus credenciales, solo queda hacer un procedimiento similar para Azure. Aún en la terminal, use el siguiente comando:

ventana acoplable inicio de sesión azul

Según el sistema operativo de su máquina local, este comando puede abrir una ventana del navegador para iniciar sesión en su cuenta de Azure o solicitarle que ingrese un token de autenticación en otra ventana. Una vez que haya iniciado sesión, estará listo para continuar.

El primer paso para comenzar a trabajar con Docker en Azure es crear un contexto donde se puedan ejecutar los contenedores. Como se explicó anteriormente, los contextos son similares a los espacios de nombres de K8. Para crear su primer contexto ACI, use el siguiente comando.

contexto docker crear aci mycontext

Una vez que se ingresa el comando, se le preguntará si desea usar un grupo de recursos existente o crear uno nuevo. Para nuestro ejemplo, optaremos por crear uno nuevo.

 

Ahora, verifique la creación del contexto de la ventana acoplable emitiendo:

lista de contexto de la ventana acoplable

Si está siguiendo esta guía, solo debe tener dos contextos, "por defecto” (contexto local) y “mi contexto” (contexto remoto en ACI).

Una vez que se crea el contexto, todo lo que tiene que hacer para ejecutar un contenedor en Azure es usar un comando similar al que está acostumbrado.

docker –context mycontext run -d –name dockerhelloworld -p 80:80 mcr.microsoft.com/azuredocs/aci-helloworld

Nótese que la adición de “–contexto micontexto”. Esta es la parte que le dice a Docker qué contexto usar. A partir de ahora, debe especificar el contexto en uso con cada comando. Sin embargo, una alternativa sería cambiar el contexto simplemente ejecutando: docker context use mycontext. A pesar de este atajo, seguiremos usando la notación larga para evitar confundir el entorno local con el entorno remoto en Azure.

De regreso a la terminal, verifique el estado del contenedor usando el comando:

docker –context mycontext ps

La salida debe ser similar a esta:

Lo primero que notará es que solo se muestra el contenedor que acaba de crear con Docker, y no el primero creado en Azure. Esto sucede porque Docker solo puede listar contenedores creados en el contexto especificado.

Ahora, copie la dirección IP del contenedor y péguela en su navegador. Debería obtener el mismo resultado que antes:

Echemos un vistazo a lo que tenemos hasta ahora en Azure Portal. Primero, haga clic en "Grupos de recursos".

Debería poder ver los grupos de recursos creados hasta el momento, tanto el primero creado desde el portal como el segundo creado con Docker.

Del mismo modo, puede confirmar que ambos contenedores se están ejecutando en la sección "Todos los recursos".

Pensamientos finales

En este blog, he explorado brevemente las posibilidades que ofrece la integración de Docker con ACI. Es posible que ya haya notado algunos puntos clave durante este tutorial:

  1. La integración de Docker con ACI abre la posibilidad de trabajar localmente y usar los comandos a los que ya está acostumbrado.
  2. Podría decirse que el flujo de trabajo con Docker es algo más rápido. Sin embargo, a medida que realiza operaciones más complejas, esto podría cambiar rápidamente.
  3. Como era de esperar, la integración con ACI tiene sus limitaciones. Será inevitable utilizar Azure Shell para determinadas operaciones. Esto puede cambiar con el tiempo, pero por ahora, solo podrá realizar operaciones básicas desde Docker. Para obtener más información sobre la integración de ACI, lo invitamos a leer la documentación.
es_CRES