Usar ferramentas do Docker no Visual Studio no WindowsUse Docker Tools in Visual Studio 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 o 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 StudioDocker support in Visual Studio

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. O Visual Studio 2019 e versões posteriores também dão suporte à implantação de kubernetes/Helm .Visual Studio 2019 and later supports Kubernetes/Helm deployment as well.

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. Adicionando o suporte do Docker a um projeto do Visual Studio 2019Adding Docker support to a Visual Studio 2019 project

Adicionar suporte ao DockerAdd Docker support

Além da opção de adicionar suporte do Docker a um aplicativo existente, conforme mostrado na seção anterior, você também pode habilitar o suporte do Docker durante a criação do projeto selecionando habilitar suporte do Docker na caixa de diálogo novo ASP.NET Core aplicativo Web que é aberta depois que você clica em OK na caixa de diálogo novo projeto , como mostrado na Figura 4-32.Besides the option to add Docker support to an existing application, as shown in the previous section, 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 do Docker durante a criação do projeto no Visual Studio 2019Enable Docker support during project creation in Visual Studio 2019

Quando você adiciona ou habilita o suporte do Docker, o Visual Studio adiciona um arquivo Dockerfile ao projeto, que inclui referências a todo o projeto necessário da solução.When you add or enable Docker support, Visual Studio adds a Dockerfile file to the project, that includes references to all required project from the solution.

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 kubernetes/Helm ou Docker Compose para gerenciar os contêineres.Then choose Kubernetes/Helm or Docker Compose to manage the containers.

Depois de adicionar suporte de orquestração de contêiner ao seu projeto, você verá um Dockerfile adicionado ao projeto e uma pasta Docker-Compose adicionada à solução em Gerenciador de soluções, conforme mostrado na Figura 4-33: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-33:

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

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

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 das ferramentas do Docker do Visual Studio, mostrando três páginas: geral, projeto único e Docker Compose, detalhes no texto do artigo.

Figura 4-34.Figure 4-34. 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.

Página/configuraçãoPage/Setting Configuração padrãoDefault Setting DescriçãoDescription
Página geralGeneral page
Instalar o Docker desktop, se necessárioInstall Docker Desktop if needed Avisar-mePrompt me
Iniciar o Docker desktop, se necessárioStart Docker Desktop if needed Avisar-mePrompt me
Confiar ASP.NET Core certificado SSLTrust ASP.NET Core SSL certificate Avisar-mePrompt me Se o certificado SSL do localhost não tiver sido marcado como confiável (com dotnet dev-certs https --trust ), o Visual Studio será notificado sempre que você executar o projeto.If the localhost SSL certificate hasn't been marked as trusted (with dotnet dev-certs https --trust), Visual Studio will prompt every time you run your project.
Página de projeto únicoSingle Project page
Efetuar pull de imagens do Docker necessárias no projeto abertoPull required Docker images on project open VerdadeiroTrue Para aumentar o desempenho ao executar o projeto, 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 no processo de download.For increased performance when running the project, 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. Isso pode reduzir a experiência do usuário do projeto aberto.This could slow the open project user experience.
Efetuar pull de imagens atualizadas do Docker na carga do projetoPull updated Docker images on project load Projetos do .NET Core.NET Core projects Receba atualizações para imagens existentes para obter as atualizações mais recentes no projeto aberto.Pull updates to existing images to get the latest updates on project open. Isso pode reduzir a experiência do usuário do projeto aberto.This could slow the open project user experience.
Remover contêineres no fechamento do projetoRemove containers on project close VerdadeiroTrue Limpeza no fechamento do projeto, isso pode reduzir a experiência do usuário do projeto de fechamento, mas normalmente é rápido mesmo assim.Clean up on project close, This could slow the close project user experience but it's usually fast anyway.
Executar contêineres no projeto abertoRun containers on project open VerdadeiroTrue Para aumentar o desempenho ao executar o projeto, o Visual Studio iniciará todos os contêineres na solução.For increased performance when running the project, Visual Studio will start all containers in the solution. Isso pode reduzir a experiência do usuário do projeto aberto.This could slow the open project user experience.
Docker ComposeDocker Compose A página de Docker Compose contém as mesmas configurações da página do projeto único, mas elas se aplicam a soluções de vários contêineres.The Docker Compose page contains the same settings as the Single Project page, but they apply to multi-container solutions.

Aviso

Se o certificado SSL do localhost não for confiável e você definir a opção como nunca, as solicitações da Web https poderão falhar em tempo de execução em seu aplicativo ou serviço.If the localhost SSL certificate is not trusted, and you set the option to Never, then HTTPS web requests might fail at runtime in your app or service. Nesse caso, defina o valor novamente para avisar ou, melhor de novo, confiar nos certificados em seu computador de desenvolvimento usando o comando dotnet dev-certs https --trust .In that case, set the value back again to Prompt me or, better again, trust the certificates in your dev machine using the command dotnet dev-certs https --trust.

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:

Depurar aplicativos em um contêiner do Docker local: /visualstudio/containers/edit-and-refreshDebug apps in a local Docker container: /visualstudio/containers/edit-and-refresh

Implantar um contêiner ASP.NET em um registro de contêiner usando o Visual Studio: /visualstudio/containers/hosting-web-apps-in-dockerDeploy an ASP.NET container to a container registry using Visual Studio: /visualstudio/containers/hosting-web-apps-in-docker