Se o acoplador funciona nativamente no windows, então por que ele precisa de hyper-v

Se a Comunidade do Docker funciona nativamente no windows, porque é que precisa de Hiper-v? I. E., O nativo não implica que o Docker-Engine pode executar instruções no windows? Parece-me que ele ainda começa um VM Linux e funciona com-nisso.

para mim, parece que a docker-toolbox usa um Oracle hyper-visor executando linux, enquanto a comunidade Docker usa Hyper-V executando linux. Há outra diferença importante que estou a esquecer?

Isto está correcto? Estou entender a palavra "nativo" errado, é docker mis-usando a palavra, ou há algum outro aspecto que eu estou faltando?

A razão pela qual estou a perguntar, é porque reparei que não se usa a Docker-machine com a edição comunitária, e pergunto-me porquê. A docker-machine é a coisa que funciona natimamente nas janelas, enquanto o Docker Engine não? Eu acho que a palavra docker está sobrecarregada e talvez leve a confusão neste caso:)

Obrigado antecipadamente!

Author: lospejos, 2018-01-14

7 answers

O Suporte do acoplador para o Windows tem várias variantes:

  1. A caixa de ferramentas do Docker que inclui a máquina do Docker que irá rodar uma imagem do boot2docker dentro da VirtualBox. Estes são recipientes Linux rodando com um kernel Linux dentro da VM. Esta era originalmente a única opção para usuários do Windows.

  2. Acoplador para o Windows usando o Hyper-V para executar o Moby VM, baseado no LinuxKit, para executar imagens Linux. LinuxKit fornece um sistema operacional Linux baseado em contêineres, e há alguma integração para fazê-lo parecer menos como um VM para o usuário final, por exemplo, você pode usar 127.0.0.1 em vez do IP do VirtualBox VM. Se você tiver Hyper-V disponível e quiser executar recipientes Linux no Windows, esta é a opção preferida.

  3. Windows Server Containers que executam binários do Windows no mesmo sistema operacional, semelhante à forma como os containers Linux em um sistema operacional Linux não precisam de um VM.

  4. Recipientes Hyper-V que funcionam binários do Windows dentro de uma VM separada para isolamento adicional.

Você pode ler mais sobre as duas últimas opções em documentos da Microsoft .

O que é importante de notar é que quando instala o 'Docker' para o Windows num servidor suportado, como em 2016, tem as opções 2, 3 e 4, que pode alternar entre elas. Para os containers Linux e Windows, existe um botão na configuração que afecta todos os containers e comandos em execução. E entre os contentores do Windows Server e Contentores Hiper-V, há uma opção --isolation na linha de comandos docker run. Então eu acredito que você é obrigado a ter suporte Hiper-V para cobrir 2 e 4, mesmo que você só quer a opção 3.

 26
Author: BMitch, 2020-06-14 19:54:22

O Windows suporta o "isolamento do processo", além do"isolamento Hiper-v.".

Processar contentores de isolamento no Windows executado sem uma camada adicional de virtualização (semelhante ao que você pode ser usado com o docker no linux); acredito que é isto que o OP está à procura quando se refere a contentores "native".

O suporte de isolamento do processo ainda é bastante novo, mas as versões mais recentes do Windows Server 2019 e do Windows 10 podem de facto executar os contentores do windows sem a sobrecarga extra de um host virtual hiper-v. Uma coisa a notar é que a sua versão do kernel de base de imagem do Windows container deve corresponder à versão do kernel na sua máquina de host. Por isso, provavelmente não será capaz de usar exactamente os mesmos contentores que tem em hiper-v.

Aqui está uma tabela de compatibilidade da versão do contentor do Windows que destaca qual a máquina que suporta o Suporte do OSs process ou hyperv isolamento.

Mesmo que esta^ página não o indique, Windows 10 A atualização 1809 é a primeira atualização para suportar o isolamento do processo do Docker , conforme indicado nas notas de versão do motor do Docker .

 7
Author: dk., 2019-06-20 01:06:32

O Suporte para o Docker no Windows não é nativo, o Docker foi escrito para ser executado no Linux inicialmente. Assim, os requisitos para executar o acoplador CE no Windows são:

  1. A virtualização deve ser ativada uma vez que o docker-ce cria um VM no Hyper-V. Uma vez que todos os hipervisores exigem que a virtualização do hardware seja ativada, Hyper-V neste assunto não é excepcional. O acoplador do instalador do Windows irá activar o Hyper-V para si, se necessário, e reiniciar a sua máquina.

  2. Para os mais velhos Sistemas Windows que não suportam virtualização de hardware, recomenda-se a utilização do Docker Toolbox que usa o Oracle Virtualbox para rodar VMs que irá hospedar os contentores do docker em vez de Hyper-V.

 6
Author: Lea Klein, 2018-01-15 15:24:36

Os recipientes do Windows Server necessitam de isolamento Hiper-V no Windows 10,a fim de fornecer aos programadores a mesma versão e configuração do kernel que serão usadas na produção, mais sobre isso pode ser encontrado na página de contêineres cerca de do Windows.

 2
Author: Neha, 2018-01-15 04:28:21
O meu entendimento é que o Hyper-V é a implementação do windows de uma solução de máquina virtual.

O 'Docker' em execução no windows 'nativamente' implica que não necessita de um software de terceiros como virtualbox, VMware fusion ou parallels instalados para executar, em vez disso, utiliza o software Hyper-V que é enviado com o windows 10.

 0
Author: Vice, 2018-01-14 16:47:45
Eu sei que estou atrasado para a festa, mas a mesma pergunta tem estado a fazer-me comichão na mente dos novatos recentemente, por isso, aqui estão os meus 2 cêntimos.

Resposta Curta

Mesmo que digamos que nunca vamos lançar recipientes Linux no Windows, ou usar o modo de isolamento Hyper-V, uma coisa ainda permanece que o Hypervisor é necessário para. Estou a falar do vNIC. O Windows container networking mostra-nos que é parte integrante do Windows Server Cisterna.

Resposta longa

Tanto quanto sei, Aqui estão dois componentes chave que tornaram possíveis recipientes nativos nas janelas:
  1. Host Compute Service and Host Network Service were implemented as a layer of abstraction above the low level functionality. Os Serviços trabalham juntos para criar contêineres e anexar pontos finais a uma rede.
  2. O silo do servidor é uma característica principal que permite que os contentores nativos sejam 'isolados'. Se não estiver equivocado, em diferentes lugares o recurso também é referido como o modo de usuário do Container ou Namespace. Uma boa visão geral é dada em recipientes internos do Windows .

Quanto a Rede , cada contentor tem um adaptador de rede virtual (vNIC) que está ligado a um interruptor virtual Hyper-V (vSwitch), por isso o meu palpite é que esta é a principal razão técnica para a qual ainda precisa de coisas Hyper-V.

 0
Author: Kiryl Z, 2020-07-21 12:34:53

O Docker evoluiu no Linux. Grande parte da confusão surge com o Docker tentando suportar a contenção no Windows.

Um recipiente é considerado "nativo", se ele pode correr diretamente no sistema operacional host.

Linux Container: uma aplicação Linux que funciona num ambiente Linux isolado.
Este mesmo container pode ser executado no Windows usando virtualização para emular um ambiente Linux, mas o container ainda está em execução no Linux. Esta virtualização pode be

  • VirtualBox (Docker Toolbox)
  • infra-estrutura Hyper-V (Área de trabalho do acoplador)
  • infra-estrutura WSL2 (área de trabalho do acoplador)

Recipiente do Windows (Servidor): uma aplicação do Windows que funciona num ambiente isolado do Windows.

    Isolamento do processo - este é o modo de isolamento "tradicional" dos contentores. É aproximadamente a mesma forma como os containers Linux funcionam no Linux Isolamento Hiper-V-Este modo de isolamento oferece maior segurança e mais amplo compatibilidade entre as versões host e container.

Como pode ver, Hyper-V pode ser usado para executar até mesmo recipientes nativos do Windows, o que geralmente é uma fonte de confusão.

Além disso, docker-machine é um produto substituído.

A máquina era a única forma de executar o acoplador no Mac ou no Windows antes do acoplador v1.12. Começando com o programa beta e o Docker v1. 12, o Docker Desktop Para Mac e o Docker Desktop Para Windows estão disponíveis como aplicativos nativos e o melhor escolha para este caso de uso em novos desktops e laptops.

Ver Container Docker em Linux e Windows para uma visão geral de alto nível de grande parte da terminologia, tecnologia e referências.

 0
Author: ap-osd, 2020-12-04 14:45:27