Skip to content

Instantly share code, notes, and snippets.

Show Gist options
  • Star 13 You must be signed in to star a gist
  • Fork 7 You must be signed in to fork a gist
  • Save marciojg/1e6a3cf3d3cd2bf7b3e87dad259142d9 to your computer and use it in GitHub Desktop.
Save marciojg/1e6a3cf3d3cd2bf7b3e87dad259142d9 to your computer and use it in GitHub Desktop.
Startup DEV WINDOWS/LINUX - Guia rápido de instalação do WSL2 + Docker

Startup DEV WINDOWS/LINUX - Guia rápido de instalação do WSL2 + Docker

INSTRUCÃO OFICIAL: https://docs.microsoft.com/pt-br/windows/wsl/install-win10

Em 2016, a Microsoft anunciou a possibilidade de rodar o Linux dentro do Windows 10 como um subsistema e o nome a isto foi dado de WSL ou Windows Subsystem for Linux.

O acesso ao sistema de arquivos no Windows 10 pelo Linux era simples e rápido, porém não tinhamos uma execução completa do kernel do Linux e outros artefatos nativos e isto impossibilitava a execução de várias tarefas no Linux, uma delas é o Docker.

Em 2019, a Microsoft anunciou o WSL2, com uma dinâmica aprimorada em relação a 1ª versão:

  • Execução do kernel completo do Linux
  • Melhor desempenho para acesso aos arquivos dentro do Linux
  • Compatibilidade completa de chamada do sistema

O WSL2 já estava disponível na versão Insider do Windows, mas na última semana de maio de 2020 passou a estar disponível em final release na atualização 20.04 do Windows 10.

Assim, o WSL2 permitiu que executemos Docker no Linux usando o Windows 10.

Compare as versões: https://docs.microsoft.com/pt-br/windows/wsl/compare-versions

Vamos entender como usar o Docker com o WSL 2.

Antes de começarmos o que você precisa ter para rodar o WSL:

  • Windows 10 Home ou Professional
  • Uma máquina compatível com virtualização.
  • Pelo menos 4GB de memória RAM

1- Verifique a versão do seu Windows

Caso precise de ajuda para verificar a versão do windows siga este tutorial da Microsoft

Se já for a versão 20.04 ótimo, estamos prontos, senão precisamos instalar a atualização para instalar a 20.04.

https://www.microsoft.com/pt-br/software-download/windows10

O software da atualização verificará se sua máquina é compatível com a atualização. A atualização poderá levar muito tempo, pra mim levou mais de 1 hora para atualizar.

2 - Instale e Habilite o recurso do WSL2 no Windows

Baixe e instale o pacote de atualização do kernel do Linux usando este link ou utilize o tutorial oficial: https://docs.microsoft.com/pt-br/windows/wsl/install-manual#step-4---download-the-linux-kernel-update-package

Abra o PowerShell em modo adminitrador

PowerShell em modo adminitrador


Cole os comandos abaixo:

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

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

Reinicie sua máquina

3 - Atribua a versão default do WSL para a versão 2

Abra o PowerShell em modo adminitrador novamente e cole co comando abaixo

wsl --set-default-version 2

A seguinte mensagem deve aparecer

Para obter informações sobre as principais diferenças em relação ao WSL 2, visite https://aka.ms/wsl2
A operação foi concluída com êxito.

Caso apareça uma mensagem diferente siga os passos abaixo:

Atualize o Kernel do WSL 2

No momento da instalaçao pode ser necessário atualizar o Kernel do WSL 2. Saberá que é necessário, quando executar o passo 3 e a seguinte mensagem aparecer:

WSL 2 requer uma atualização para seu componente kernel. Para obter mais informações, visite https://aka.ms/wsl2kernel

Para atualizar, basta seguir as instruções deste link: https://docs.microsoft.com/pt-br/windows/wsl/wsl2-kernel

Uma vez atualizado execute o passo 3 novamente

4 - Instale a distribuição Linux de sua prefrência

Para este exemplo usarei o Ubuntu.

Abra o aplicativo Microsoft Store, pesquise, escolha e clique em adquirir

windows-store-ubuntu-20.png

Se o aplicativo Microsoft Store não estiver disponível, você poderá baixar e instalar manualmente as distribuições do Linux clicando no link abaixo:

https://docs.microsoft.com/pt-br/windows/wsl/install-manual

Uma vez instalado abra a distro e crie o usuário e a senha da sua distro, este será o usuário root da sua instância WSL.

cria-usuario-linux.png

5 - Instale o Docker Desktop versão maior ou igual 2.3

No link abaixo a versão stable estava acima da 2.3 necessária.

https://www.docker.com/products/docker-desktop

6 - Habilite o WSL no Docker Desktop

Vá em Resources/WSL Integration e marca opção "Enable integrantion" e marque sua distro instalada nesta opção "Enable integration with additional distros"

docker-desktop-habilitando-wsl2.png

7 - Teste o seu Docker

Execute o comando docker run ou docker-compose up

8 - Configurar git

vi ~/.gitconfig

[user]
  email = <my email here>
  name = Steven Murawski
[core]
  editor = code --wait
  eol = lf
  autocrlf = true

10 - Evitar lentidão, problemas de permissionamento e problemas com o node hot reload

Por padrão o pash que o bash carrega é esse, um mapeamento para o usário windows:

devel@NOMEDAMAQUINA:/mnt/c/Users/nome.usuario.windows$

Evite usar esse path para programar, prefira usar a pasta do usuário da sua distro linux:

cd /home/nome.usuario.linux ou cd ~
devel@NOMEDAMAQUINA:~$

11 - Windows terminal

a) Instale o Windows terminal acessando este link e clicando no botão obter

b) Configure o Windows terminal

https://goulet.dev/posts/how-to-set-windows-terminal-starting-directory/

Extras

1 - Alterar a versão do WSL de uma distribuição

wsl --set-version <distribution name> <versionNumber>

2 - Dicas:

  • Atalho no menu iniciar Ou executando C:\Windows\System32\wsl.exe
  • O sistema de arquivos do Windows é acessível em /mnt
  • É possível acessar o sistema de arquivos do Linux pela rede do Windows digite \\wsl$
  • É possível acessar uma pasta digitando explorer.exe .
  • É possível abrir uma pasta com o VSCode digitando code .
  • É possível acessar executáveis do Windows no terminal do Linux.

3 - Por padrão o WSL2 pode utilizar “recursos de forma ilimitada” na sua máquina.

Se você quiser limitar os recursos, crie um arquivo .wsconfig na pasta do seu usuário.

https://docs.microsoft.com/pt-br/windows/wsl/wsl-config#configure-global-options-with-wslconfig

Depois de configurar execute no power shell:

wsl --shutdown (vai reiniciar o Docker também e vai aparecer uma mensagem se você quer iniciar o Docker

4 - As duas distribuições WSL do docker:

https://www.docker.com/blog/new-docker-desktop-wsl2-backend/

5 - Liberar memória no host

https://linux-mm.org/Drop_Caches

echo 1 | sudo tee /proc/sys/vm/drop_caches

echo 3 | sudo tee /proc/sys/vm/drop_caches

6 - Use BuildKit and multi-stage builds

Acrescente export DOCKER_BUILDKIT=1 no .profile do seu usuário

7 - Disponibilizar chrome do windows para testes com Karma

sudo vim ~/.bashrc

# OWN ENVIRONMENT VARIABLES
export CHROME_BIN="/mnt/c/Program Files (x86)/Google/Chrome/Application/chrome.exe"

Salva e reinicia o terminal ou rode **source ~/.bashrc**

8 - Crontab

https://www.ubuntudicas.com.br/2012/01/crontab-o-agendador-de-tarefas-do-linux/

9 - Instalar Rbenv

sudo apt update

sudo apt upgrade

sudo apt install gcc make autoconf build-essential libssl-dev libreadline-dev libffi-dev zlib1g-dev


# instalação do rbenv:
git clone https://github.com/rbenv/rbenv.git ~/.rbenv

export PATH="$HOME/.rbenv/bin:$PATH"
export PATH="$HOME/.rbenv/shims:/usr/local/bin:/usr/bin:/bin:$PATH"

echo 'export PATH="$HOME/.rbenv/bin:$PATH"' >> ~/.bashrc
echo 'export PATH="$HOME/.rbenv/shims:/usr/local/bin:/usr/bin:/bin:$PATH"' >> ~/.bashrc


# checa a instalação:
curl -fsSL https://github.com/rbenv/rbenv-installer/raw/main/bin/rbenv-doctor | bash

# guia completo:
https://github.com/rbenv/rbenv

10 - Instalar nodejs e VSCODE + Extensões

https://docs.microsoft.com/pt-br/windows/nodejs/setup-on-wsl2

11 - Configurações padrões do seu VSCODE

Baixar a extensão Settings Sync e vincular ao seu gist;

PS. Caso tenha interesse, peguem as configurações que faço uso: https://gist.github.com/marciojg/94e01006e2da01810785ccb6611454f1

12 - Configurações para acessar IP de um container no WSL2

https://stackoverflow.com/questions/63740000/accessing-docker-container-ip-when-using-wsl-ubuntu-20-04-lts

13 - Demais WSL2 Hacks

https://github.com/shayne/wsl2-hacks

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment