Instalando WSL 2, Ubuntu 22.04 e Docker - Windows 11
Tags: wsl, windows11, ubuntu, docker
Published: 2023-11-06 01:00:08

## 1- Configurando o WSL 2 e instalando o Ubuntu 22.04

1.1 - Habilite a execução de scripts remotos na máquina

```powershell
Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope LocalMachine
```

1.2 - Abra o iniciar e digite powershell, clique com o botão direito sobre e clique em executar como administrador.

1.3 - Em seguida, vamos criar o arquivo de configuração do WSL para que ele use poucos recursos da sua máquina. Vamos criar um arquivo na pasta do nosso usuário com o comando abaixo:

```powershell
code $home/.wslconfig
```

1.4 - Agora, copie o código abaixo e cole dentro do arquivo:

```toml
[wsl2]
memory=1024MB
processors=1
swap=2048MB
```

1.5 - Agora, ainda dentro do powershell execute os comandos abaixo:
```powershell
dism.exe /online /enable-feature /featurename:VirtualMachinePlatform /all /norestart

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

```
1.6 - Ainda no terminal, execute o comando abaixo para reiniciar sua máquina. Antes de reiniciar, certifique-se de salvar e fechar qualquer arquivo importante.

```powershell
shutdown -r -f -t 0

```

1.7 - Após o computador reiniciar, vamos instalar o Ubuntu 22.04 como nosso Linux. Execute os comandos abaixo:

```powershell
wsl --update

wsl --install Ubuntu-22.04
```

## 2- Configurações dentro do Linux

2.1 - Ao terminar a instalação, você precisará informar o nome de usuário e a senha. minha sugestão é que usar o seu primeiro nome e a senha ser uma senha que você lembre depois, pois, vamos usa-la dentro da nossa máquina Linux. 

Se tudo correr bem, a saída do terminal deverá ficar parecida com essa:

```powershell
Ubuntu 22.04 LTS is already installed.
Launching Ubuntu 22.04 LTS...
Installing, this may take a few minutes...
Please create a default UNIX user account. The username does not need to match your Windows username.
For more information visit: https://aka.ms/wslusers
Enter new UNIX username: cezar
New password:
Retype new password:
passwd: password updated successfully
The operation completed successfully.
Installation successful!

To run a command as administrator (user "root"), use "sudo <command>".
See "man sudo_root" for details.

Welcome to Ubuntu 22.04.2 LTS (GNU/Linux 5.15.90.1-microsoft-standard-WSL2 x86_64)

 * Documentation:  https://help.ubuntu.com
 * Management:     https://landscape.canonical.com
 * Support:        https://ubuntu.com/advantage


This message is shown once a day. To disable it please create the
/home/cezar/.hushlogin file.
cezar@DESKTOP-4BPE94H:~$
cezar@DESKTOP-4BPE94H:~$

```

2.2 - Agora que estamos dentro da nossa máquina Linux, vamos atualizar todos os pacotes para não termos problemas ao instalar o docker. Execute os comandos abaixo e aguarde a instalação (vamos p):

```shell
sudo apt update && sudo apt full-upgrade -y
```

## 3 - Instalando e configurando o docker

O docker será usado em nossas aulas para podermos executar nosso banco de dados sem ter que ficar instalando ferramentas extras em nossa máquina.

3.1 - Para instalar o docker dentro do nosso Linux, vamos executar um script que já faz todo o trabalho para nós. Execute os comandos abaixo e aguarde a conclusão:

```shell
curl -fsSL https://get.docker.com -o get-docker.sh
sudo sh get-docker.sh
```

3.2 - Para facilitar nosso desenvolvimento, vamos desabilitar a execução do docker com sudo dentro do nosso Linux, através do comando abaixo:

```shell
sudo usermod -aG docker ${USER}
```

3.4 - Para aplicar as configurações do docker, vamos sair da nossa máquina com o comando `exit`. Não feche o terminal.

3.5 - Agora, vamos acessar nossa máquina Linux para concluir nosso setup. Dentro do mesmo terminal, digite o comando `wsl`. Esse comando vai nos colocar dentro da máquina Linux dentro do terminal do powershell. Louco né?

3.6 - Dentro do Linux, vamos testar nosso docker, executando o comando abaixo:

```shell
docker run hello-world
```

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

```shell
cezar@DESKTOP-4BPE94H:/mnt/c/Users/Cezar Mezzalira$ docker run hello-world

Hello from Docker!
This message shows that your installation appears to be working correctly.

To generate this message, Docker took the following steps:
 1. The Docker client contacted the Docker daemon.
 2. The Docker daemon pulled the "hello-world" image from the Docker Hub.
    (amd64)
 3. The Docker daemon created a new container from that image which runs the
    executable that produces the output you are currently reading.
 4. The Docker daemon streamed that output to the Docker client, which sent it
    to your terminal.

To try something more ambitious, you can run an Ubuntu container with:
 $ docker run -it ubuntu bash

Share images, automate workflows, and more with a free Docker ID:
 https://hub.docker.com/

For more examples and ideas, visit:
 https://docs.docker.com/get-started/

cezar@DESKTOP-4BPE94H:/mnt/c/Users/Cezar Mezzalira$
```

3.7 - Parabéns, agora temos o Linux e o Docker instalados com sucesso na sua máquina :)