Primeiramente, certifique-se que o Docker Desktop está desinstalado no Windows, caso não esteja, desinstale-o.
Vá até a funcionalidade de "Ativar e desativar recursos do Windows" e habilite o "Hiper-V" e "Plataforma de Máquina Virtual", provavelmente a máquina irá reiniciar.
Para instalar o WSL no Windows, basta abrir a janela do PowerShell como administrador e executar o comando abaixo:
wsl --install
Caso o Ubuntu não seja instalado, abra a Windows Store, busque por "Ubuntu" e instale-o.
Após a instalação for concluída, abra o Ubuntu pelo menu iniciar, informe o nome de usuário, senha e aguarde a primeira inicialização.
Para garantir que está com a versão correta do WSL e da distribuição do Ubuntu, volte para a janela do PowerShell e execute o comando abaixo:
wsl -l -v
Certifique-se que a versão do WSL é 2, e o nome da distro contenha "Ubuntu".
Agora vamos instalar o Docker Engine no WSL, volte a janela do Ubuntu, confirme que a primeira inicialização acabou e execute os comandos abaixo para desinstalar qualquer gerenciador de container que esteja no Ubuntu:
for pkg in docker.io docker-doc docker-compose podman-docker containerd runc; do sudo apt-get remove $pkg; done
Adicione o repositório da Docker no seu Ubuntu com os comandos abaixo, execute linha a linha separadamente e analise se todos foram executados sem erro.
sudo apt-get update
sudo apt-get install ca-certificates curl gnupg
sudo install -m 0755 -d /etc/apt/keyrings
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg
sudo chmod a+r /etc/apt/keyrings/docker.gpg
echo "deb [arch="$(dpkg --print-architecture)" signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu "$(. /etc/os-release && echo "$VERSION_CODENAME")" stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
Agora instale o Docker Engine no Ubuntu com os comandos abaixo:
sudo apt-get update
sudo apt-get install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
Depois de instalado, vamos testar se o Docker está funcionando:
sudo docker run hello-world
Verifique na tela se a mensagem "Hello from Docker!" aparece.
Toda vez que o Docker for executado precisamos informar o comando "sudo" antes, vamos remover esta necessidade com os comandos abaixo:
sudo groupadd docker
sudo usermod -aG docker $USER
newgrp docker
Vamos testar se deu certo, execute o comando abaixo:
docker run hello-world
Pronto, Docker Engine instalado no seu Windows!
Quando fechar o WSL ou reiniciar a máquina, será necessário subir novamente o serviço do Docker no Ubuntu, use o comando abaixo:
sudo service docker start
Para instalar uma interface visual para Docker (Portainer), iniciar o Docker sempre que o WSL subir ou usar o Docker do PowerShell, basta seguir as instruções do link abaixo:
https://gist.github.com/ermogenes/c712c964ed6de4e06444bceb78c4d30b
- Instalação do WSL https://learn.microsoft.com/pt-br/windows/wsl/install
- Instalação do Docker Engine no Ubuntu https://docs.docker.com/engine/install/ubuntu/
- Passos pós instalação Docker Engine https://docs.docker.com/engine/install/linux-postinstall/