Ejercicio: Publicación de un contenedor de NVIDIA DeepStream Graph Composer para Azure Container Registry

Completado

Ahora que ha empaquetado la aplicación DeepStream Graph Composer en un contenedor, está a punto para publicar este artefacto en una instancia de Azure Container Registry para la distribución segura a otros dispositivos compatibles.

Esta preparación también pone las bases para una posible implementación medianteAzure IoT Edge, que se tratará con más detalle en el módulo siguiente.

  1. Para empezar, siga estas instrucciones para "crear un registro de contenedor". En el documento se muestra cómo crear instancias de los recursos de Container Registry necesarios en Microsoft Azure y cómo iniciar sesión e insertar imágenes en este servicio. Cuando finalice los pasos de esta sección, publicará el artefacto de contenedor de DeepStream Graph Composer en este registro.

    Siga los pasos de Inicio rápido: Creación de un instancia de Azure Container Registry mediante Azure Portal. Solo tiene que seguir los pasos para crear un registro de contenedor. Los pasos adicionales mencionados en la documentación son opcionales. Después de finalizar esta tarea, continúe con los pasos siguientes.

  2. Vaya a la instancia recién implementada de Container Registry en Azure Portal:

    Screenshot that shows the Azure Container Registry overview.

    Observará que el registro de contenedor tiene una propiedad de Servidor de inicio de sesión que hace referencia a la dirección URL para acceder al servicio de forma remota. Esta propiedad termina en azurecr.io. Anote este valor porque lo usará en breve.

  3. Después, seleccione la sección Claves de acceso situada en el lado izquierdo, en Configuración, y habilite la opción de Usuario administrador. Esta operación le concede la capacidad de autenticarse en el registro de contenedor para permitir el acceso desde la instancia de Docker que se ejecuta en el equipo host. De nuevo, anote los valores de Servidor de inicio de sesión, Nombre de usuario y Contraseña, ya que se usan en el paso siguiente.

    Screenshot that shows the Container Registry Access keys.

  4. Ya está a punto para autenticarse en el registro de contenedor y conceder acceso a la instancia de Docker del host. Para realizar este paso, ejecute los siguientes comandos en una sesión de terminal del equipo host:

    sudo docker login <Login server>
    
    1. Cuando se le pida el nombre de usuario, escriba el valor proporcionado en la sección Claves de acceso del registro de contenedor en Azure Portal.

    2. Cuando se le pida la contraseña, escriba el valor proporcionado en la sección Claves de acceso del registro de contenedor en Azure Portal.

    3. Debería ver el mensaje "Inicio de sesión realizado correctamente" después de acceder correctamente.

  5. Para poder insertar la imagen de Docker recién creada en el registro de contenedor, debe etiquetar la imagen para hacer referencia al registro de contenedor. Ejecute el siguiente comando en un terminal en el equipo host:

    sudo docker tag deepstream_test1_dgpu <Login Server>/deepstream_test1_dgpu:v1
    
  6. Para insertar la imagen de contenedor de DeepStream Graph Composer en este repositorio, ejecute este comando:

    sudo docker push <Login Server>/deepstream_test1_dgpu:v1
    
  7. Espere a que se complete la inserción. Después, vuelva al registro de contenedor en Azure Portal y compruebe que la imagen se ha cargado. Para comprobarlo, seleccione Repositorios en la sección Servicios del lado izquierdo de la página de información general. Debería ver la imagen deepstream_test1_dgpu:v1 recién insertada en la lista del repositorio como se muestra aquí:

    Screenshot that shows the Azure Container Registry Repo list.

  8. Por último, si desea ejecutar esta imagen mediante la imagen contenida en el registro de contenedor, ejecute los siguientes comandos en un terminal de un host compatible:

    sudo docker run -it --rm --gpus all -v /tmp/.X11-unix/:/tmp/.X11-unix/ -e DISPLAY=:0 
    <Login server>/deepstream_test1_dgpu:v1
    

    Nota:

    Si piensa ejecutar esta carga de trabajo en una máquina que no sea el host actual con el que ha estado trabajando, debe habilitar el acceso a X11 con sudo xhost + y autenticar la instancia de Docker para acceder al registro de contenedor.

Felicidades. Ha creado y publicado correctamente su primera aplicación de DeepStream Graph Composer en un registro de contenedor seguro para permitir la distribución de la carga de trabajo en varios hosts compatibles.

Pruebe esto

Imagínese que se le ha encargado desarrollar una aplicación de análisis inteligente de vídeo (IVA) para contar el número de personas que entran en un restaurante. El equipo de desarrollo trabaja en estrecha colaboración con un equipo de pruebas que valida la precisión de la solución IVA antes de implementarla en producción. ¿Cómo podría distribuir nuevas compilaciones de la aplicación IVA al equipo de prueba de una manera que no requiera la reconfiguración manual del hardware de prueba?