Use as ferramentas do Docker no Visual Studio 2017 no WindowsUse Docker Tools in Visual Studio 2017 on Windows

O fluxo de trabalho do desenvolvedor ao usar as ferramentas do Docker, inclusas no Visual Studio 2017 versão 15.7 e posteriores, é semelhante a usar o Visual Studio Code e a CLI do Docker (na verdade, ele se baseia na mesma CLI do Docker), mas é mais fácil de começar a usar, simplifica o processo e fornece maior produtividade para criar, executar e compor tarefas.The developer workflow when using the Docker Tools included in Visual Studio 2017 version 15.7 and later, is similar to using Visual Studio Code and Docker CLI (in fact, it's based on the same Docker CLI), but it's easier to get started, simplifies the process, and provides greater productivity for the build, run, and compose tasks. Ele também pode executar e depurar seus contêineres por meio das teclas F5 e Ctrl+F5 usuais do Visual Studio.It can also run and debug your containers via the usual F5 and Ctrl+F5 keys from Visual Studio. Você poderá até mesmo depurar toda a solução se seus contêineres estiverem definidos no mesmo arquivo docker-compose.yml no nível da solução.You can even debug a whole solution if its containers are defined in the same docker-compose.yml file at the solution level.

Configurar seu ambiente localConfigure your local environment

Com as versões mais recentes do Docker for Windows, é mais fácil do que nunca desenvolver aplicativos do Docker porque a instalação é simples, conforme explicado nas referências a seguir.With the latest versions of Docker for Windows, it's easier than ever to develop Docker applications because the setup is straightforward, as explained in the following references.

Dica

Para saber mais sobre como instalar o Docker for Windows, confira (https://docs.docker.com/docker-for-windows/).To learn more about installing Docker for Windows, go to (https://docs.docker.com/docker-for-windows/).

Suporte ao Docker no Visual Studio 2017Docker support in Visual Studio 2017

Há dois níveis de suporte do Docker que você pode adicionar a um projeto.There are two levels of Docker support you can add to a project. Em projetos do ASP.NET Core, você pode adicionar um arquivo Dockerfile ao projeto habilitando o suporte do Docker.In ASP.NET Core projects, you can just add a Dockerfile file to the project by enabling Docker support. O próximo nível é o suporte à orquestração de contêiner, que adiciona um Dockerfile ao projeto (caso ainda não exista) e um arquivo docker-compose.yml no nível da solução.The next level is container orchestration support, which adds a Dockerfile to the project (if it doesn't already exist) and a docker-compose.yml file at the solution level. O suporte à orquestração de contêiner, por meio do Docker Compose, é adicionado por padrão no Visual Studio 2017 versões 15.0 a 15.7.Container orchestration support, via Docker Compose, is added by default in Visual Studio 2017 versions 15.0 to 15.7. O suporte à orquestração de contêiner é um recurso de aceitação no Visual Studio 2017 versão 15.8 ou posteriores.Container orchestration support is an opt-in feature in Visual Studio 2017 versions 15.8 or later. A versão 15.8 e posteriores são compatíveis com o Docker Compose e o Service Fabric.Version 15.8 an later support Docker Compose and Service Fabric.

Os comandos Adicionar > Suporte ao Docker e Adicionar > Suporte ao Orquestrador de Contêineres estão localizados no menu de clique com o botão direito do mouse (ou menu de contexto) do nó do projeto para um projeto do ASP.NET Core no Gerenciador de Soluções, como mostrado na Figura 4-31:The Add > Docker Support and Add > Container Orchestrator Support commands are located on the right-click menu (or context menu) of the project node for an ASP.NET Core project in Solution Explorer, as shown in Figure 4-31:

Adicionar a opção de menu de Suporte ao Docker no Visual Studio

Figura 4-31.Figure 4-31. Como adicionar suporte ao Docker a um projeto do Visual Studio 2017Adding Docker support to a Visual Studio 2017 project

Adicionar suporte ao DockerAdd Docker support

É possível adicionar suporte ao Docker a um projeto do ASP.NET Core existente ao selecionar Adicionar > Suporte ao Docker em Gerenciador de Soluções.You can add Docker support to an existing ASP.NET Core project by selecting Add > Docker Support in Solution Explorer. Você também pode habilitar o suporte ao Docker durante a criação do projeto selecionando Habilitar suporte ao Docker na caixa de diálogo Novo aplicativo Web do ASP.NET Core que abre após você clicar em OK na caixa de diálogo Novo Projeto, conforme mostrado na Figura 4-32.You can also enable Docker support during project creation by selecting Enable Docker Support in the New ASP.NET Core Web Application dialog box that opens after you click OK in the New Project dialog box, as shown in Figure 4-32.

Habilitar o suporte ao Docker para o novo aplicativo Web do ASP.NET Core no Visual Studio

Figura 4-32.Figure 4-32. Habilitar o suporte ao Docker durante a criação do projeto no Visual Studio 2017Enable Docker support during project creation in Visual Studio 2017

Ao adicionar ou habilitar o suporte ao Docker, o Visual Studio adiciona um arquivo Dockerfile ao projeto.When you add or enable Docker support, Visual Studio adds a Dockerfile file to the project.

Observação

Ao habilitar o suporte ao Docker Compose durante a criação do projeto em um projeto do ASP.NET (.NET Framework, não em um projeto do .NET Core), como mostrado na Figura 4-33, o suporte à orquestração de contêiner também é adicionado.When you enable Docker Compose support during project creation for a ASP.NET project (.NET Framework, not a .NET Core project) as shown in Figure 4-33, container orchestration support is also added.

Habilitar o suporte ao Docker Compose para um projeto do ASP.NET

Figura 4-33.Figure 4-33. Como habilitar o suporte ao Docker Compose para um projeto do ASP.NET no Visual Studio 2017Enabling Docker Compose support for an ASP.NET project in Visual Studio 2017

Adicionar suporte à orquestração de contêinerAdd container orchestration support

Se você deseja compor uma solução de vários contêineres, adicione o suporte à orquestração de contêiner aos seus projetos.When you want to compose a multi-container solution, add container orchestration support to your projects. Isso permite que você execute e depure um grupo de contêineres (uma solução inteira) ao mesmo tempo, como se eles estivessem definidos no mesmo arquivo docker-compose.yml.This lets you run and debug a group of containers (a whole solution) at the same time if they're defined in the same docker-compose.yml file.

Para adicionar o suporte à orquestração de contêiner, clique com o botão direito do mouse no nó do projeto ou na solução no Gerenciador de Soluções e escolha Adicionar > Suporte à orquestração de contêiner.To add container orchestration support, right-click on the solution or project node in Solution Explorer, and choose Add > Container Orchestration Support. Em seguida, escolha Docker Compose ou Service Fabric para gerenciar os contêineres.Then choose Docker Compose or Service Fabric to manage the containers.

Depois de adicionar o suporte à orquestração de contêiner ao seu projeto, você verá um Dockerfile adicionado ao projeto e uma pasta docker-compose adicionada à solução no Gerenciador de Soluções, como mostrado na Figura 4-34:After you add container orchestration support to your project, you see a Dockerfile added to the project and a docker-compose folder added to the solution in Solution Explorer, as shown in Figure 4-34:

Arquivos do Docker no Gerenciador de Soluções no Visual Studio

Figura 4-34.Figure 4-34. Arquivos do Docker no Gerenciador de Soluções no Visual Studio 2017Docker files in Solution Explorer in Visual Studio 2017

Se o docker-compose.yml já existir, o Visual Studio adiciona nele apenas as linhas necessárias do código de configuração.If docker-compose.yml already exists, Visual Studio just adds the required lines of configuration code to it.

Configurar as ferramentas do DockerConfigure Docker tools

No menu principal, escolha Ferramentas > Opções e expanda Ferramentas de contêiner > Configurações.From the main menu, choose Tools > Options, and expand Container Tools > Settings. As configurações de ferramentas de contêiner aparecem.The container tools settings appear.

Opções de ferramentas de Docker do Visual Studio, mostrando: Extração automática das imagens necessárias do Docker no carregamento do projeto, início automático dos contêineres em segundo plano, encerramento automático dos contêineres no fechamento da solução e Não solicitar para confiar no certificado SSL.

Figura 4-35.Figure 4-35. Opções de ferramentas do DockerDocker Tools Options

A tabela a seguir pode ajudá-lo a decidir como definir essas opções.The following table might help you decide how to set these options.

NomeName Configuração PadrãoDefault Setting Aplica-se aApplies To DESCRIÇÃODescription
Extração automática das imagens necessárias do Docker no carregamento do projetoAutomatically pull required Docker images on project load OnOn Docker ComposeDocker Compose Para desempenho aprimorado durante o carregamento de projetos, o Visual Studio iniciará uma operação de pull do Docker em segundo plano para que, quando você estiver pronto para executar seu código, a imagem já esteja baixada ou sendo baixada.For increased performance when loading projects, Visual Studio will start a Docker pull operation in the background so that when you're ready to run your code, the image is already downloaded or in the process of downloading. Se você estiver apenas carregando projetos e procurando código, será possível desativar isso para evitar o download de imagens de contêiner que você não precisa.If you're just loading projects and browsing code, you can turn this off to avoid downloading container images you don't need.
Início automático dos contêineres em segundo planoAutomatically start containers in background OnOn Docker ComposeDocker Compose Novamente, para melhorar o desempenho, o Visual Studio cria um contêiner com montagens de volume prontas para quando você compilar e executar seu contêiner.Again for increased performance, Visual Studio creates a container with volume mounts ready for when you build and run your container. Se você desejar controlar quando o contêiner é criado, desative essa opção.If you want to control when your container is created, turn this off.
Encerramento automático dos contêineres na soluçãoAutomatically kill containers on solution close OnOn Docker ComposeDocker Compose Desative essa opção se desejar que os contêineres para sua solução continuem a executar após fechar a solução ou fechar o Visual Studio.Turn this off if you would like containers for your solution to continue to run after closing the solution or closing Visual Studio.
Não solicitar para confiar no certificado SSL do localhostDo not prompt for trusting localhost SSL certificate OffOff Projetos do ASP.NET Core 2.2ASP.NET Core 2.2 projects Se o certificado SSL do localhost não for confiável, o Visual Studio solicitará sempre que você executar seu projeto, a menos que esta caixa de seleção esteja marcada.If the localhost SSL certificate is not trusted, Visual Studio will prompt every time you run your project, unless this checkbox is checked.

Aviso

Se o certificado SSL do localhost não for confiável e você marcar a caixa para suprimir a solicitação, as solicitações da Web HTTPS poderão falhar no tempo de execução em seu aplicativo ou serviço.If the localhost SSL certificate is not trusted, and you check the box to suppress prompting, then HTTPS web requests might fail at runtime in your app or service. Nesse caso, desmarque a caixa de seleção Não solicitar, execute seu projeto e indique a confiança no prompt.In that case, uncheck the Do not prompt checkbox, run your project, and indicate trust at the prompt.

Dica

Para obter mais detalhes sobre a implementação dos serviços e o uso das Ferramentas do Visual Studio para Docker, leia os seguintes artigos:For further details on the services implementation and use of Visual Studio Tools for Docker, read the following articles:

Depuração de aplicativos em um contêiner local do Docker: https://docs.microsoft.com/azure/vs-azure-tools-docker-edit-and-refreshDebugging apps in a local Docker container: https://docs.microsoft.com/azure/vs-azure-tools-docker-edit-and-refresh

Implantar um contêiner ASP.NET em um registro de contêiner usando o Visual Studio: https://docs.microsoft.com/azure/vs-azure-tools-docker-hosting-web-apps-in-dockerDeploy an ASP.NET container to a container registry using Visual Studio: https://docs.microsoft.com/azure/vs-azure-tools-docker-hosting-web-apps-in-docker