Publicar mi Docker App en Azure

Una vez que tenemos nuestra aplicación en un contenedor local, nuestro siguiente paso podría ser compartir la imagen, para que otras personas la puedan utilizar o para desplegarla posteriormente.

En la página oficial de Docker Hub, se permite tener repositorios tanto públicos como privados, donde se almacenan estas imágenes (que hemos usado hasta el momento). Existen otras alternativas, en este caso utilizaremos el servicio "registro contenedor de Azure", este servicio tiene 12 meses de prueba gratis* y los costos posteriores los pueden verificar aquí.

1 Creación de un registro de contenedor privado en Azure

Puede crear un contenedor de registro desde el portal Azure o bien desde línea de comandos a través de Azure CLI. Este será un repositorio privado que nos servirá para almacenar nuestra imagen actual de Docker. Describiremos los pasos desde el portal Azure:

Ingresar al portal

Dar clic en menú Create a resource / Containers / Container Registry:

Especificar los parámetros necesarios:

Ir a la pestaña Review + Create y crear el registro de contenedor:

Una vez que termine el aprovisionamiento de nuestro servicio podemos seleccionar ir al recurso:

Y así obtener servidor de inicio de sesión en la opción Overview:


Podemos observar que nuestro servicio nos muestra el login server como mycontaintest.azurecr.io. 


2 Inicio de sesión de Azure desde Fedora

Recordemos que trabajamos sobre una imagen de Fedora 33

Ahora tendremos que ingresar nuestras credenciales de Azure para acceso al registro de contenedor, deberá tener instalado Azure CLI para fedora, el comando az --version nos confirma si está correctamente instalado:

Debemos ingresar nuestras credenciales de Azure, que nos solicita la pantalla al ejecutar el siguiente comando:

az login



Al ingresar nuestras credenciales se confirma tanto en el explorador como en consola el acceso:
T

Tal vez sea necesario cambiar la suscripción a la que esta referenciando, se puede actualizar con el comando siguiente:

az account set --subscription "my subscription"


Después, tendremos que ingresar al registro del contenedor con ayuda del siguiente comando (usamos el login server sin el sufijo de dominio .azurecr.io):

az acr login --name mycontaintest


3 Insertar la imagen en el registro de contenedor de Azure

Nuestra imagen a compartir la observamos después de ejecutar el comando docker images, donde el repositorio getting-started contiene la imagen que queremos compartir:

Para poder insertar una imagen en el registro, debe etiquetarla con el nombre completo del servidor de inicio de sesión del registro.

docker tag getting-started mycontaintest.azurecr.io/getting-started:v1

  • El primer parámetro después de tag es mi repositorio local (getting-started)
  • El último parámetro corresponde al registro de contenedor que creamos en el portal de Azure (mycontaintest.azurecr.io), el nombre que deseamos para la nueva imagen (getting-started) y la etiqueta que tendrá (v1)

Después de ejecutar el comando anterior, si mostramos las imágenes actuales, podremos comprobar que se ha creado mycontaintest.azurecr.io con el tag v1 en nuestro equipo local:


Finalmente, usamos el comando docker push para insertar la imagen recién creada en la instancia del registro de Azure (es decir, en la nube):

docker push mycontaintest.azurecr.io/getting-started:v1


Una vez finalizada la carga, podemos ingresar al portal Azure y ver que la imagen ha sido agregada y podemos navegar hasta su tag: v1:


De igual manera podemos ver el detalle de la imagen:

4 Limpieza de imágenes

Para limpiar nuestras imágenes del equipo local, podemos eliminar la imagen recién creada:

docker rmi mycontaintest.azurecr.io/getting-started:v1


5 Descarga y ejecución de mi app publicada

De esta manera hemos compartido una imagen "Dockenizada" en un repositorio privado como Azure Container Registry, dicha imagen se puede descargar de la misma manera que hemos hecho con las anteriores:

docker run mycontaintest.azurecr.io/getting-started:v1

Al no encontrar la imagen en nuestro equipo, realiza un pull para obtener la imagen, podemos ver ejecutando nuestra aplicación en el puerto 3000:



6 Bibliografía

Inicio rápido: Creación de un registro en el portal - Azure Container Registry | Microsoft Docs

Precios de Container Registry | Microsoft Azure

Share the application | Docker Documentation

https://docs.microsoft.com/en-us/cli/azure/manage-azure-subscriptions-azure-cli#change-the-active-subscription




Comentarios

Entradas más populares de este blog

Primeros pasos con Docker Desktop