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


24

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

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

  1. Dentro da minha VM do Windows 10 x64, posso executar o docker e usar imagens e contêineres diferentes 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 envio / levo este aplicativo (código + banco de dados + API da Web + .....) para produção? A máquina de produção precisa executar o docker também?

Por favor, ajude a esclarecer.

Atualizar

Por VMWare, quero dizer VMWare workstation pro.

Respostas:


14

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

A ligação de porta pode ser um pouco complicada, porque você precisará conectar de alguma forma sua VM dev-env no VMware com a 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 do Docker. Os sistemas de arquivos do Windows são limitados em comparação aos sistemas 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 para o Docker em produção. Os serviços encaixados comunicam-se com o mundo através da rede, não diferentes do que os serviços regulares costumam fazer. No entanto, um aplicativo projetado com o Docker (ou, em geral, na nuvem) em mente pode ser mais resistente a falhas e mais fácil de manter.


6

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

https://stefanscherer.github.io/yes-you-can-docker-on-windows-7/

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"

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 você está pronto para começar.


Excelente! Obrigado por compartilhar isso. PS: A última linha é para o PowerShell, sem "| iex" que funcionaria em cmd
Dmitry Gusarov 06/03/18

Chocolatey era novo para mim, este foi um bom ponto de partida: hanselman.com/blog/...
ccook

1
Caso alguém mais tenha tentado fazer isso sem ler o link, o comando "Criar uma vm padrão" deve ser: docker-machine --native-ssh create -d vmwareworkstation default(Nota ausente em "-") #
Neil

2
  1. Sim, você pode executar a janela de encaixe no Windows. O Windows no VMWare também funciona. Executamos o docker em servidores Linux no VMWare.
  2. O mais inteligente seria ter 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 savepara salvar as imagens da janela de encaixe em arquivos.
    Eu acho que vale a pena mencionar que não é recomendável executar vários aplicativos dentro do mesmo contêiner e não é recomendável armazenar dados dentro dos contêineres, você deve usar volumes para isso.

Obrigado pela resposta, mas esclareça Você disse "O Windows no VMWare também funciona", mas você quis dizer "O Docker no VMWare também funciona"?
Hamza Ahmed Zia

@HamzaAhmedZia "VMWare" O que exatamente? ESXi? Posto de trabalho? Seja específico e edite sua pergunta. A estação de trabalho existe apenas no Linux e Windows.
Ramhound

@ Ramhound Quero dizer Estação de Trabalho. Pergunta atualizada
Hamza Ahmed Zia

@HamzaAhmedZia, portanto, no contexto da Estação de Trabalho, o autor desta resposta indica que você pode executar o Docker em uma VM da Estação de Trabalho Windows VMWare.
Ramhound

@Mikael Qual é a sua recomendação para envio à produção, pois você diz que não recomenda copiar dados dos contêineres?
Hamza Ahmed Zia

0

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

Portanto, no host do docker do Windows em uma estação de trabalho VMware (no Windows físico), você tem uma VM HyperV Linux aninhada! Esse não é um grande problema, apenas tenha cuidado para habilitar a virtualização aninhada.

François


Esse ponto sobre o Windows que hospeda uma VM HyperV está incorreto se você estiver executando o Docker for Windows no modo Windows Container e usando LCoW lado a lado. Ele tem outros problemas, mas a posição dos artigos vinculados sobre o agnosticismo do Docker baseado no sistema operacional host é míope, na melhor das hipóteses, com base no local em que o Moby Project está indo com o docker baseado em contêiner do Windows no Win 10. Mas apenas afundei uma semana para descobrir que a borda do sangramento ainda está colhendo sangue, e não diminuiu para o nível de perigo de apenas a borda da frente. Neste ponto, parece mais seis meses até que esteja pronto como um motorista diário.
Tetsujin no Oni

0

A execução de contêineres do Docker está trazendo problemas de ligação de porta ..!

É uma boa prática executar o docker dentro da máquina virtual. A arquitetura para sua referência

SO Host -> VirtualMachine -> Hypervisor -> SO Servidor -> Docker

É uma boa prática .. :)

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.