Anúncio
· Nov. 3, 2020

Configure um ambiente para usar Docker em várias máquinas virtuais Ubuntu Hyper-V em um host Windows 10

Desta vez, quero falar sobre algo não específico do InterSystems IRIS, mas que acho importante se você deseja trabalhar com Docker e seu servidor no trabalho é um PC ou laptop com Windows 10 Pro ou Enterprise.

Como você provavelmente sabe, a tecnologia de contêineres vem basicamente do mundo Linux e, hoje em dia, está em hosts Linux onde apresenta potencial máximo. Quem usa o Windows normalmente vê que tanto a Microsoft quanto o Docker têm feito esforços importantes nos últimos anos que nos permitem rodar contêineres baseados em imagens Linux em nosso sistema Windows de uma maneira muito fácil... mas é algo que não é suportado para sistemas em produção e, este é o grande problema, não é confiável se quisermos manter os dados persistentes fora dos contêineres, no sistema host... principalmente devido às grandes diferenças entre os sistemas de arquivos Windows e Linux. No final, o próprio Docker para Windows usa uma pequena máquina virtual Linux (_MobiLinux) para executar os contêineres... ele faz isso de forma transparente para o usuário do Windows... e funciona perfeitamente bem se, como eu disse, você não exigir que seus bancos de dados sobrevivam mais do que o contêiner...

Bem... vamos direto ao ponto... o ponto é que muitas vezes, para evitar problemas e simplificar, precisamos de um sistema Linux completo e, se nosso servidor for baseado em Windows, a única maneira de fazê-lo é por meio de uma máquina virtual. Pelo menos até o WSL2 no Windows ser lançado, mas isso será uma outra história e com certeza levará um pouco de tempo para se tornar robusto o suficiente.

Neste artigo, vou lhe dizer, passo a passo, como instalar um ambiente onde você poderá trabalhar, se precisar, com contêineres Docker em um sistema Ubuntu em seu servidor Windows. Vamos lá...

1. Habilite o Hyper-V

Se você ainda não o habilitou, vá em adicionar Recursos do Windows e habilite o Hyper-V. Você precisará reiniciar (os textos da imagem estão em espanhol pois esse é o meu espaço de trabalho atual. Espero que junto com as instruções ajudem a "descriptografá-la" se você não conhece a língua de Dom Quixote 😉) 

 

2. Crie uma máquina virtual Ubuntu no Hyper-V

Não acho que haja uma maneira mais fácil de criar uma máquina virtual (VM). Basta abrir a janela do Gerenciador Hyper-V,  ir para a opção  Criação Rápida...(logo acima na tela) e criar sua máquina virtual usando qualquer uma das versões do Ubuntu já oferecidas (você pode baixar um arquivo _ISO _de qualquer outro Linux e assim criar a VM com uma distro diferente). No meu caso, escolhi a última versão disponível do Ubuntu: 19.10. Enfim, tudo que você verá aqui é válido para o dia 18/04. Em 15 ou 20 minutos, dependendo do que a imagem leva para baixar, você terá sua nova VM criada e pronta.

Importante: Deixe a opção de Switch padrão como é oferecida. Isso garantirá que você tenha acesso à Internet tanto no host quanto na máquina virtual.

3. Crie uma sub-rede local

Um dos problemas no uso de máquinas virtuais que encontrei com frequência tem a ver com configuração de rede... às vezes funciona, outras não, ou funciona se eu estiver conectado com Wi-Fi, mas não por cabo ou o oposto, ou se eu estabelecer uma VPN no host Windows, perco o acesso à Internet na VM, ou a comunicação entre a VM (Linux) e o host (Windows) quebra... enfim... é uma loucura!  Faz com que eu não confie no meu ambiente quando uso meu laptop para desenvolvimento, pequenas e rápidas demonstrações ou para apresentações, onde provavelmente o acesso à Internet não é tão importante quanto ter certeza de que as comunicações entre meu host e minhas VMs funcionam em uma forma confiável.

Com uma sub-rede local ad-hoc, compartilhada entre seu host Windows e suas máquinas virtuais, você resolve. Para permitir que eles se comuniquem entre si, você usa essa sub-rede e é isso. Você só precisa atribuir IPs específicos ao seu host e às suas VMs e tudo pronto.

É muito fácil fazer isso com essas etapas. Basta ir em Gerenciador de Comutador virtual...  que você encontrará em seu  Gerenciador Hyper-V:

Uma vez lá, vá até a opção _Novo  Comutador Virtual __ _(será como uma nova placa de rede para a VM):

Certifique-se de defini-la como uma Rede Interna , escolha o nome que queremos e deixe as outras opções como padrão

Agora, se formos ao Painel de Controle do Windows > Central de Rede e Compartilhamento, veremos que já temos lá o switch que acabamos de criar:

 

4. Configure a sub-rede local compartilhada pelo host e as máquinas virtuais

Neste ponto, você pode concluir a configuração de sua nova rede local. Para fazer isso, coloque o cursor sobre a conexão  Meu Novo Comutador LOCAL,  clique e vá em Propriedades, e de lá para o protocolo IPv4 para atribuir um endereço IP fixo:

 

Importante: O IP que você atribuir aqui será o IP do seu host (Windows) nesta sub-rede local.

 

5. Conecte e configure sua nova rede local para sua máquina virtual

Agora volte ao seu  Gerenciador Hyper-V. Se sua VM estiver em execução, pare-a. Depois de parado, vá para sua configuração e adicione o novo switch virtual interno:

(Nota – Na imagem você pode ver outro switch, o Comutador INTERNO Hyper-V. É para outra sub-rede que eu tenho. Mas não é necessário para você nesta configuração) 

Depois de clicar em Adicionar, você só terá que selecionar o switch que você criou anteriormente:

Bem, uma vez feito isso, clique em Aplicar, Aceitar... e você está pronto! Você pode iniciar e entrar novamente em sua máquina virtual para finalizar a configuração da conexão interna. Para fazer isso, assim que a VM iniciar, clique no ícone de rede (à direita) e você verá que tem 2 redes: eth0 _e _eth1. O eth1 aparece como desconectado... por agora:

Vá para a configuração da Ethernet (eht1) e atribua um IP fixo para esta sub-rede local, por exemplo: 155.100.101.1, e a máscara de sub-rede: 255.255.255.0

e isso é tudo. Aqui você tem sua máquina virtual, identificada com o IP 155.100.101.1 compartilhando a mesma sub-rede com seu host.

7. Permitir acesso ao Windows 10 de sua máquina virtual

Você provavelmente descobrirá que o Windows 10 não permite por padrão a conexão de outro servidor e, para o seu sistema Windows, a VM que você acabou de criar é exatamente isso, um servidor externo e potencialmente perigoso... então você terá que adicionar uma regra no Firewall para poder se conectar ao seu host a partir dessas máquinas virtuais. Como? Muito fácil, basta procurar pelo Firewall do Windows Defender no seu Painel de Controle do Windows, ir em Configuração Avançada e  criar uma nova Regra de Entrada:

Você pode definir uma porta ou um ou vários intervalos nelas... (também pode definir a regra para todas as portas)...

A ação que queremos é Permitir Conexão...

Para todos os tipos de redes...

Dê um nome à sua regra...

importante, imediatamente depois disso, abra novamente as propriedades de sua regra recém-criada e limite o escopo da aplicação, para aplicar apenas nas conexões dentro de sua sub-rede local...

8. PRONTO. Instale o Docker e qualquer outra aplicação em sua nova máquina virtual Ubuntu

Depois de passar por todo o processo de instalação e ter sua nova VM pronta e atualizada, com acesso à internet, etc. você pode instalar as aplicações que desejar... Docker é o mínimo, essa foi a ideia para começar, você também pode instalar seu cliente VPN se precisar de uma conexão com a rede de sua empresa, VS Code, Eclipse+Atelier,...

Especificamente, para instalar o Docker, em sua VM, você pode seguir as instruções que encontrará aqui: https://docs.docker.com/install/linux/docker-ce/ubuntu/

Certifique-se de que o tempo de execução do Docker está funcionando, baixe alguma imagem de teste, etc... e é isso.

Com isso... Está tudo pronto!, agora você poderá ter contêineres rodando sem limitações (além da capacidade do seu hardware) em sua VM Ubuntu, aos quais você poderá se conectar a partir de seu host Windows 10, de um navegador ou aplicativo e vice-versa, de seu Ubuntu VM  para seu host Windows 10. Tudo isso usando  seus endereços IP configurados em sua sub-rede local compartilhada, que funcionará independente se você tem uma VPN estabelecida ou não, se você acessa à Internet através de seu adaptador Wi-Fi ou via cabo ethernet.

Ah... um último conselho. Se você deseja trocar arquivos entre o Windows 10 e suas máquinas virtuais, uma opção muito útil e simples é usar o WinSCP. É gratuito e funciona muito bem.

Bem, com certeza existem outras configurações... mas esta é a que utilizo e provou ser a mais confiável. Espero que você também ache útil. Se eu evitei qualquer dor de cabeça, este artigo terá valido a pena.

Boa codificação! 

Discussão (0)2
Entre ou crie uma conta para continuar