Usar a janela Contêineres

Você pode ver o que está acontecendo dentro dos contêineres que hospedam seu aplicativo usando a janela Contêineres. Se você está acostumado a usar o prompt de comando para executar comandos do Docker para exibir e diagnosticar o que está acontecendo com seus contêineres, essa janela fornece uma maneira mais conveniente de monitorar contêineres sem sair do IDE do Visual Studio.

Você também pode exibir informações sobre imagens de contêiner usando a janela Contêineres.

Pré-requisitos

Exibir informações sobre contêineres

A janela Contêineres é aberta automaticamente quando você inicia um projeto .NET em contêineres. Para exibir os contêineres no Visual Studio a qualquer momento, use Ctrl+Q para ativar a caixa de Pesquisa do Visual Studio, digite Containers e escolha o primeiro item. Você também pode abrir a janela Contêineres no menu principal. Use o caminho do menu Exibir>Outras Janelas>Contêineres.

Captura de tela da janela Contêineres no Visual Studio com um contêiner selecionado no painel esquerdo e a guia Ambiente selecionada no painel direito.

Captura de tela da janela Contêineres no Visual Studio com um contêiner selecionado no painel esquerdo e a guia Ambiente selecionada no painel direito.

No lado esquerdo, você vê a lista de contêineres no computador local. Os contêineres associados à solução são mostrados em Contêineres da Solução. À direita, você verá um painel com guias para Ambiente, Rótulos, Portas, Volumes, Logs e Arquivos.

Dica

Você pode personalizar facilmente onde a janela de ferramentas Contêineres é encaixada no Visual Studio. Confira Personalizando layouts de janela no Visual Studio. Por padrão, a janela Contêineres é encaixada com a janela Inspeção quando o depurador está em execução.

Se você estiver usando o Docker Compose e o Visual Studio 2022 versão 17.7 ou posterior, verá uma árvore de nós para sua solução e seu projeto do Docker Compose, com um nó pai para a solução e nós filho para cada projeto.

Captura de tela mostrando os nós do Docker Compose na janela Contêineres.

Exibir variáveis de ambiente

A guia Ambiente mostra as variáveis de ambiente no contêiner. Para o contêiner do aplicativo, você pode definir essas variáveis de várias maneiras, por exemplo, no Dockerfile, em um arquivo .env ou usando a opção -e ao iniciar um contêiner usando um comando do Docker.

Captura de tela da janela Contêineres no Visual Studio mostrando as variáveis de Ambiente de um contêiner.

Captura de tela da janela Contêineres no Visual Studio mostrando as variáveis de Ambiente de um contêiner.

Observação

Alterações nas variáveis de ambiente não são refletidas em tempo real. Além disso, as variáveis de ambiente nessa guia são as variáveis de ambiente do sistema no contêiner e não refletem as variáveis de ambiente do usuário locais para o aplicativo.

Exibir rótulos

A guia Rótulos mostra os rótulos do contêiner. Rótulos são uma maneira de definir metadados personalizados em objetos do Docker. Alguns rótulos são definidos automaticamente pelo Visual Studio.

Captura de tela da janela Contêineres no Visual Studio mostrando a guia Rótulos.

Captura de tela da janela Contêineres no Visual Studio mostrando a guia Rótulos.

Exibir os mapeamentos de porta

Na guia Portas, você pode verificar os mapeamentos de porta em vigor para o contêiner.

Captura de tela da guia Portas na janela Contêineres.

Captura de tela da guia Portas na janela Contêineres.

Portas conhecidas são vinculadas, portanto, se houver conteúdo disponível em uma porta, você poderá clicar no link para abrir o navegador.

Exibir volumes

A guia Volumes mostra os volumes (nós do sistema de arquivos montado) no contêiner.

Captura de tela da guia Volumes na janela Contêineres.

Captura de tela da guia Volumes na janela Contêineres.

Exibir logs

A guia Logs mostra os resultados do comando docker logs. Por padrão, a guia mostra fluxos stdout e stderr em um contêiner, mas você pode configurar a saída. Para obter detalhes, consulte Registro em log do Docker. Por padrão, a guia Logs transmite os logs, mas você pode desabilitar isso escolhendo o botão Transmitir na guia. Se você selecionar Transmitir novamente, a transmissão será retomado de onde parou.

Captura de tela da guia Logs na janela Contêineres.

Captura de tela da guia Logs na janela Contêineres.

Para limpar os logs, use o botão Limpar na guia Logs. Para obter todos os logs, use o botão Atualizar.

Observação

O Visual Studio redireciona automaticamente stdout e stderr para a janela Saída quando você executa sem depuração com contêineres do Windows. Sendo assim, contêineres do Windows iniciados no Visual Studio usando Ctrl+F5 não exibirão logs nesta guia; use a janela Saída.

Se estiver usando o Docker Compose com o Visual Studio 2022 versão 17.7 ou posterior, você terá a opção de exibir os logs de cada contêiner separadamente ou intercalados em um único fluxo de saída. Se você selecionar o nó pai para a solução, verá logs intercalados de todos os projetos do Compose. A primeira coluna em cada linha mostra o contêiner que produziu essa linha de saída. Se você quiser ver apenas os logs de um contêiner sozinho, selecione o nó desse projeto específico.

Captura de tela que mostra os logs intercalados na guia Logs da janela Contêineres.

Exibir o sistema de arquivos

Na guia Arquivos, você pode exibir o sistema de arquivos do contêiner, incluindo a pasta do aplicativo que contém o projeto.

Captura de tela da guia Arquivos na janela Contêineres.

Captura de tela da guia Arquivos na janela Contêineres.

Para abrir arquivos no Visual Studio, navegue até o arquivo e clique duas vezes nele ou clique com o botão direito do mouse e escolha Abrir. O Visual Studio abre arquivos no modo somente leitura.

Captura de tela do arquivo aberto para exibição no Visual Studio.

Captura de tela do arquivo aberto para exibição no Visual Studio.

Usando a guia Arquivos, você pode exibir logs de aplicativos, como logs de Serviços de Informações da Internet (IIS), arquivos de configuração e outros arquivos de conteúdo no sistema de arquivos do contêiner.

No Visual Studio 2022 versão 17.7 ou posterior, ao direcionar para o .NET 8 ou posterior, o Dockerfile pode conter o comando USER app, que especifica a execução do aplicativo com permissões normais de usuário. A guia Arquivos também usa essas permissões e, portanto, talvez você não consiga exibir algumas pastas se essas pastas estiverem definidas para exigir permissões elevadas para exibição.

Iniciar, parar e remover contêineres

Por padrão, a janela Contêineres mostra todos os contêineres no computador que o Docker gerencia. Use os botões da barra de ferramentas para iniciar, parar ou remover (excluir) um contêiner que não deseja mais. Essa lista é atualizada dinamicamente à medida que contêineres são criados ou removidos.

Para selecionar vários contêineres, por exemplo, para remover mais de um por vez, use Ctrl + Clique. Se você tentar iniciar mais de 10 contêineres, será solicitado que confirme isso. Se desejar, desabilite o prompt de confirmação.

Abrir uma janela de terminal em um contêiner em execução

Abra uma janela de terminal (prompt de comando ou shell interativo) no contêiner usando o botão Abrir Janela do Terminal na janela Contêiner.

Captura de tela de Abrir Janela do Terminal na janela Contêineres.

Captura de tela de Abrir Janela do Terminal na janela Contêineres.

Para contêineres do Windows, o prompt de comando do Windows é aberto. Em contêineres do Linux, é aberta uma janela usando o shell Bash.

Captura de tela da janela Bash.

Captura de tela da janela Bash.

Se estiver direcionando o .NET 8, o Dockerfile poderá especificar o comando USER app, o que significa que o aplicativo é executado com permissões de usuário normais, em vez de permissões elevadas. O Dockerfile gerado pelo Visual Studio inclui isso no Visual Studio 2022 versão 17.7 e posterior, se você estiver direcionando o .NET 8 ou posterior. O terminal é aberto como o usuário especificado no Dockerfile (por padrão, para projetos do .NET 8, ou seja app), ou se nenhum usuário for especificado, ele será executado como o usuário root.

Normalmente, a janela do terminal é aberta fora do Visual Studio como uma janela separada. Se você quiser que um ambiente de linha de comando seja integrado ao IDE do Visual Studio como uma janela de ferramentas encaixável, instale o Whack Whack Terminal.

Anexar o depurador a um processo

Você pode anexar o depurador a um processo em execução no contêiner usando o botão Anexar ao Processo na barra de ferramentas da janela Contêineres. Quando você usa esse botão, a caixa de diálogo Anexar ao Processo é exibida e mostra os processos disponíveis em execução no contêiner.

Captura de tela da caixa de diálogo Anexar ao Processo.

Captura de tela da caixa de diálogo Anexar ao Processo.

Você pode anexar a processos gerenciados no contêiner. Para procurar um processo em outro contêiner, use o botão Localizar e selecione outro contêiner na caixa de diálogo Selecionar Contêiner do Docker.

Exibir imagens

Você também pode exibir imagens no computador local usando a guia Imagens na janela Contêineres. Imagens extraídas de repositórios externos são agrupadas em uma exibição de árvore.

Captura de tela mostrando a janela Contêineres mostrando imagens de contêiner.

Captura de tela mostrando a janela Contêineres mostrando imagens de contêiner.

A janela tem apenas as guias aplicáveis a imagens: Rótulos e Detalhes. A guia Detalhes mostra os detalhes de configuração da imagem no formato JSON.

Captura de tela mostrando a guia Imagens > Detalhes da janela Contêineres.

Captura de tela mostrando a guia Imagens > Detalhes da janela Contêineres.

Para remover uma imagem, clique com o botão direito do mouse nela na exibição de árvore e escolha Remover ou selecione a imagem e use o botão Remover na barra de ferramentas.

Remover contêineres e imagens

Você pode remover facilmente contêineres e imagens que não está mais usando com o botão Remover na barra de ferramentas da janela Contêineres.

Captura de tela mostrando o botão remover.

Captura de tela mostrando o botão remover.

Será solicitado que você confirme que deseja remover todos os contêineres não utilizados.

Quando a guia Imagens for selecionada, o botão Remover perguntará se você deseja remover todas as imagens pendentes. Imagens pendentes são imagens de camadas que não estão mais associadas a uma imagem marcada. Removê-las ocasionalmente ajuda a conservar espaço em disco.

Opções de configuração

As caixas de diálogo de confirmação de várias tarefas, como remover contêineres e imagens ou iniciar mais de 10 contêineres por vez, podem ser configuradas. Você pode desabilitar cada prompt usando a caixa de seleção na caixa de diálogo. Você também pode habilitar ou desabilitar essas opções usando as configurações em Ferramentas>Opções>Ferramentas de Contêiner>Janela de Ferramentas de Contêiner. Consulte Configurar ferramentas de contêiner.