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?
Respostas:
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
docker
biná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.fonte
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!
fonte