Requisitos do contêiner do Windows

Esse guia lista os requisitos para um host do contêiner do Windows.

Requisitos de sistema operacional

  • O recurso de contêiner do Windows está disponível apenas no Windows Server 1709, Windows Server 2016 (Core e com Experiência Desktop) e Windows 10 Professional e Enterprise (Edição de Aniversário).
  • A função Hyper-V deve ser instalada antes da execução dos contêineres do Hyper-V
  • Os hosts de contêiner do Windows Server devem ter o Windows instalado na unidade c:. Essa restrição não se aplicará se apenas os contêineres do Hyper-V forem ser implantados.

Hosts de contêiner virtualizados

Se um host do contêiner do Windows for executado em uma máquina virtual do Hyper-V e também estiver hospedando contêineres do Hyper-V, a virtualização aninhada precisará ser habilitada. A virtualização aninhada tem os seguintes requisitos:

  • Pelo menos 4 GB de RAM disponíveis para o host Hyper-V virtualizado.
  • Windows Server 1709, Windows Server 2016 ou Windows 10 no sistema host e Windows Server (Full, Core) na máquina virtual.
  • Um processador com Intel VT-x (este recurso está apenas disponível para os processadores Intel).
  • A VM do host do contêiner também precisa de pelo menos dois processadores virtuais.

Imagens base com suporte

Os Contêineres do Windows são oferecidos com duas imagens base do contêiner: Windows Server Core e Nano Server. Nem todas as configurações têm suporte para ambas as imagens do SO. Esta tabela fornece detalhes sobre as configurações com suporte.

Sistema Operacional do Host
Contêiner do Windows Server
Contêiner do Hyper-V
Windows Server 2016 (Standard ou Datacenter)
Server Core/Nano Server
Server Core/Nano Server
Nano Server*
Nano Server
Server Core/Nano Server
Windows 10 Pro/Enterprise
Não disponível
Server Core/Nano Server

Aviso

A partir do Windows Server, versão 1709, o Nano Server não estará mais disponível como host de contêiner.

Requisitos de memória

Restrições de memória disponível para contêineres podem ser configuradas pelos controles de recursos ou pela sobrecarga em um host de contêiner. A quantidade mínima de memória necessária para iniciar um contêiner e executar os comandos básicos (ipconfig, dir, etc.) está listada abaixo. Observe que esses valores não levam em conta o compartilhamento de recursos entre contêineres ou os requisitos do aplicativo em execução no contêiner. Por exemplo, um host com 512 MB de memória livre pode executar vários contêineres do Server Core em isolamento do Hyper-V porque esses contêineres compartilham recursos.

Windows Server 2016

Imagem base Contêiner do Windows Server Isolamento do Hyper-V
Nano Server 40 MB 130 MB + arquivo de paginação de 1 GB
Server Core 50 MB 325 MB + arquivo de paginação de 1 GB

Windows Server, versão 1709

Imagem base Contêiner do Windows Server Isolamento do Hyper-V
Nano Server 30 MB 110 MB + arquivo de paginação de 1 GB
Server Core 45 MB 360 MB + arquivo de paginação de 1 GB

Nano Server vs. Windows Server Core

Como escolher entre o Windows Server Core e o Nano Server? Você pode criar com o que preferir, mas se achar que seu aplicativo precisa de compatibilidade total com o .NET Framework, então você deve usar o Windows Server Core. Por outro lado, se o seu aplicativo foi criado para a nuvem e usa o .NET Core, você deve usar o Nano Server. Isso porque o Nano Server foi criado com a intenção de ter o menor volume possível, portanto, várias bibliotecas não essenciais foram removidas. Se você estiver pensando em criar com base no Nano Server, é importante lembrar que:

  • A pilha de atendimento foi removida
  • O .NET Core não está incluso (mas você pode usar a imagem do .NET Core Nano Server)
  • O PowerShell foi removido
  • A WMI foi removida
  • A partir do Windows Server versão 1709, os aplicativos serão executados em um contexto de usuário. Dessa forma, haverá falha dos comandos que exigem privilégios de administrador. Você pode especificar a conta de administrador do contêiner por meio do sinalizador --user (por exemplo, docker run --user ContainerAdministrator). No entanto, pretendemos remover totalmente contas de administrador do NanoServer no futuro.

Essas são as maiores diferenças e não uma lista completa. Há outros componentes não listados que também estão ausentes. Lembre-se de que você sempre pode adicionar camadas no topo do Nano Server conforme desejar. Para ver um exemplo disso, confira o Dockerfile do .NET Core Nano Server.