Janelas e contentores
Aplica-se a: Windows Server 2025, Windows Server 2022, Windows Server 2019, Windows Server 2016
Os contêineres são uma tecnologia para empacotar e executar aplicativos Windows e Linux em diversos ambientes locais e na nuvem. Os contêineres fornecem um ambiente leve e isolado que torna os aplicativos mais fáceis de desenvolver, implantar e gerenciar. Os contêineres começam e param rapidamente, tornando-os ideais para aplicativos que precisam se adaptar rapidamente à demanda em constante mudança. A natureza leve dos contêineres também os torna uma ferramenta útil para aumentar a densidade e a utilização de sua infraestrutura.
O ecossistema de contêineres da Microsoft
A Microsoft fornece várias ferramentas e plataformas para ajudá-lo a desenvolver e implantar aplicativos em contêineres:
Execute contêineres baseados em Windows ou Linux no Windows 10 para desenvolvimento e teste usando Docker Desktop, que usa a funcionalidade de contêineres integrada ao Windows. Você também pode executar contêineres nativamente no Windows Server.
Desenvolva, teste, publique e implante contêineres baseados no Windows usando o suporte de contêiner poderoso no Visual Studio e Visual Studio Code, que incluem suporte para Docker, Docker Compose, Kubernetes, Helm e outras tecnologias úteis.
Publique seus aplicativos como imagens de contêiner no DockerHub público para uso de outras pessoas ou em um privado do Registro de Contêiner do Azure para o desenvolvimento e implantação da sua própria organização, enviando e extraindo diretamente do Visual Studio e do Visual Studio Code.
Implantar contêineres em escala no Azure ou em outras nuvens:
- Puxe seu aplicativo (imagem de contêiner) de um registro de contêiner, como o Registro de Contêiner do Azure, e implante-o e gerencie-o em escala usando um orquestrador, como Serviço Kubernetes do Azure (AKS).
- O Serviço Kubernetes do Azure implanta contêineres em máquinas virtuais do Azure e os gerencia em escala, sejam dezenas de contêineres, centenas ou até milhares. As máquinas virtuais do Azure executam uma imagem personalizada do Windows Server (se você estiver implantando um aplicativo baseado no Windows) ou uma imagem personalizada do Ubuntu Linux (se você estiver implantando um aplicativo baseado em Linux).
Implantar contêineres locais usando AKS no Azure Stack HCI, Azure Stack com o AKS Engineou Azure Stack com OpenShift. Você também pode configurar o Kubernetes no Windows Server (consulte Kubernetes no Windows), e estamos trabalhando no suporte para executar contêineres Windows no RedHat OpenShift Container Platform também.
Como funcionam os contentores
Um contêiner é um pacote leve e isolado para executar um aplicativo no sistema operacional host. Os contêineres são construídos sobre o kernel do sistema operacional host (que pode ser considerado como o encanamento enterrado do sistema operacional), como mostrado no diagrama abaixo.
Enquanto um contêiner compartilha o kernel do sistema operacional host, o contêiner não obtém acesso irrestrito a ele. Em vez disso, o contêiner obtém uma visão isolada e, em alguns casos, virtualizada do sistema. Por exemplo, um contêiner pode acessar uma versão virtualizada do sistema de arquivos e do registro, mas quaisquer alterações afetam apenas o contêiner e são descartadas quando ele para. Para guardar dados, o contêiner pode montar armazenamento persistente, como um Azure Disk ou um compartilhamento de arquivos, como Azure Files.
Um contêiner é construído sobre o kernel, mas o kernel não fornece todas as APIs e serviços que um aplicativo precisa executar – a maioria deles é fornecida por arquivos de sistema (bibliotecas) que são executados acima do kernel no modo de usuário. Como um contêiner é isolado do ambiente de modo de usuário do host, o contêiner precisa de sua própria cópia desses arquivos de sistema de modo de usuário, que são empacotados em algo conhecido como imagem base. A imagem base serve como a camada fundamental sobre a qual seu contêiner é construído, fornecendo-lhe serviços de sistema operacional não fornecidos pelo kernel. Mas falaremos mais sobre imagens de contêiner mais tarde.
Contêineres versus máquinas virtuais
Em contraste com um contêiner, uma máquina virtual (VMs) executa um sistema operacional completo, incluindo seu próprio kernel, conforme mostrado neste diagrama.
Contêineres e máquinas virtuais têm seus usos – na verdade, muitas implantações de contêineres usam máquinas virtuais como o sistema operacional host em vez de serem executadas diretamente no hardware, especialmente ao executar contêineres na nuvem.
Para obter mais detalhes sobre as semelhanças e diferenças dessas tecnologias complementares, consulte Containers vs. virtual machines.
Imagens de contêiner
Todos os contêineres são criados a partir de imagens de contêiner. Uma imagem de contêiner é um pacote de arquivos organizados em uma pilha de camadas que reside em sua máquina local ou em um registro de contêiner remoto. A imagem de contêiner consiste nos arquivos do sistema operacional de modo de usuário necessários para dar suporte ao seu aplicativo, quaisquer tempos de execução ou dependências do seu aplicativo e qualquer outro arquivo de configuração diverso que seu aplicativo precise para ser executado corretamente.
A Microsoft oferece várias imagens (chamadas de imagens base) que você pode usar como ponto de partida para criar sua própria imagem de contêiner:
- Windows - contém o conjunto completo de APIs do Windows e serviços do sistema (menos funções de servidor).
- Windows Server - contém o conjunto completo de APIs do Windows e serviços do sistema.
- Windows Server Core - uma imagem menor que contém um subconjunto das APIs do Windows Server, ou seja, o .NET framework completo. Ele também inclui a maioria, mas não todas as funções de servidor (por exemplo, Servidor de Fax não está incluído).
- Nano Server - a menor imagem do Windows Server e inclui suporte para as APIs do .NET Core e algumas funções de servidor.
As imagens de contêiner são compostas por uma série de camadas. Cada camada contém um conjunto de arquivos que, quando sobrepostos, representam sua imagem de contêiner. Devido à natureza em camadas dos contêineres, você não precisa sempre direcionar uma imagem base para criar um contêiner do Windows. Em vez disso, pode apontar para outra imagem que já tenha a estrutura que deseja. Por exemplo, a equipe do .NET publica um de imagem do núcleo do .NET que carrega o tempo de execução do núcleo do .NET. Ele evita que os usuários precisem duplicar o processo de instalação do núcleo do .NET – em vez disso, eles podem reutilizar as camadas dessa imagem de contêiner. A imagem principal do .NET em si é construída com base no Nano Server.
Para obter mais detalhes, consulte Container Base Images.
Usuários de contêiner
Contentores para programadores
Os contêineres ajudam os desenvolvedores a criar e enviar aplicativos de alta qualidade com mais rapidez. Com contêineres, os desenvolvedores podem criar uma imagem de contêiner que é implantada em segundos, de forma idêntica em todos os ambientes. Os contêineres agem como um mecanismo fácil para compartilhar código entre equipes e inicializar um ambiente de desenvolvimento sem afetar o sistema de arquivos do host.
Os contêineres são portáteis e versáteis, podem executar aplicativos escritos em qualquer idioma e são compatíveis com qualquer máquina que execute o Windows 10, versão 1607 ou posterior, ou Windows Server 2016 ou posterior. Os desenvolvedores podem criar e testar um contêiner localmente em seu laptop ou desktop e, em seguida, implantar essa mesma imagem de contêiner na nuvem privada, nuvem pública ou provedor de serviços da empresa. A agilidade natural dos contêineres suporta padrões modernos de desenvolvimento de aplicativos em ambientes de nuvem virtualizados de grande escala. O benefício mais útil para os desenvolvedores talvez seja a capacidade de isolar seu ambiente para que seu aplicativo sempre obtenha a versão das bibliotecas que você especificar, evitando conflitos com dependências.
Contentores para profissionais de TI
Os contêineres ajudam os administradores a criar uma infraestrutura mais fácil de atualizar e manter e que utiliza mais plenamente os recursos de hardware. Os profissionais de TI podem usar contêineres para fornecer ambientes padronizados para suas equipes de desenvolvimento, controle de qualidade e produção. Usando contêineres, os administradores de sistemas abstraem as diferenças nas instalações do sistema operacional e na infraestrutura subjacente.
Você também pode usar o modo interativo de contêineres para executar instâncias conflitantes de uma ferramenta de linha de comando no mesmo sistema.
Orquestração de contêineres
Os orquestradores são uma peça crítica da infraestrutura ao configurar um ambiente baseado em contêiner. Embora você possa gerenciar alguns contêineres manualmente usando o Docker e o Windows, os aplicativos geralmente usam cinco, dez ou até centenas de contêineres, que é onde os orquestradores entram.
Os orquestradores de contentores foram desenvolvidos para ajudar a gerir contentores em escala e em produção. Os orquestradores fornecem funcionalidade para:
Os orquestradores ajudam você a expandir aplicativos em contêineres em escala, fornecendo funcionalidade para:
- Implantação em escala
- Agendamento de carga de trabalho
- Monitorização do estado de saúde
- Failover quando um nó falha
- Aumentar ou diminuir a escala
- Ligação em rede
- Descoberta de serviço
- Coordenando atualizações de aplicativos
- Afinidade de nó de cluster
Há muitos orquestradores diferentes que você pode usar com contêineres do Windows; aqui estão as opções que a Microsoft fornece:
- Serviço Kubernetes do Azure (AKS) - usar um serviço Kubernetes do Azure gerenciado
- Serviço Kubernetes do Azure (AKS) no Azure Stack HCI - use o Serviço Kubernetes do Azure no local
Experimente contêineres no Windows
Para começar a usar contêineres no Windows Server ou no Windows 10, consulte o seguinte:
Para obter ajuda para decidir quais serviços do Azure são adequados para o seu cenário, consulte serviços de contêiner do Azure e Escolhendo quais serviços do Azure usar para hospedar seu aplicativo.
Recursos
Para exibir recursos para usar contêineres do Windows Server:
Para problemas atuais e atualizações planejadas de funcionalidades, consulte o repositório GitHub Windows Containers .
Confira nosso blog: Windows Containers Blog.
Para entrar em contato com a equipe de contêineres do Windows Server, envie um email para o grupo Clientes de Contêineres do Windows.