Configurar ferramentas de contêiner do Visual Studio

Você pode controlar alguns aspectos de como o Visual Studio funciona com contêineres do Docker ou do Podman usando as configurações das Ferramentas de Contêiner . Este artigo descreve como definir as configurações das Ferramentas de Contêiner que podem afetar o desempenho e o uso de recursos do Visual Studio quando você trabalha com contêineres.

Você pode controlar alguns aspectos de como o Visual Studio funciona com contêineres do Docker usando as configurações das Ferramentas de Contêiner . Este artigo descreve como definir as configurações das Ferramentas de Contêiner que podem afetar o desempenho e o uso de recursos do Visual Studio quando você trabalha com contêineres do Docker.

Pré-requisitos

Pré-requisitos

  • Área de Trabalho do Docker.
  • Visual Studio com o Desenvolvimento Web e ASP.NET, carga de trabalho de desenvolvimento do Azure e/ou carga de trabalho de desenvolvimento da área de trabalho do .NET instalada.

Configurações das Ferramentas de Contêiner

Para acessar as configurações, selecione Opções de Ferramentas > no menu principal do Visual Studio. No painel esquerdo, role para baixo e expanda Ferramentas de Contêiner.

Configurações gerais

Captura de tela das opções de Ferramentas de Contêiner do Visual Studio.

A tabela a seguir descreve as configurações gerais :

Configurações Valor padrão Descrição
Instalar o Docker Desktop, se necessário Avisar-me Escolha se deseja ser avisado caso o Docker Desktop não esteja instalado.
Iniciar a Área de Trabalho do Docker, se necessário Avisar-me Caso o Docker Desktop não esteja iniciado, escolha se deseja iniciá-lo automaticamente ou se deseja pedir sua confirmação.
Confiar no certificado SSL do ASP.NET Core Avisar-me Escolha se deseja ser avisado caso o localhost certificado SSL não seja confiável em um projeto do ASP.NET Core.

Captura de tela das opções de Ferramentas de Contêiner do Visual Studio.

A tabela a seguir descreve as configurações gerais :

Configurações Valor padrão Descrição
Solicitar a instalação do ambiente de execução do contêiner quando nenhum estiver instalado Enabled Escolha se você deseja receber um aviso caso o Docker Desktop ou o Podman não estejam instalados.
Prompt para confiar no certificado SSL do ASP.NET Core Enabled Escolha se deseja ser avisado caso o localhost certificado SSL não seja confiável em um projeto do ASP.NET Core.
Iniciar o runtime do contêiner, se necessário Avisar-me Se o Docker Desktop ou o Podman não estiverem iniciados, escolha se deseja iniciá-los automaticamente ou receber uma solicitação para isso.
Tempo de execução do contêiner Auto Escolha o runtime do contêiner; Há suporte para Docker e Podman. EscolhaAuto se deseja que o Visual Studio detecte qual runtime você está usando.

Importante

Se você definir o certificado SSL do Trust ASP.NET Core como Nunca e o localhost certificado SSL não for confiável, as solicitações da Web HTTPS poderão falhar em tempo de execução. Nesse caso, defina o certificado SSL do Trust ASP.NET Core como Prompt me, execute seu projeto e indique confiança no prompt.

Importante

Se você definir Prompt para confiar no certificado SSL do ASP.NET Core como Nunca e o localhost certificado SSL não for confiável, as solicitações da Web HTTPS poderão falhar em tempo de execução. Nesse caso, defina Prompt para confiar no certificado SSL do ASP.NET Core para Solicitar minha confirmação, execute seu projeto e indique confiança no prompt.

Configurações de Projeto Único ou Docker Compose

As Configurações das Ferramentas de Contêiner Single Project e Docker Compose são idênticas.

Captura de tela das opções de Ferramentas de Contêiner do Visual Studio 2022.

A tabela a seguir descreve as configurações de Projeto Único e Docker Compose :

Configurações Valor padrão Descrição
Efetuar pull das imagens necessárias do Docker ao abrir projeto Verdade Se deve iniciar uma operação de pull do Docker em segundo plano ao carregar um projeto de contêiner. As imagens necessárias serão baixadas ou estarão em processo de download quando você estiver pronto para executar o código. Se você quiser apenas navegar pelo código, poderá definir como False para evitar o download de imagens de contêiner de que não precisa.
Puxar imagens atualizadas do Docker ao abrir o projeto Projetos do .NET Core Definir se, e em quais projetos, deve-se executar um Docker pull de todas as imagens ao abrir o projeto para garantir as últimas atualizações.
Executar contêineres ao abrir projeto Verdade Se é necessário criar um contêiner ao carregar um projeto de contêiner, para que ele fique pronto quando você compilar e executar. Se preferir controlar quando seu contêiner é criado, defina como False.
Remover contêineres ao fechar o projeto Verdade Decidir se deseja remover contêineres da sua solução após o fechamento da solução ou do Visual Studio.
Executar um serviço em contêineres para habilitar a Autenticação do Azure Verdade Para o Visual Studio versão 17.6 ou posterior, esta opção define se deve instalar e executar um serviço proxy de token no contêiner para habilitar a Autenticação do Azure. Esse serviço permite que seus aplicativos usem os serviços do Azure durante o desenvolvimento. Para obter mais informações, consulte a seção Configurar autenticação do Azure .
Execute um serviço em contêineres para habilitar a Recarga Dinâmica Verdade Para o Visual Studio versão 17.7 e posteriores, esta opção define se o serviço Hot Reload deve ser instalado e executado. Esse serviço só dá suporte à execução sem depuração, Ctrl+F5.

Configurações do projeto de contêiner

As configurações a seguir na seção Aquecimento de Contêiner controlam como o Visual Studio otimiza o desempenho iniciando serviços e preparando imagens antes do uso previsto.

Configurações Valor padrão Descrição
Baixar as imagens necessárias ao abrir o projeto Enabled Se deve iniciar uma operação de pull do Docker em segundo plano ao carregar um projeto de contêiner. As imagens necessárias serão baixadas ou estarão em processo de download quando você estiver pronto para executar o código. Se você quiser apenas navegar pelo código, poderá definir como False para evitar o download de imagens de contêiner de que não precisa.
Executar contêineres ao abrir projeto Verdade Se é necessário criar um contêiner ao carregar um projeto de contêiner, para que ele fique pronto quando você compilar e executar. Se preferir controlar quando seu contêiner é criado, defina como False.
Remover contêineres ao fechar o projeto Verdade Decidir se deseja remover contêineres da sua solução após o fechamento da solução ou do Visual Studio.

As seguintes configurações aparecem na seção de Depuração:

Configurações Valor padrão Descrição
Executar um serviço em contêineres para habilitar a Autenticação do Azure Enabled Se você deve instalar e executar um serviço proxy de token no contêiner para habilitar a Autenticação do Azure. Esse serviço permite que seus aplicativos usem os serviços do Azure durante o desenvolvimento. Para obter mais informações, consulte a seção Configurar autenticação do Azure .
Execute um serviço em contêineres para habilitar a Recarga Dinâmica Enabled Definir se o serviço de Recarga Dinâmica deve ser instalado e executado. Esse serviço só dá suporte à execução sem depuração, Ctrl+F5.
Usar um ponto de entrada baseado em dotnet Enabled Use um ponto de entrada baseado em dotnet para dar suporte ao Linux sem distribuição. Caso esteja desabilitado, tail será usado.

Configurações de janela de contêineres

As configurações da Janela contêineres se aplicam à janela Contêineres no IDE do Visual Studio, que mostra informações sobre contêineres e imagens do Docker. Para obter mais informações, consulte Usar a janela Contêineres.

Captura de tela das Opções de Ferramentas de Contêiner do Visual Studio mostrando as configurações disponíveis para a Janela de Contêineres.

A tabela a seguir descreve as configurações da Janela contêineres :

Configurações Valor padrão Descrição
Confirmar antes de podar contêineres Sempre Definir se será exibido um aviso ao remover contêineres não utilizados.
Confirmar antes de remover imagens Sempre Definir se será exibido um aviso ao remover imagens não utilizadas.
Confirmar antes de remover um contêiner Sempre Se deseja ser avisado ao remover um contêiner.
Confirmar antes de remover uma imagem Sempre Se deseja ser notificado ao remover uma imagem.
Confirmar antes de executar um grande número de imagens Sempre Definir se o sistema deve pedir confirmação antes de iniciar contêineres provenientes de mais de 10 imagens simultaneamente.
Exibir o formato de cadeia de caracteres a ser usado na janela Contêineres Em Branco Um formato de cadeia de caracteres de exibição a ser usado na janela Contêineres, com suporte para tokens {ContainerName}, {ImageName}, {ProjectName}e {ContainerID}.
Agrupar contêineres pelo projeto Docker Compose Sempre Se os contêineres devem ser agrupados pelo projeto do Docker Compose do qual eles fazem parte.

Configurar a autenticação do Azure

Se o aplicativo usa os serviços do Azure, ele precisa de credenciais apropriadas para autenticar com os serviços do Azure quando ele é executado em um contêiner. Normalmente, você pode usar suas próprias credenciais do Azure durante o desenvolvimento, mas para ser executado no ambiente de contêiner, o aplicativo em contêineres requer as credenciais usadas na produção.

O Visual Studio 2022 versão 17.6 e posterior implanta e executa um serviço de proxy de token em seus projetos de contêiner único e Docker Compose para ajudar seus aplicativos e serviços a se autenticar no Azure. O recurso requer a Identidade do Azure 1.9.0 ou posterior.

Com esse serviço habilitado, você pode usar automaticamente a maioria dos serviços do Azure dentro do contêiner sem nenhuma configuração ou configuração adicional. Seu código pode usar DefaultAzureCredential e VisualStudioCredential autenticar com os serviços do Azure da mesma maneira que fora de um contêiner. Para obter mais informações, consulte o README da Identidade do Azure 1.9.0.

Para desabilitar esse recurso, defina Executar um serviço em contêineres para habilitar a Autenticação do Azure como False nas configurações do Projeto Único das Ferramentas de Contêiner ou do Docker Compose.

Cuidado

Utilizar o proxy de token e ativar determinados registros de diagnóstico representa um potencial problema de segurança. Esses logs podem expor as credenciais de autenticação como texto sem formatação. As seguintes variáveis de ambiente habilitam esses logs:

  • Para projetos de contêiner único, MS_VS_CONTAINERS_TOOLS_LOGGING_ENABLED, que fazem logon em %tmp%\Microsoft.VisualStudio.Containers.Tools.
  • Para projetos do Docker Compose, MS_VS_DOCKER_TOOLS_LOGGING_ENABLED, que fazem logon em %tmp%\Microsoft.VisualStudio.DockerCompose.Tools.

Configurações de janela de contêineres

As configurações da Janela contêineres se aplicam à janela Contêineres no IDE do Visual Studio, que mostra informações sobre contêineres e imagens do Docker. Para obter mais informações, consulte Usar a janela Contêineres.

A tabela a seguir descreve as configurações da Janela contêineres :

Configurações Valor padrão Descrição
Confirmar antes de podar contêineres Enabled Definir se será exibido um aviso ao remover contêineres não utilizados.
Confirmar antes de remover imagens Enabled Definir se será exibido um aviso ao remover imagens não utilizadas.
Confirmar antes de remover um contêiner Enabled Se deseja ser avisado ao remover um contêiner.
Confirmar antes de remover uma imagem Enabled Se deseja ser notificado ao remover uma imagem.
Confirmar antes de executar um grande número de imagens Enabled Definir se o sistema deve pedir confirmação antes de iniciar contêineres provenientes de mais de 10 imagens simultaneamente.
Exibir o formato de cadeia de caracteres a ser usado na janela Contêineres Em Branco Um formato de cadeia de caracteres de exibição a ser usado na janela Contêineres, com suporte para tokens {ContainerName}, {ImageName}, {ProjectName}e {ContainerID}.
Agrupar contêineres pelo projeto Docker Compose Enabled Se os contêineres devem ser agrupados pelo projeto do Docker Compose do qual eles fazem parte.

Configurar a autenticação do Azure

Se o aplicativo usa os serviços do Azure, ele precisa de credenciais apropriadas para autenticar com os serviços do Azure quando ele é executado em um contêiner. Normalmente, você pode usar suas próprias credenciais do Azure durante o desenvolvimento, mas para ser executado no ambiente de contêiner, o aplicativo em contêineres requer as credenciais usadas na produção.

O Visual Studio implanta e executa um serviço de proxy de token em seus projetos de contêiner único e Compose para ajudar seus aplicativos e serviços a se autenticarem no Azure. O recurso requer a Identidade do Azure 1.9.0 ou posterior.

Com esse serviço habilitado, você pode usar automaticamente a maioria dos serviços do Azure dentro do contêiner sem nenhuma configuração ou configuração adicional. Seu código pode usar DefaultAzureCredential e VisualStudioCredential autenticar com os serviços do Azure da mesma maneira que fora de um contêiner. Para obter mais informações, consulte o README da Identidade do Azure 1.9.0.

Para desabilitar esse recurso, defina Executar um serviço em contêineres para habilitar a Autenticação do Azure como False na subseção Debugging de Ferramentas de Contêiner das configurações do projeto Contêiner.

Cuidado

Utilizar o proxy de token e ativar determinados registros de diagnóstico representa um potencial problema de segurança. Esses logs podem expor as credenciais de autenticação como texto sem formatação. As seguintes variáveis de ambiente habilitam esses logs:

  • Para projetos de contêiner único, MS_VS_CONTAINERS_TOOLS_LOGGING_ENABLED, que fazem logon em %tmp%\Microsoft.VisualStudio.Containers.Tools.
  • Para projetos do Compose, MS_VS_DOCKER_TOOLS_LOGGING_ENABLED, que fazem logon em %tmp%\Microsoft.VisualStudio.DockerCompose.Tools.