Instalando o Docker no WSL (alternativa ao Docker Desktop)


Índice

Sobre o Docker rodando no WSL

É possível rodar o Docker dentro do WSL do Windows, sem precisar instalar o Docker Desktop. Abaixo os detalhes da instalação.

Documentação oficial: https://docs.docker.com/engine/install/ubuntu/ https://docs.docker.com/engine/install/linux-postinstall/

E um artigo (em inglês) bastante detalhado do processo: https://dev.to/bowmanjd/install-docker-on-windows-wsl-without-docker-desktop-34m9


Instalação do WSL2

Containers normalmente rodam no Linux e para rodar esses containers Linux dentro do Windows uma ótima opção é instalar o WSL (Windows Subsystem for Linux). O WSL Permite instalar uma distribuição do Linux (por padrão a distribuição Ubuntu) dentro do Windows

Para verificar se você já tem o WSL2 instalado, abra um Prompt do PowerShell e execute:

wsl -l -v

Para instalar o WSL2 siga as instruções aqui: Instalação WSL e Windows Terminal


Instalação do Docker no WSL

Abra um prompt do WSL

Iniciar / pesquise por “Ubuntu” / clique no ícone “Ubuntu”

Utilizando esse terminal você pode executar comandos Linux, que serão executados na distribuição Linux instalada no WSL.

Utilize esse terminal para executar os comandos abaixo.

Ubuntu 20.10+

Verificar a versão instalada:

cat /etc/os-release

Se for inferior a 20.10, atualizar o Ubuntu:

sudo apt-get update
sudo apt dist-upgrade
sudo apt install update-manager-core
sudo apt autoremove
sudo do-release-upgrade -d

Ao final do processo, vai ocorrer um shutdown do linux. Feche o terminal e então abra outro prompt do Ubuntu (Iniciar / pesquisar “Ubuntu”).

Utilizar iptables legadas

Executar:

sudo update-alternatives --config iptables

(selecionar a opção “iptables-legacy”)

Instalar o Docker

Remover versões antigas:

sudo apt-get remove docker docker-engine docker.io containerd runc

Se não tiver docker instalado, vai exibir: “Unable to locate package docker-engine”

Instalar dependências:

sudo apt-get update && sudo apt-get upgrade
sudo apt-get install ca-certificates curl gnupg lsb-release
sudo apt-get autoremove

Adicionar chave do repositório oficial do Docker:

sudo mkdir -p /etc/apt/keyrings

curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg

echo "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null

Instalar o Docker Engine

sudo apt-get update
sudo apt-get install docker-ce docker-ce-cli containerd.io docker-compose-plugin

Teste:

docker --version
docker compose version

Adicionar Alias

Abrir o arquivo

nano ~/.bash_aliases

Adicionar a seguinte linha:

alias docker-compose="docker compose"

Salvar o arquivo pressionando CTRL+X

Então, executar:

source ~/.bash_aliases

Para testar, executar:

docker-compose version

Adicionar permissões

Executar:

sudo groupadd docker
sudo usermod -aG docker $USER

Executando

Iniciar o Docker

Executar:

sudo dockerd

Se for iniciado com sucesso, será exibido: API listen on /mnt/wsl/shared-docker/docker.sock



Comentários