Compartilhar via


Solucionar problemas no desenvolvimento do Visual Studio com o Docker

Applies para: Visual Studio

Ao trabalhar com as Ferramentas de Contêiner do Visual Studio, você pode encontrar problemas ao compilar ou depurar seu aplicativo. Este artigo apresenta algumas etapas comuns de solução de problemas para esses problemas.

O compartilhamento de volume não está habilitado. Habilitar o compartilhamento de volume no Docker CE para configurações de Windows (somente contêineres do Linux)

Você só precisará gerenciar o compartilhamento de arquivos se estiver usando Hyper-V com o Docker. Se você estiver usando o WSL 2, não precisará seguir as etapas nesta seção e a opção de compartilhamento de arquivos não estará visível. Para resolver esse problema:

  1. Clique com o botão direito do mouse em Docker para Windows na área de notificação e selecione Settings.

  2. Selecione RecursosCompartilhamento de Arquivos e compartilhe a pasta que precisa ser acessada. Compartilhar toda a unidade do sistema é possível, mas não é recomendado.

    Captura de tela de drives compartilhados.

Dica

O Visual Studio avisa quando as Unidades Compartilhadas não estão configuradas.

Problemas com caminhos em contêineres de Windows

Ao usar caminhos de arquivo específicos para Linux em um contêiner de Windows, você pode encontrar vários erros de E/S (entrada ou saída de arquivo). Se você vir esses erros, verifique o valor da variável de ambiente. Se a variável estiver definida, o Visual Studio tentará usar os caminhos do Subsistema do Windows para Linux (WSL) para se referir aos arquivos do Windows para criar volumes. Essa abordagem é necessária para o Docker no WSL, mas não funciona com o Docker Desktop no Windows. Sempre desconfigure essa variável de ambiente se você usar containers do Windows.

Não é possível iniciar a depuração

Um dos motivos para esse problema é a presença de componentes de depuração obsoletos na pasta de perfil do usuário. Execute os comandos a seguir para remover essas pastas para que os componentes de depuração mais recentes sejam baixados na próxima sessão de depuração.

  • del %userprofile%\vsdbg
  • del %userprofile%\onecoremsvsmon

Erros específicos de rede na depuração do aplicativo

Tente executar o script disponível para download em "Cleanup Container Host Networking", que atualiza os componentes relacionados à rede na sua máquina host.

Montagens negadas

Ao usar o Docker para macOS, você pode encontrar um erro ao fazer referência à pasta /usr/local/share/dotnet/sdk/NuGetFallbackFolder. Adicione a pasta à guia Compartilhamento de arquivos no Docker.

Grupo de usuários do Docker

Você pode encontrar o seguinte erro em Visual Studio ao trabalhar com contêineres:

O usuário atual deve estar no grupo 'docker-users' para usar o Docker Desktop. Adicione-se a si mesmo ao grupo 'docker-users' e, em seguida, efetue logoff do Windows.

Você deve ser membro do grupo 'docker-users' para ter permissões para trabalhar com contêineres do Docker. Para adicionar-se ao grupo em Windows 10 ou posterior, siga estas etapas:

  1. No menu Iniciar, abra Gerenciamento de Computador.
  2. Expanda Usuários e Grupos Locais e selecione Grupos.
  3. Encontre o grupo docker-users, clique com o botão direito do mouse e selecione Adicionar ao grupo.
  4. Adicione sua conta de usuário ou contas.
  5. Saia e entre novamente para que essas alterações entrem em vigor.

Você também pode usar o comando no prompt de comando Administrador para adicionar usuários a grupos específicos.

net localgroup docker-users DOMAIN\username /add

No PowerShell, use a função Add-LocalGroupMember.

Pouco espaço em disco

Por padrão, o Docker armazena imagens na pasta %ProgramData%/Docker/ , que normalmente está na unidade do sistema, C:\ProgramData\Docker\. Para impedir que as imagens ocupassem espaço valioso na unidade do sistema, você pode alterar o local da pasta de imagem. Para mudar o local:

  1. Clique com o botão direito do mouse no ícone do Docker na barra de tarefas e selecione Configurações.

  2. Selecione Mecanismo do Docker.

  3. No painel de edição, adicione a configuração de propriedade com o valor do local desejado para imagens do Docker:

       "graph": "D:\\mypath\\images"
    

    Captura de tela do compartilhamento de arquivos do Docker.

  4. Selecione Aplicar e reiniciar. Essas etapas modificam o arquivo de configuração em %ProgramData%\docker\config\daemon.json. As imagens criadas anteriormente não são movidas.

Incompatibilidade de tipo de contêiner

Ao adicionar o suporte do Docker a um projeto, você escolhe um Windows ou um contêiner do Linux. Se o host do Docker Server não estiver configurado para executar o mesmo tipo de contêiner que o destino do projeto, você verá um erro semelhante a:

Captura de tela do host do Docker e da incompatibilidade do projeto.

Para resolver esse problema, clique com o botão direito do mouse no ícone do Docker para Windows na Área de Notificação e selecione Alternar para contêineres do Windows... ou Alternar para contêineres do Linux....

ContainerToolsPackage ou DockerComposePackage não foi carregado corretamente

Um cache mef (Managed Extensibility Framework) corrompido pode causar esse problema. Para corrigi-lo, exclua a pasta ComponentModelCache para sua instância de Visual Studio.

  1. Feche todas as instâncias de Visual Studio.

  2. Execute o seguinte comando do PowerShell para excluir a pasta ComponentModelCache :

    Get-ChildItem -Path "$(Join-Path $Env:LOCALAPPDATA "Microsoft\VisualStudio")" -Recurse -Include "ComponentModelCache" | Remove-Folder
    

Você também pode excluir a pasta manualmente:

  1. Abra %localappdata%\Microsoft\VisualStudio no Explorador de Arquivos.
  2. Abra a subpasta que corresponde à sua versão Visual Studio (por exemplo, 18.0_b653d53f).
  3. Exclua a pasta ComponentModelCache .

Outros problemas

Para quaisquer outros problemas encontrados, consulte Microsoft/DockerTools.

Referências

  • Ferramentas de Contêiner: Mensagens de Erro