Diseño y desarrollo de aplicaciones en contenedor con Docker y Microsoft Azure Parte 5
Uso de herramientas de Docker de Visual Studio en Windows
El flujo de trabajo del desarrollador al utilizar las herramientas de Docker incluidas en Visual Studio 2017, versión 15.7 y posteriores, es similar al de usar Visual Studio Code y la CLI de Docker (de hecho, se basa en la misma CLI de Docker), pero es más fácil de iniciar, simplifica el proceso y aumenta la productividad en las tareas de compilación, ejecución y composición. También puede ejecutar y depurar los contenedores a través de las teclas F5 y Ctrl+F5 habituales de Visual Studio. Incluso puede depurar una solución completa si sus contenedores se definen en el mismo archivo docker-compose.yml en el nivel de solución.
Configuración del entorno local
Con las últimas versiones de Docker para Windows, resulta más fácil que nunca desarrollar aplicaciones de Docker porque la configuración es sencilla, tal y como se explica en las siguientes referencias.
Compatibilidad con Docker en Visual Studio
Hay dos niveles de compatibilidad con Docker que puede agregar a un proyecto. En los proyectos de ASP.NET Core, basta con agregar un archivo Dockerfile al proyecto habilitando la compatibilidad con Docker. El siguiente nivel es la compatibilidad con la orquestación de contenedores, que agrega un archivo Dockerfile al proyecto (si aún no existe) y un archivo docker-compose.yml en el nivel de solución. La compatibilidad con la orquestación de contenedores, mediante Docker Compose, se agrega de forma predeterminada en las versiones 15.0 a 15.7 de Visual Studio 2017. La compatibilidad con la orquestación de contenedores es una característica opcional en Visual Studio 2017, versión 15.8 o posteriores. Visual Studio 2019 y versiones posteriores también admiten la implementación de Kubernetes/Helm.
Los comandos Agregar > Compatibilidad con Docker y Agregar > Compatibilidad con el orquestador de contenedores se encuentran en el menú contextual del nodo de proyecto de un proyecto de ASP.NET Core en el Explorador de soluciones, tal y como se muestra en la imagen 4-31:
Agregue compatibilidad con Docker
Además de la opción para agregar compatibilidad con Docker a una aplicación existente, como se ha mostrado en la sección anterior, también puede habilitar la compatibilidad con Docker durante la creación del proyecto si selecciona Habilitar compatibilidad con Docker en el cuadro de diálogo Nueva aplicación web ASP.NET Core que se abre al hacer clic en Aceptar en el cuadro de diálogo Nuevo proyecto, como se muestra en la imagen 4-32.
Al agregar o habilitar la compatibilidad con Docker, Visual Studio agrega al proyecto un archivo Dockerfile que incluye referencias a todos los proyectos necesarios de la solución.
Incorporación de compatibilidad con la orquestación de contenedores
Cuando quiera crear una solución de varios contenedores, agregue compatibilidad con la orquestación de contenedores a sus proyectos. De esta manera podrá ejecutar y depurar un grupo de contenedores (una solución completa) al mismo tiempo si se definen en el mismo archivo docker-compose.yml.
Para agregar compatibilidad con la orquestación de contenedores, haga clic con el botón derecho en el nodo del proyecto en el Explorador de soluciones y elija Agregar > Container Orchestration Support (Compatibilidad con la orquestación de contenedores) . Luego seleccione Kubernetes/Helm o Docker Compose para administrar los contenedores.
Después de agregar al proyecto compatibilidad con la orquestación de contenedores, ve que se han agregado un archivo Dockerfile al proyecto y una carpeta docker-compose a la solución en el Explorador de soluciones, como se muestra en la imagen 4-33:
Si docker-compose.yml ya existe, Visual Studio le agrega simplemente las líneas de código de configuración necesarias.
Configuración de herramientas de Docker
En el menú principal, elija Herramientas > Opciones y expanda Herramientas de contenedor > Configuración. Aparecerá la configuración de las herramientas de contenedor.
La tabla siguiente puede ayudarle a decidir cómo configurar estas opciones.
Uso de comandos de Windows PowerShell en un archivo DockerFile para configurar contenedores con Windows (basado en Docker estándar)
Con los contenedores de Windows, puede convertir las aplicaciones de Windows existentes en imágenes de Docker e implementarlas con las mismas herramientas que el resto del ecosistema de Docker.
Para usar contenedores de Windows, simplemente debe escribir comandos de Windows PowerShell en el archivo Dockerfile, como se muestra en el ejemplo siguiente:
En este caso, vamos a usar Windows PowerShell para instalar una imagen base de Windows Server Core, así como IIS.
Del mismo modo, también se pueden usar comandos de Windows PowerShell para configurar componentes adicionales como ASP.NET 4.x tradicional, .NET Framework 4.6 o cualquier otro software de Windows, como se muestra aquí: