O Docker permite que os contêineres sejam independentes do SO?

9

Atualmente, usamos um servidor baseado no Windows para hospedar 2 VMs. Uma VM usa o Windows com um aplicativo do Windows e a outra VM usa o Linux com um aplicativo do Linux.

O cenário abaixo é possível?

Servidor simples com Windows 2016 (sem VMs). Instale o mecanismo do Docker. Instale o contêiner de aplicativos do Windows. Instale o contêiner de aplicativos Linux.

O mecanismo do Docker abstrai o SO de forma que essa configuração execute os dois aplicativos? Significando que o mecanismo do Docker funciona como um "intérprete" semelhante a como o código Java pode ser executado em vários sistemas operacionais?

nanonerd
fonte
11
Os detalhes estão aqui , principalmente você precisa de uma VM linux para executar contêineres linux apenas para fornecer um kernel linux ... os contêineres do docker são processos isolados, então eles precisam de um host, o linuxkit é apenas isso, mas integrado ao comando docker run para facilitar a instalação. usar.
Tensibai 11/11
Isso não deveria ser uma resposta?
Dan Cornilescu
2
@ Dan atualmente na cimeira chefe, eu estava um pouco curto para escrever uma resposta correta :) então eu só caiu um comentário
Tensibai
Não tem certeza do que seu aplicativo Windows está fazendo, mas você também pode considerar mudar para o dot net core, pois é multiplataforma. Dessa forma, você pode executar tudo no Linux.
frennky

Respostas:

7

O mecanismo do Docker abstrai o SO de forma que essa configuração execute os dois aplicativos?

Não, não tem. O Docker usa a conteinerização como uma tecnologia principal, que se baseia no conceito de compartilhamento de um kernel entre contêineres. Se uma imagem do Docker depende de um kernel do Windows e outra de um kernel do Linux, você não pode executar essas duas imagens no mesmo sistema operacional.

Quando você instala o Linux Docker no Windows, na verdade está configurando uma VM do Linux no Hyper-V, os detalhes do LinuxKit estão aqui . Você pode abrir o console do Hyper-V e ver uma VM chamada "MobyLinuxVM". Há muito trabalho feito para abstrair isso de você, por exemplo, o dockerbinário pode se conectar à VM do Linux e executar os mesmos comandos aos quais você está acostumado, a rede entre o host e a VM tenta ser perfeita, montagem de volume, etc. não o Docker que permite executar uma imagem do Linux Docker no Windows, é simplesmente uma virtualização antiga.

user2640621
fonte
2

Sim, fique louco, você pode executar o que quiser no contêiner, desde que o host suporte a virtualização e o binário do docker!

Briansbum
fonte
Ainda acho que existem alguns detalhes para a execução de contêineres Windows / Linux, ou?
Peter Muryshkin
Eu acho que você precisa do LinuxKit também, mas você acaba com a mesma funcionalidade disponível no Linux
Briansbum