Conteúdos

Linux atraves do Windows com WSL2, Docker e ZSH

Utilizando o Docker via WSL2 no Windows como ambiente de desenvolvimento.

Geralmente eu utilizo um Container configurado com as ferramentas e ambientes que trabalho já definidos, porém como nem sempre estou utilizando um dispositivo com Linux, além de ver o lançamento do Windows Subsystem for Linux (WSL) 2, fiquei tentado em construir o mesmo ambiente que utilizo no GNU/Linux, no Windows 10.

Nota:
WSL2 necessita que a virtualização esteja habilitada no BIOS/UEFI do seu dispositivo.

Atualize o Windows

Para utilizar o WSL2, o Windows 10 deve estar atualizado com a versão 2004 (Build 19041) ou superior. Verifique se a versão que está utilizando atende o requisito, caso contrário, atualize.

Habilitar o Subsistema do Windows para Linux

Antes de instalar qualquer distribuição do Linux no Windows, você precisará primeiro habilitar o recurso opcional “Subsistema do Windows para Linux”. Abra o PowerShell como administrador e execute:

1
dism.exe /online /enable-feature /featurename:Microsoft-Windows-Subsystem-Linux /all /norestart

Esse procedimento irá instalar o WSL (v1), agora após reiniciar o computador, atualize para a versão 2.

Habilitar o recurso de Máquina Virtual (Hyper-V)

Antes de instalar o WSL 2, você precisa habilitar o recurso opcional Plataforma de Máquina Virtual. Abra o PowerShell como administrador e execute:

1
dism.exe /online /enable-feature /featurename:VirtualMachinePlatform /all /norestart

Atualizar o pacote do Kernel do Linux para o WSL 2

Baixar a versão mais recente do Pacote de atualização do kernel do Linux do WSL2 para computadores x64

Definir o WSL 2 como a sua versão padrão

Abra o PowerShell e execute este comando para definir o WSL 2 como a versão padrão ao instalar uma nova distribuição do Linux:

1
wsl --set-default-version 2

Instalar a distribuição do Linux Ubuntu 20.04 LTS

Abra a Microsoft Store e escolha sua distribuição do Linux favorita.

/linux-atraves-do-windows/store.png

Neste exemplo, utilizaremos o Ubuntu 20.04 LTS.

/linux-atraves-do-windows/ubuntu.png

Ajustando DNS do WSL

Comigo o DNS padrão que veio configurado no Ubuntu não estava resolvendo nomes, sendo assim, recomendo fortemente que você modifique para o servidor DNS público de sua preferência. Para isso, basta seguir os seguintes passos:

  1. Crie o arquivo /etc/wsl.conf e coloque o seguinte conteúdo
1
2
[network]
generateResolvConf = false
  1. No Powershell do Windows, rode o comando abaixo para finalizar o WSL em execução
1
wsl --shutdown
  1. Abra novamente o WSL

  2. Modifique o arquivo /etc/resolv.conf para utilizar o DNS de sua preferência

1
nameserver 8.8.8.8
  1. Repita os passos 2 e 3 que o DNS estará atualizado.

Instalando ferramentas básicas no WSL

Este passo é opcional, mas caso você necessite de algumas ferramentas específicas em seu WSL, basta instalar. Neste exemplo, deixo instalado algumas ferramentas para diagnóstico de rede e compilação, além de modificar meu bash padrão para o ZSH.

1
2
3
sudo apt update && sudo apt upgrade -y

sudo apt install build-essential net-tools dnsutils nmap -y

Instale o ZSH seguindo os passos descritos no post Maior produtividade no terminal com o Oh My ZSH.

Instalando o Docker

A própria Docker aconselha a utilização do aplicativo Docker para Windows. Porém resolvi instalar o Docker diretamente no WSL, como faço no Linux. Caso você ache melhor utilizar a aplicação para Windows, basta baixar e instalar. Mas caso queira instalar o Docker dentro do WSL, basta seguir os passos abaixo.

Agora iremos fazer a instalação básica do Docker no WSL para podermos criar nossos ambientes de desenvolvimento.

1
sudo apt install apt-transport-https ca-certificates curl software-properties-common

Adicionando as chaves oficiais do Docker

1
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -

Adicionando o Repositório Oficial do Docker

1
sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable"

Agora basta atualizar a lista de repositórios e instalar o docker-ce e o docker-compose

1
2
sudo apt update
sudo apt install docker-ce docker-compose -y
Atenção:
Geralmente o serviço do Docker inicia automáticamente após a instalação. Comigo não foi assim, caso aconteça o mesmo com você, basta rodar o comando sudo service docker start

Aproveite e adicione seu usuário ao grupo docker para possibilitar subir os containers sem a necessidade do sudo.

1
 sudo usermod -a -G docker $USER

Confira se o Docker está rodando lançando um container

1
docker container run -dp 80:80 nginx

A saída deverá ser parecida com a imagem abaixo:

/linux-atraves-do-windows/run-nginx.png

Agora basta testar se a comunicação está funcionando lançando o browser apontado para o localhost

/linux-atraves-do-windows/nginx.png

Concluindo

Este post surgiu principalmente da curiosidade de ver o WSL2 em funcionamento, e claro, tentar portar o meu ambiente de ferramentas Linux para dentro do Windows 10. Provavelmente não utilizarei muito, mas pelo menos já serviu para escrever este Post =).

Acabei configurando as fontes powerline dentro no VS Code, ficou tudo funcional, caso alguém tenha interesse, só chamar no Telegram que trocamos uma ideia sobre o que deve ser feito para configurar tudo certinho.

/linux-atraves-do-windows/vscode.png

Um forte abraço e até a próxima.

Referências