É possível ter o docker rodando dentro do vmware?

16

Eu corro a estação de trabalho vmware para minhas necessidades de desenvolvimento e tenho que manter VMs diferentes para ambientes diff.

O Docker parece permitir a execução de ambientes de diferenças em contêineres, portanto

  1. Dentro da minha VM do Windows 10 x64, posso executar o docker e usar diferentes imagens e contêineres para desenvolver, criar e testar meu código? (Lembre-se de que estou executando meu ambiente de desenvolvimento no VMware Workstation enquanto o docker usa o VirtualBox)

  2. Como faço para enviar / levar este meu aplicativo (código + banco de dados + web api + .....) para produção? A máquina de produção precisa executar o estivador adequadamente?

Por favor, ajude a esclarecer.

Atualizar

Por VMWare, quero dizer VMWare workstation pro.

    
por Hamza Ahmed Zia 05.04.2017 / 12:38

4 respostas

10

Sim , é perfeitamente possível executar o Docker em uma VM. O Docker é uma solução leve de virtualização, ele não virtualiza o hardware, portanto você não será afetado por problemas típicos de VMs aninhadas.

A vinculação de portas pode ser um pouco complicada, porque você terá que de alguma forma conectar sua VM dev-env no VMware com o Docker VM no VirtualBox.

Você também pode ter problemas se quiser expor as pastas do host a um serviço em um contêiner Docker. Os sistemas de arquivos do Windows são limitados em comparação com os do Linux em termos de granularidade de permissão e alguns serviços não gostam disso. (esse problema não é específico do Docker)

Em geral, seu aplicativo não está bloqueado no Docker em produção. Serviços Dockerized se comunicam com o mundo através da rede, não diferente do que os serviços regulares normalmente fazem. No entanto, um aplicativo projetado com o Docker (ou, mais geralmente, a nuvem) em mente pode ser mais resiliente a falhas e mais fácil de manter.

    
por 05.04.2017 / 13:02
4

Este blog fala sobre como usar o Docker no Windows com o VMWare Workstation. Você pode até usar o Windows 7.

link

Primeiro instale o gerenciador de pacotes Chocolatey para Windows (este é um comando de uma linha)

@"%SystemRoot%\System32\WindowsPowerShell\v1.0\powershell.exe" -NoProfile -ExecutionPolicy Bypass -Command "iex ((New-Object System.Net.WebClient).DownloadString('https://chocolatey.org/install.ps1'))" && SET "PATH=%PATH%;%ALLUSERSPROFILE%\chocolatey\bin"

em seguida, instale o Docker para usar a estação de trabalho VMWare

choco install -y docker  
choco install -y docker-machine  
choco install -y docker-machine-vmwareworkstation  

Crie uma vm padrão

docker machine --native-ssh create -d vmwareworkstation default  

Defina suas variáveis de ambiente

docker-machine env | iex

Agora está tudo pronto.

    
por 15.07.2017 / 18:11
2
  1. Sim, você pode executar o docker no Windows. O Windows no VMWare também funciona. Nós rodamos o docker em servidores Linux no VMWare.
  2. O mais inteligente seria ter o docker em sua máquina de produção também, mas seria possível copiar seus dados dos contêineres. Eu não recomendo isso.
    Você pode usar docker save para salvar as imagens do docker em arquivos.
    Eu acho que vale a pena mencionar que não é recomendado rodar vários aplicativos dentro do mesmo container e não é recomendado armazenar dados dentro de seus containers, você deve usar volumes para isso.
por 05.04.2017 / 12:51
0

Há uma grande diferença entre o host do docker (Linux ou Windows):

  • O host Linux não precisa de tecnologias de virtualização Portanto, na estação de trabalho VMware, você pode instalar um Linux padrão, depois o mecanismo docker e executar qualquer contêiner sem problemas
  • O host do Windows tem um requisito diferente porque, de maneira indireta, ele cria uma VM do Hyper V Linux (detalhes em link )

Portanto, no host do Windows Docker em uma estação de trabalho VMware (no Windows físico), você tem uma VM HyperV Linux aninhada! Isso não é um grande problema, basta ter cuidado para ativar a virtualização aninhada.

François

    
por 06.05.2018 / 03:19