Prós e contras do uso de contêineres do Windows em vez de contêineres do Linux para Docker?

36

Estou instalando o Docker para Windows (CE) no Windows 10 e a primeira tela me pergunta:

[] Use contêineres do Windows em vez de contêineres do Linux (isso pode ser alterado após a instalação)

Parece uma decisão importante, mas o tutorial da documentação do Docker , das Perguntas frequentes e do contêiner do Windows não fornece informações sobre o motivo pelo qual posso escolher um sobre o outro.

Seria útil ter uma visão geral objetiva das ramificações dessa escolha:

  • Uma opção será mais rápida que a outra?
  • A decisão afeta o uso de recursos do sistema (RAM, CPU)?
  • Posso executar as mesmas imagens nos dois tipos?
  • Um é mais seguro que o outro?

Qualquer outra distinção que possa me ajudar a chegar a uma conclusão seria muito bem-vinda.

Duncan Jones
fonte
A resposta para isso não é baseada em opiniões. E é aceito. Portanto, não há necessidade de fechar este.
Nils

Respostas:

19

É necessário usar um host do Windows para contêineres do Windows, no entanto, você pode usar um host do Linux ou um host do Windows para contêineres do Linux. Desde abril de 2018, você pode até executar os dois em paralelo .

Uma opção será mais rápida que a outra?

Não. Mais rápido em quê?

A decisão afeta o uso de recursos do sistema (RAM, CPU)?

O Windows usa mais recursos que o Linux - o Windows Nano é o menor possível

Posso executar as mesmas imagens nos dois tipos?

Não. Você pode executar aplicativos .NET em contêineres mono, mas não pode iniciar um contêiner do Windows em um host Linux e vice-versa - não é o mesmo que virtualização

Um é mais seguro que o outro?

Mais uma vez - mais seguro em quê? Não. Ambos rodam o Docker nativo, então não é nada como hyper-v vs VMware e mais como Linux vs Windows, então tudo depende do que você executará .net, python, java, ruby ​​etc.

Sum1sAdmin
fonte
2
Segundo isso. A leitura complementa esta resposta containerjournal.com/2016/10/28/…
A.Newgate
4
Portanto, se eu optar por usar contêineres Linux, o Docker iniciará uma VM Linux Hyper-V para executar meus contêineres; caso contrário, executará contêineres do Windows nativamente? E não consigo executar os dois tipos de contêiner simultaneamente?
Duncan Jones
1
janela de encaixe para Windows 10 permite que você faça isso - mas na produção, você teria um enxame janela de encaixe com os anfitriões Linux e Windows
Sum1sAdmin
O Docker é baseado no lxc (Linux) - ele usará o mesmo kernel que o host do Docker. Se você inicia o Windows em um lxc, ele precisa virtualizar ou emular o win. Não tenho certeza se o mesmo se aplica ao win-docker, pois o win suporta linux.
Nils
1
@DuncanJones, apenas 3 dias depois que você perguntou, havia um post no MSDN explicando que agora você PODE executar contêineres Windows e Linux em paralelo.
Jonas Heidelberg