É 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
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
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.
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”).
Executar:
sudo update-alternatives --config iptables
(selecionar a opção “iptables-legacy”)
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
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
Executar:
sudo groupadd docker
sudo usermod -aG docker $USER
Executar:
sudo dockerd
Se for iniciado com sucesso, será exibido: API listen on /mnt/wsl/shared-docker/docker.sock