
Introdução
Ao utilizar o Docker Desktop em ambientes Windows Server com WSL 2 e virtualização aninhada, pode ocorrer uma falha durante a inicialização do Docker, impedindo a criação ou o registro da distribuição interna utilizada pelo Docker Desktop.
Esse comportamento foi identificado em cenários onde o Docker Desktop instala automaticamente uma versão mais recente do WSL. Em determinados ambientes com Windows Server e virtualização aninhada, essa versão pode apresentar incompatibilidade durante a criação da máquina virtual do WSL, resultando no erro Wsl/Service/RegisterDistro/CreateVm/0x800705b4.
Após validação técnica, a solução recomendada é instalar manualmente uma versão anterior do WSL, especificamente a versão 2.5.10, antes da instalação do Docker Desktop.
Erro apresentado
Ao abrir ou executar o Docker Desktop, o seguinte erro pode ser exibido:
There was a problem with WSL
An error occurred while running a WSL command. Please check your WSL
configuration and try again.
running wsl.exe: An error occurred while running the command.
Wsl/Service/RegisterDistro/CreateVm/0x800705b4:
c:\windows\system32\wsl.exe --import-in-place docker-desktop
<home>\appdata\local\docker\wsl\main\ext4.vhdx: exit status 0xffffffff
(stderr: wsl: Não há suporte para virtualização aninhada nesta máquina.
) stdout: Esta operação foi retornada porque o tempo limite expirou.
Código de erro: Wsl/Service/RegisterDistro/CreateVm/0x800705b4
, wslErrorCode: Wsl/Service/RegisterDistro/CreateVm/0x800705b4)
Na prática, o Docker Desktop não consegue inicializar corretamente o ambiente WSL utilizado internamente para executar os containers.
Ambiente afetado
Este procedimento se aplica principalmente a ambientes com as seguintes características:
- Windows Server;
- Docker Desktop;
- WSL 2;
- Virtualização aninhada habilitada;
- Docker Desktop instalado diretamente, trazendo automaticamente uma versão mais recente do WSL.
Esse cenário costuma ocorrer em servidores virtualizados, onde o Windows Server está sendo executado dentro de uma VPS ou VM e depende de virtualização aninhada para que o WSL 2 funcione corretamente.
Causa identificada
O problema está relacionado à versão do WSL instalada no sistema.
Durante a instalação do Docker Desktop, uma versão mais recente do WSL pode ser instalada automaticamente. Em alguns ambientes Windows Server com virtualização aninhada, essa versão pode falhar durante a criação da VM utilizada pelo WSL, gerando o erro:
Wsl/Service/RegisterDistro/CreateVm/0x800705b4
A mensagem também pode indicar ausência de suporte à virtualização aninhada, mesmo quando ela já está habilitada no ambiente. Nesses casos, o problema pode estar associado à compatibilidade entre a versão do WSL, o Docker Desktop e o ambiente virtualizado.
Solução validada
A solução validada consiste em instalar manualmente uma versão anterior do WSL antes da instalação do Docker Desktop.
Versão recomendada:
WSL 2.5.10
Link oficial para download:
https://github.com/microsoft/WSL/releases/download/2.5.10/wsl.2.5.10.0.x64.msi
A ordem correta de instalação deve ser:
1. Instalar o WSL 2.5.10
2. Instalar o Docker Desktop
Procedimento para nova instalação
Caso o Docker Desktop ainda não tenha sido instalado no servidor, siga os passos abaixo.
1. Baixar e instalar o WSL 2.5.10
Baixe o instalador MSI do WSL 2.5.10 pelo link abaixo:
https://github.com/microsoft/WSL/releases/download/2.5.10/wsl.2.5.10.0.x64.msi
Após o download, execute o instalador no Windows Server e aguarde a conclusão da instalação.
2. Instalar o Docker Desktop
Depois de concluir a instalação do WSL 2.5.10, instale o Docker Desktop normalmente.
É importante que o WSL seja instalado antes do Docker Desktop. Dessa forma, o Docker utilizará a versão já instalada no ambiente, evitando que uma versão mais recente do WSL seja aplicada automaticamente durante o processo.
Procedimento para ambientes onde o Docker Desktop já foi instalado
Caso o Docker Desktop já tenha sido instalado anteriormente, é possível que uma versão mais recente do WSL tenha sido adicionada automaticamente ao sistema.
Nesse cenário, será necessário remover a versão atual do WSL antes de instalar a versão 2.5.10.
1. Abrir o PowerShell como administrador
Acesse o servidor Windows e abra o PowerShell com permissão de administrador.
2. Desinstalar a versão atual do WSL
Execute o comando abaixo:
wsl --uninstall
Aguarde a conclusão do processo de remoção.
3. Instalar o WSL 2.5.10
Após a remoção da versão atual, baixe e instale manualmente o WSL 2.5.10:
https://github.com/microsoft/WSL/releases/download/2.5.10/wsl.2.5.10.0.x64.msi
Execute o instalador no servidor e aguarde a finalização da instalação.
4. Reinstalar o Docker Desktop
Com o WSL 2.5.10 instalado, realize novamente a instalação do Docker Desktop.
Após a instalação, abra o Docker Desktop e verifique se a inicialização ocorre corretamente.
Validação
Após concluir o procedimento, valide se o WSL está instalado na versão esperada.
Abra o PowerShell e execute:
wsl --version
A saída esperada deve apresentar uma versão semelhante a:
WSL version: 2.5.10.0
Em seguida, abra o Docker Desktop e verifique se o serviço inicia normalmente, sem apresentar o erro relacionado ao WSL.
Observações importantes
- O WSL deve ser instalado antes do Docker Desktop.
- Caso o Docker Desktop tenha instalado automaticamente uma versão mais recente do WSL, remova a versão atual antes de aplicar este procedimento.
- Este procedimento é recomendado especificamente para ambientes Windows Server com virtualização aninhada.
- Evite atualizar o WSL após a correção, até que uma versão mais recente seja validada para esse cenário.
- Antes de aplicar o procedimento em ambiente de produção, recomenda-se validar o impacto da remoção do WSL, principalmente se existirem distribuições Linux ou aplicações dependentes do WSL no servidor.
Conclusão
O erro Wsl/Service/RegisterDistro/CreateVm/0x800705b4 no Docker Desktop pode ocorrer em ambientes Windows Server com WSL 2 e virtualização aninhada, especialmente quando uma versão mais recente do WSL é instalada automaticamente junto ao Docker Desktop.
Para corrigir o problema, a solução validada é instalar manualmente o WSL 2.5.10 antes da instalação do Docker Desktop. Em ambientes onde o Docker Desktop já foi instalado, recomenda-se remover a versão atual do WSL, instalar a versão 2.5.10 e, em seguida, reinstalar o Docker Desktop.
Com esse procedimento, o Docker Desktop tende a inicializar corretamente, evitando a falha na criação da VM interna do WSL.