O Docker Engine é o Docker nativo que roda no ambiente Linux e é completamente suportado para WSL2. Sua instalação é idêntica a descrita para as próprias distribuições Linux disponibilizadas no site do Docker.
Vantagens
- Consume o mínimo de memória necessário para rodar o Docker Daemon (servidor do Docker).
- É mais rápido ainda que com Docker Desktop, porque roda diretamente dentro da própria instância do WSL2 e não em uma instância separada de Linux.
- Temos a melhor experiência de desenvolvimento, pois podemos usar o Docker diretamente dentro do WSL 2, sem precisar de uma instância separada do Docker Desktop.
O primeiro passo antes de instalar o Docker Engine pela primeira vez em uma nova máquina, deve-se configurar o repositório Docker. Depois, você pode instalar e atualizar o Docker a partir deste repositório.
Vamos ao passo-a-passo:
1- Configure e adicione o repositório do Docker na lista de sources do Debian
# Add Docker's official GPG key:
sudo apt-get update
sudo apt-get install ca-certificates curl gnupg apt-transport-https lsb-release
sudo install -m 0755 -d /etc/apt/keyrings
curl -fsSL https://download.docker.com/linux/debian/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg
sudo chmod a+r /etc/apt/keyrings/docker.gpg
# Add the repository to Apt sources:
echo \
"deb [arch="$(dpkg --print-architecture)" signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/debian \
"$(. /etc/os-release && echo "$VERSION_CODENAME")" stable" | \
sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
sudo apt-get update
2- Instale os pacotes do Docker
sudo apt-get install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
3- Dê permissão para rodar o Docker com seu usuário corrente
sudo usermod -aG docker $USER
4- Reiniciar o WSL via linha de comando do Windows para que não seja necessário autorização root para rodar o comando docker
wsl --shutdown
5- Acessar novamente o Debian e iniciar o serviço do Docker
sudo service docker start
Este comando acima terá que ser executado toda vez que o Linux for reiniciado. Se caso o serviço do Docker não estiver executando, mostrará esta mensagem de erro ao rodar comando docker
:
Cannot connect to the Docker daemon at unix:///var/run/docker.sock. Is the docker daemon running?
6- Verifique se a instalação foi bem-sucedida executando a imagem hello-world
sudo docker run hello-world
Este comando baixa uma imagem de teste e a executa em um contêiner. Quando o contêiner é executado, ele imprime uma mensagem de confirmação e sai.
Segui os passos de instalação mas o Docker não roda, o que eu faço?
Se mesmo ao iniciar o serviço do Docker acontecer o seguinte erro ou similar:
Cannot connect to the Docker daemon at unix:///var/run/docker.sock. Is the docker daemon running?
Rode o comando sudo update-alternatives --config iptables
e escolha a opção 1 iptables-legacy
Rode novamente o sudo service docker start
. Rode algum comando Docker como docker ps
para verificar se está funcionando corretamente. Se não mostrar o erro acima, está ok.
Extra: Iniciar o Docker automaticamente no WSL (apenas para Windows 11)
No Windows 11 é possível especificar um comando padrão para ser executados sempre que o WSL for iniciado, isto permite que já coloquemos o serviço do docker para iniciar automaticamente. Edite o arquivo /etc/wsl.conf
:
Rode o comando para editar:
sudo vim /etc/wsl.conf
Aperte a letra i
(para entrar no modo de inserção de conteúdo) e cole o conteúdo:
[boot]
command = service docker start
Quando terminar a edição, pressione Esc
, em seguida tecle :
para entrar com o comando wq
(salvar e sair) e pressione enter
.
Pronto, basta reiniciar o WSL com o comando wsl --shutdown
no DOS ou PowerShell para testar. Após abrir o WSL novamente, digite o comando docker ps
para avaliar se o comando não retorna a mensagem acima: Cannot connect to the Docker daemon at unix:///var/run/docker.sock. Is the docker daemon running?
0 comentário