13
respostas

Docker funciona. VirtualBox funciona. Mas não ambos!

Está complicado!

Docker

  • Docker Desktop for Windows REQUER Hyper-V HABILITADO.

Mensagem: Desktop for Windows requires Hyper-V to be enabled on your Windows 10

VirtualBox

  • VirtualBox REQUER Hyper-V DESABILITADO.

Mensagem: This computer is running Hyper-V. VirtualBox won't boot a 64bits VM when Hyper-V is activated.

Tentei fazer no Debian virtualizado, mas também não funciona. VMBox não faz aninhamento de VM :/

Alguma solução?

13 respostas

Pelo jeito, isso não tem solução.

Docker não funciona com VirtualBox. Isso é oficial: "[Docker] not working with VirtualBox". Fonte: https://forums.docker.com/t/running-docker-and-virtualbox-on-the-same-machine/23578

A não ser que use a versão antiga Docker Toolbox, conforme mencionou Jose Carlos. Mais detalhes no post: https://medium.com/@peorth/using-docker-with-virtualbox-and-windows-10-b351e7a34adc

Sugiro que isso fique explícito no curso para que o estudante não perca seu tempo tentando fazer funcionar. Melhor ainda se o curso fosse atualizado para lidar com essa nova situação.

De qualquer forma, obrigado.

Olá Taylor, tudo bem?

Estava nesse momento fazendo uma atualização no conteúdo do curso que talvez possa te ajudar. Acontece que agora a Docker Machine não está mais vindo junto com o Docker Desktop for Windows.

Você está utilizando o Windows, certo? Siga esse guia aqui para instalar.

Oi Daniel, agradeço a resposta.

Minha máquina é um Windows 10, mas eu havia criado um ambiente virtualizado com VirtualBox utilizando o Debian. Estava tudo ok (docker, docker-machine, etc), mas chegou na hora de utilizar o drive vitualbox no Debian, não rodou (comando abaixo).

docker-machine create -d virtualbox vm1

No caso, o erro foi "This computer doesn't have VT-X/AMD-v enabled". Pelo que entendi, VirtualBox não suporta aninhamento (VM sobre VM): "Virtual Box does not support VT-X/AMD-v in nested virtualisation. " Fonte: https://stackoverflow.com/questions/42294304/minikube-install-in-ubuntu-vm-vt-x-amd-v-enabling-to-vm-inside-another-vm

Então tentei utilizar no Windows mesmo, pois na máquina física não daria o problema de aninhamento. Instalei o docker e o docker-machine e estava tudo ok. Porém, o problema agora na hora de rodar o comando com o drive é o Hyper-V, conforme descrevi no primeiro post. Daí descobri que "[Docker] not working with VirtualBox" (não mais).

Enfim, até agora não sei o que vou fazer. Não tô muito a fim de usar o Docker Toolbox, fica parecendo uma solução gambiarra, já que é mais antigo e nem vem mais no Docker Desktop for Windows. Então esse link que você passou sobre o Docker Machine eu já tinha feito e estava ok. O problema não é esse (é o Hyper-V), mas espero que tenha compreendido com essa longa explicação :)

Falou!

Opa, agora saquei melhor.

Já tentou desabilitar o Hyper-V no próprio Windows, reiniciar a máquina e depois executar o comando de criação da VM de novo?

Achei uma lista aqui com drivers que o Docker Machine suporta, mas a questão é achar um gratuito :/

https://docs.docker.com/machine/drivers/

Qualquer novidade, diz aí.

Oi Taylor, confirma pra mim se continua sem funcionar depois de desabilitar o Hyper-V no Windows. Se você tiver a Docker Machine instalada e o VirtualBox também, a ideia é que o comando docker-machine create -d virtualbox vm1 funcione.

Ele parece estar reclamando que o Hyper-V está ativo enquanto tenta virtualizar utilizando o VirtualBox.

Opa, Daniel

Já havia tentando isso. Quando desabilito o Hyper-V, eu consigo rodar o docker-machine com drive virtualbox, a vm1 é criada e fica running.

Porém, quando eu tento usar o comando docker dá um erro dizendo que o "docker engine not running". Se habilito o Hyper-V para funcionar a docker engine, então a vm1 criada fica stopped. Se tento dar um start nela com docker-machine, dá um erro, provavelmente por conta que o virtualbox só roda com Hyper-V desabilitado. Enfim, é cachorro correndo atrás do rabo :D

Resumindo, consigo usar o docker-machine com o virtualbox (Hyper-V desabilitado). Mas assim não consigo usar o docker. Se habilito o Hyper-V, consigo usar o docker e o docker-machine, mas o vitualbox para de funcionar.

Melhor seria achar outra VM ou usar a Docker Toolbox.

Opa Taylor. Mas a ideia é que você use o Docker dentro da Docker Machine mesmo. Não fora :)

Ou seja, acesse a sua vm1 com o comando docker-machine ssh vm1 e, quando carregar, execute algum comando Docker dentro dela.

Então para o curso não vamos precisar do docker? Se for só o docker-machine, vai funcionar. Mas se tiver que usar o docker, já era.

É que no momento da gravação do curso, a Docker Machine vinha instalada junto com o Docker Desktop for Windows.

Recentemente, a instalação passou a ser feita de maneira manual (como já fez).

Durante o curso, usaremos o Docker apenas dentro da Docker Machine. Não há necessidade de usar o Docker em sua máquina host :)

Tranquilo Daniel, eu compreendo perfeitamente que essas tecnologias mudam o tempo todo e acabam gerando problemas.

Vou tentar fazer o curso utilizando apenas o docker-machine.

Tem o inconveniente que cada vez que (des)ativa o Hyper-V tem que reiniciar o computador :/

Obrigado, BFS

Embora o Toolbox seja considerado "Legacy desktop solution" (Fonte: https://docs.docker.com/toolbox/), é uma solução melhor do que ficar alternando o Hyper-V (liga/desliga) para fazer funcionar o docker e virtualbox.

Então, pra quem precisar do Docker Toolbox, segue o link para baixar, até que se resolvam (Oracle):

https://github.com/docker/toolbox/releases