Como obter a checkbox de ferramentas do Docker para trabalhar com o projeto .net core 2.0

Estou recebendo um erro ao tentar usar a funcionalidade Docker com meu projeto .NET core 2.0. Eu tenho recebido uma mensagem de erro dizendo

O Visual Studio Container Tools requer que o Docker esteja em execução antes de criar, depurar ou executar um projeto em contêiner. Para mais informações, consulte: http://aka.ms/DockerToolsTroubleshooting

Eu segui o link, e ao perceber que tenho o Windows 10 Home x64, tive que instalar o Docker Toolbox, em vez do Docker For Windows. Agora ele instalou este executável chamado

Terminal de início rápido do Docker

É assim que se deve iniciar os serviços de docker? Eu tentei executar este executável e parece estar funcionando. Meus contêineres estão em execução, mas o erro do Visual Studio Container Tools ainda persiste.

o que estou perdendo? Está tendo uma versão do Windows mais alta do que o Home necessário para usar o Docker Container Support no Visual Studio 2017?

ATUALIZAR:

Tentei seguir a sugestão de Quetzcoatl, e ainda estou recebendo o mesmo erro no visual studio sobre essas ferramentas. Aqui está o que eu corri no Docker Quick Start Terminal. Eu tentei construir o projeto depois que o Visual Studio abriu o projeto com êxito e ainda estava recebendo o erro mencionado sobre as ferramentas de contêiner.

Meu arquivo devenv.exe está localizado em

C: \ Arquivos de Programas (x86) \ Microsoft Visual Studio \ 2017 \ Comunidade \ Common7 \ IDE \ devenv.exe

e meu arquivo de solução está localizado em

D: \ Desenvolvimento \ Visual Studio \ Musify2 \ Musify2 \ Musify2.sln

insira a descrição da imagem aqui

ATUALIZAÇÃO 2:

Eu corri alguns dos comandos sugeridos para tentar no terminal de início rápido docker e aqui estavam os resultados desses comandos quetz insira a descrição da imagem aqui

Com o Docker Toolbox é um pouco complicado, mas na verdade o core-2.0 não tem nada para fazer aqui. É tudo sobre docker, docker-toolbox e VS.

Em primeiro lugar:

É assim que se deve iniciar os serviços de docker? Eu tentei executar este executável e parece estar funcionando.

Sim. Se a máquina / serviços do docker estiverem funcionando – isso é bom!

Agora, você precisa perceber que, no Docker, normalmente, as informações sobre como / onde a janela de encaixe está sendo executada são mantidas em variables ​​de ambiente . O script de início quickstart não só inicia o docker-machine para você e verifica algumas coisas básicas, como também configura algumas variables ​​ambientais para que posteriormente todos os comandos como docker , docker-compose etc saibam onde procurar pela máquina virtual do docker. Em seu / nosso caso, essas informações consistem principalmente em um IP da VM e um número de porta em que o Docker atende.

.. e seu Visual Studio não tem conhecimento disso, porque, eu aposto nisso, você executou o VisualStudio a partir do StartMenu ou do ícone Desktop ou clicando duas vezes em um arquivo de solução, então não teve chance de obter as variables ​​ambientais do console de início quickstart .

A solução é bem simples: certifique-se de que o VS consiga essa informação. Ou seja, certifique-se de que obtém as variables ​​ambientais e certifique-se de que obtém o estado fresco delas, porque o IP / porta pode flutuar às vezes. Portanto, não basta copiá-los para as configurações do sistema operacional, porque nada nunca irá atualizá-los automaticamente.

A maneira mais simples que encontrei é simplesmente fechar o Visual Studio, executar o console de início rápido do docker toolbox e executar o VisualStudio a partir desse console , por exemplo, para o meu VS2017 Community Edition:

 Starting "default"... (default) Check network to re-create if needed... (default) Waiting for an IP... (.......snip..........) ## . ## ## ## == ## ## ## ## ## === /"""""""""""""""""\___/ === ~~~ {~~ ~~~~ ~~~ ~~~~ ~~~ ~ / ===- ~~~ \______ o __/ \ \ __/ \____\_______/ docker is configured to use the default machine with IP 192.168.99.100 For help getting started, check out the docs at https://docs.docker.com Start interactive shell quetzalcoatl@LAP049 MINGW32 ~ $ /c/Program\ Files\ \(x86\)/Microsoft\ Visual\ Studio/2017/Community/Common7/IDE/devenv.exe C:\\PATH\\TO\\MY\\SOLUTION.sln 

O caminho é muito longo para escrever, mesmo com o preenchimento de TAB, então normalmente faça um minúsculo script .sh para executar isso para mim.

BTW! Observe que o caminho para DEVENV deve ser do tipo unix ( /c/Program\ Files... ), porque o shell mingw deve entender isso, enquanto o caminho para SOLUTION deve ser um caminho normal do windows ( c:\projects\foo\bar\.. ) porque o VisualStudio tentará ler isso depois de iniciar.

Isto é o que eu fiz para obter vs 2017 trabalhando no windows 10 home com docker-toolbox. Você segue isso e eu garanto que vai funcionar. Observe que isso se aplica apenas ao Windows 10, que não suporta o docker nativo para o aplicativo do Windows:

  1. Instalar docker-toolbox no w10 home

  2. Execute o terminal QuickStart da janela de encaixe uma vez para criar a máquina de encaixe. Leva um tempo. Portanto, seja paciente enquanto atribui o endereço IP e outras coisas

  3. Uma vez feito isso, mostrará um prompt de comando. Digite ‘docker-machine ip default’. Anote o endereço IP como você vai precisar mais tarde

  4. Feche a janela do terminal QuickStart. Isso foi apenas para inicializar a imagem do boot2docker.iso de um pequeno servidor Linux Ubuntu no aplicativo virtualbox (também conhecido como docker-machine aka default vm). Se você não estiver familiarizado com a tecnologia de virtualização ou oracle virtualbox, pare de ler e leia-os primeiro e, em seguida, inicie novamente. Mas se você fizer isso, continue com prazer

  5. Como mencionei, sua instância do docker-machine é um vm do Linux e, portanto, é óbvio que você só pode abrir projetos criados usando a tecnologia do núcleo .net. Infelizmente, para a estrutura completa .net, você precisará executar os contêineres do Windows que estão disponíveis apenas no windows 10 pro ou criar seu próprio servidor nano do windows ou vm server 2016 no virtualbox e usar e seguir as etapas do docker nativo para windows no site dockers . A partir daqui, o restante desta resposta será útil para aqueles que desejam executar projetos principais somente no Linux vm / docker-machine

  6. Abra o shell de energia do Windows no modo de administrador e digite ‘docker-machine ls’ para confirmar que o vm padrão está sendo executado. Também pode fazer ‘status do docker-machine default’ e deve retornar ‘running’

  7. Agora abra o aplicativo virtualbox que está executando seu vm padrão e clique em configurações. Abra a guia “drives compartilhados” onde você precisa ter certeza de que a pasta ‘c: \ Users’ na máquina host está mapeada / montada como a pasta ‘c / Users’ na vm. Note que este passo é super importante e perderá muitos problemas para que ele funcione com sucesso

  8. Também uma nota rápida que sua solução / projeto / codebase deve ser salvo em ‘c: \ Users \’ para que ele funcione corretamente. Isto é, se você quiser usá-lo OOTB. Eu não queria perder tempo tentando montar uma pasta fora do caminho permitido. Mas se você é do tipo aventureiro, por favor, tente descobrir e como você fez

  9. Agora, como Quetzalcoatl corretamente mencionou vs precisa saber sobre esta máquina docker. A única maneira de acontecer é se as variables ​​de ambiente estiverem definidas. Portanto, vá em frente e execute este comando ‘docker-machine env deault | Invoke-Expression ‘na janela do powershell. Este é o molho mágico ficando contra se comportar bem com docker-machine

  10. Vá em frente e abra o vs normalmente clicando dbl sua solução de projeto ou criando um novo projeto / solução. Em Powershell, use o comando ‘start’ para abrir sua solução vs existente ou uma nova instância vs. Dica profissional: se você criar uma nova solução, NÃO selecione a opção da janela de encaixe do Linux no momento da escolha do tipo de modelo de projeto. Você pode adicionar totalmente suporte ao docker quando a sua solução estiver pronta e pronta para ser usada. De fato, deixá-lo desmarcado e deixe vs criar sua solução. Dessa forma, você terá a chance de criar e executar sua solução nos modos IIS Express ou Auto-hospedado para ver se o seu core2.0 funciona mesmo

  11. Uma vez satisfeito que tudo funcionou e você viu a página inicial do OOTB agora é hora de adicionar o suporte do docker clicando com o botão direito do mouse no seu projeto, passando o mouse sobre Adicionar e clicando em ‘Adicionar Suporte ao Docker’. Isso criará um novo projeto docker (.dcproj) e adicionará vários arquivos relacionados ao docker

  12. Agora eu não vou entrar no âmago da questão do docker aqui, mas você notará que seu projeto não é mais a boot e o recém-criado projeto Docker. Isso é perfeitamente normal e comportamento pretendido. Isso significa que você está configurado e pronto para iniciar seu aplicativo usando contêineres docker. Então vá em frente e clique no botão ‘Docker’ para ver o seu trabalho duro, finalmente, pagar. Mais uma vez, seja paciente, pois demora um pouco para criar imagens e criar contêineres, mas, uma vez feito, o vs iniciará e appendá o depurador.

  13. Aqui você mais uma vez ficará desapontado e se sentirá inútil, pois quando o navegador abrir uma nova janela ou guia, haverá um erro de página inacessível. A razão é que o endereço do navegador aponta para o host local, que não é mais o servidor da web. Seu “servidor web” agora é seu contêiner docker e, portanto, você precisará replace o host local pelo endereço IP que você recuperou acima. O número da porta permanece como está. Depois de enviar a página, você ficará aliviado e em êxtase ao ver o trabalho da página inicial / roteiro. Isso também deve habilitar a debugging em vs. se, por algum motivo, não for necessário excluir uma pasta chamada .vsdbg na pasta c: \ Users \ e executar novamente o aplicativo.